M MY Multiplayer: Wiki
Lado
Tipo

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

NomeTipoDescrição
sourcestringO 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.
namestringO 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
macrostableTabela 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.

Veja também