engineCreateShader
Cliente
Crea un shader a partir de un archivo .shader o de su código fuente. El shader compila en segundo plano.
shader|false engineCreateShader(string source [, string name = nil, table macros = nil])
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| source | string | La ruta de un archivo .shader del recurso, un archivo de otro recurso como @recurso/archivo.shader, o el código del shader, que empieza con #type. |
| name | string | El nombre con el que los materiales lo encuentran. Sin él, es recurso/archivo; con código fuente o macros, el nombre termina en un hash.por defecto nil |
| macros | table | Tabla de nombre → valor (texto, número o booleano) definida antes de compilar. Los nombres son identificadores y no pueden ser nombres que define el motor.por defecto nil |
Retorno
El elemento shader, o false si el texto no es un archivo .shader ni código de shader, o si no se pudo leer de otro recurso.
Cuando la compilación termina, se dispara onClientAssetLoad en el shader. Los errores de compilación los lista engineGetShaderErrors.
Ejemplo
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)AtenciónDar un nombre que otro shader del mismo recurso ya tiene es un error.