dxCreateShader
Compila um shader a partir de um arquivo do resource ou de um texto com o código.
Sintaxe
Seção intitulada “Sintaxe”shader, string dxCreateShader ( string caminhoOuCodigo [, table macros, number prioridade = 0, number distanciaMaxima = 0, bool emCamada = false, string tiposDeElemento = "world,vehicle,object,other" ] )Parâmetros
Seção intitulada “Parâmetros”| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
caminhoOuCodigo | string | — | Caminho de um arquivo do resource ou o código do shader direto na string. |
macros | table | — | Tabela de ["NOME"] = "valor" definida antes da compilação. É opcional, mas quando informada vem sempre logo depois do primeiro argumento. |
prioridade | number | 0 | Para shaders aplicados a texturas do mundo com engineApplyShaderToWorldTexture: quando vários shaders pegam a mesma textura, vence o de maior prioridade. |
distanciaMaxima | number | 0 | Para texturas do mundo: a geometria mais longe da câmera do que isso é desenhada sem o shader. 0 significa sem limite. |
emCamada | bool | false | Para texturas do mundo: o shader é desenhado como uma camada extra por cima da textura, em vez de substituí-la. |
tiposDeElemento | string | "world,vehicle,object,other" | Para texturas do mundo: lista separada por vírgulas do que o shader pode afetar — "world", "ped", "vehicle", "object", "other", "all" ou "none". |
Retorno
Seção intitulada “Retorno”Dois valores:
| Posição | Descrição |
|---|---|
| 1 | O elemento de shader. |
| 2 | O nome da técnica que foi escolhida. |
Se o arquivo não existir ou o código não compilar, devolve apenas false, com o motivo no console de debug. O mesmo acontece no modo de teste "no_shader" de dxSetTestMode. Um argumento errado (inclusive uma string vazia ou um tipo de elemento desconhecido) devolve nil com um aviso.
local shader, tecnica = dxCreateShader("shaders/tinta.fx")
if shader then outputDebugString("shader compilado com a tecnica " .. tecnica) dxSetShaderValue(shader, "gCor", 1, 0, 0, 1)endUm shader pode ser desenhado como qualquer outra imagem, com dxDrawImage.
Veja também
Seção intitulada “Veja também”dxSetShaderValue— Define um valor de entrada do shader.dxSetShaderTessellation— Divide o quadrado do shader em uma grade, dando mais vértices para o shader trabalhar.dxSetShaderTransform— Aplica rotação e perspectiva ao desenho do shader.