Lua GLSL Api: Difference between revisions

From Spring
Jump to navigationJump to search
Argh (talk | contribs)
m Fixed font colors, edited warning
Jk (talk | contribs)
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