Lua GLSL Api: Difference between revisions
From Spring
Jump to navigationJump to search
m Fixed font colors, edited warning |
77b update (geo shaders!) |
||
| Line 3: | Line 3: | ||
'''gl.CreateShader''' | '''gl.CreateShader''' | ||
({ [ vertex = "glsl code" ], | ({ [ vertex = "glsl code" ,] | ||
[ fragment = "glsl code" ] | [ geometry = "glsl code" ,] | ||
[ uniform = { uniformName = number value, ...} ] | [ fragment = "glsl code" ,] | ||
[ uniformInt = { uniformName = number value, ...} ] | [ uniform = { uniformName = number value, ...} ,] | ||
[ uniformMatrix = { uniformName = number value, ...} ] | [ uniformInt = { uniformName = number value, ...} ,] | ||
[ uniformMatrix = { uniformName = number value, ...} ,] | |||
[ geoInputType = number inType,] | |||
[ geoOutputType = number outType,] | |||
[ geoOutputVerts = number maxVerts,] | |||
}) -> number shaderID | }) -> number shaderID | ||
'''gl.DeleteShader''' | '''gl.DeleteShader''' | ||
( number shaderID ) -> nil | ( number shaderID ) -> nil | ||
'''gl.ActiveShader''' <font color="#55ee99">can be used in none drawing events (to update uniforms etc.)!</font> | |||
( number shaderID, function [, arg1 [, arg2, ..]] ) -> nil | |||
'''gl.UseShader''' | '''gl.UseShader''' | ||
| Line 17: | Line 24: | ||
'''gl.GetShaderLog''' | '''gl.GetShaderLog''' | ||
() -> string "errorLog" | ( ) -> string "errorLog" | ||
'''gl.SetShaderParameter''' <font color="#55ee99">needed by geometry shader programs (check the opengl shader4 extension for glProgramParameteri)</font> | |||
( number shaderID, number param, number value ) -> nil | |||
'''gl.GetActiveUniforms''' | '''gl.GetActiveUniforms''' | ||
Revision as of 10:21, 3 January 2009
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" ,]
[ geometry = "glsl code" ,]
[ fragment = "glsl code" ,]
[ uniform = { uniformName = number value, ...} ,]
[ uniformInt = { uniformName = number value, ...} ,]
[ uniformMatrix = { uniformName = number value, ...} ,]
[ geoInputType = number inType,]
[ geoOutputType = number outType,]
[ geoOutputVerts = number maxVerts,]
}) -> number shaderID
gl.DeleteShader
( number shaderID ) -> nil
gl.ActiveShader can be used in none drawing events (to update uniforms etc.)!
( number shaderID, function [, arg1 [, arg2, ..]] ) -> nil
gl.UseShader
( number shaderID ) -> boolean linked
gl.GetShaderLog
( ) -> string "errorLog"
gl.SetShaderParameter needed by geometry shader programs (check the opengl shader4 extension for glProgramParameteri)
( number shaderID, number param, number value ) -> nil
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