engineCreateShader
Cliente
Cria um shader a partir de um arquivo .shader ou do próprio código-fonte. O shader compila em segundo plano.
shader|false engineCreateShader(string source [, string name = nil, table macros = nil])
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| source | string | O caminho de um arquivo .shader do recurso, um arquivo de outro recurso como @recurso/arquivo.shader, ou o código do shader, que começa com #type. |
| name | string | O nome pelo qual os materiais o encontram. Sem ele, é recurso/arquivo; com código-fonte ou macros, o nome termina num hash.padrão nil |
| macros | table | Tabela de nome → valor (texto, número ou booleano) definida antes de compilar. Os nomes são identificadores e não podem ser nomes que o motor define.padrão nil |
Retorno
O elemento shader, ou false se o texto não é um arquivo .shader nem código de shader, ou se não pôde ser lido de outro recurso.
Quando a compilação termina, onClientAssetLoad é disparado no shader. Os erros de compilação ficam em engineGetShaderErrors.
Exemplo
local shader = engineCreateShader("shaders/glow.shader", nil, { STRENGTH = 2 })
addEventHandler("onClientAssetLoad", shader, function(loaded)
if not loaded then
for _, message in ipairs(engineGetShaderErrors(shader)) do
outputDebugString(message)
end
end
end)AtençãoDar um nome que outro shader do mesmo recurso já tem é um erro.