These functions are ONLY available if the graphic board supports GLSL.
Please test in your scripts if one of them exists before your use them!
gl.CreateShader
({ [ vertex = "glsl code" ],
[ fragment = "glsl code" ],
[ uniform = { uniformName = number value, ...} ],
[ uniformInt = { uniformName = number value, ...} ],
[ uniformMatrix = { uniformName = number value, ...} ]
}) -> number shaderID
gl.DeleteShader
( number shaderID ) -> nil
gl.UseShader
( number shaderID ) -> boolean linked
gl.GetShaderLog
() -> string "errorLog"
gl.GetActiveUniforms
( number shaderID ) -> {
[1] = { name = "name", type = "type", length = number length, size = number size },
...
}
gl.GetUniformLocation
( number shaderID, name uniformName ) -> number locationID
gl.Uniform
( number locationID, number f1 [,number f2 [,number f3 [,number f4]]] ) -> nil
gl.UniformInt
( number locationID, number int1 [,number int2 [,number int3 [,number int4]]] ) -> nil
gl.UniformMatrix
( number locationID, "shadow" | "camera" | "caminv" | "camprj" | number m1, number m2, number m3, number m4 | number m1, ... , number m9 | number m1, ... , number m16 ) -> nil
