Lua OpenGL Api: Difference between revisions

From Spring
Jump to navigationJump to search
JK (talk | contribs)
No edit summary
JK (talk | contribs)
No edit summary
Line 1: Line 1:
''' '' NOT FINISHED YET '' '''
''' '' NOT FINISHED YET '' '''


'''gl.HasExtension'''( string extname ) -> boolean
'''gl.HasExtension'''
  ( string extname ) -> boolean


'''gl.GetNumber'''( number ext, int count ) -> number
'''gl.GetNumber'''
  ( number ext, int count ) -> number


'''gl.GetString'''( number ext ) -> string
'''gl.GetString'''
  ( number ext ) -> string


'''gl.ConfigScreen'''( number screenWidth, number screenDistanc e) -> nil
'''gl.ConfigScreen'''
  ( number screenWidth, number screenDistanc e) -> nil


'''gl.DrawMiniMap'''() -> nil
'''gl.DrawMiniMap'''
  () -> nil


'''gl.SlaveMiniMap'''( boolean mode ) -> nil
'''gl.SlaveMiniMap'''
  ( boolean mode ) -> nil


'''gl.ConfigMiniMap'''( int px, int py, int sx, int sy ) -> nil
'''gl.ConfigMiniMap'''
  ( int px, int py, int sx, int sy ) -> nil
'''gl.ResetState'''() -> nil
'''gl.ResetState'''
  () -> nil


'''gl.ResetMatrices'''() -> nil
'''gl.ResetMatrices'''
  () -> nil


'''gl.Clear'''
'''gl.Clear'''
Line 24: Line 33:
   ( GL.COLOR_BUFFER_BIT | GL.ACCUM_BUFFER_BIT, number r, number g, number b, number a ) -> nil
   ( GL.COLOR_BUFFER_BIT | GL.ACCUM_BUFFER_BIT, number r, number g, number b, number a ) -> nil


'''gl.Lighting'''( boolean enable ) -> nil
'''gl.Lighting'''
  ( boolean enable ) -> nil


'''gl.ShadeModel'''( number mode ) -> nil
'''gl.ShadeModel'''
  ( number mode ) -> nil


'''gl.Scissor'''
'''gl.Scissor'''
Line 36: Line 47:
   ( boolean r, boolean g, boolean b, boolean a ) -> nil
   ( boolean r, boolean g, boolean b, boolean a ) -> nil


'''gl.DepthMask'''( boolean enable ) -> nil
'''gl.DepthMask'''
  ( boolean enable ) -> nil


'''gl.DepthTest'''( boolean enable | number func ) -> nil
'''gl.DepthTest'''
  ( boolean enable | number func ) -> nil


'''gl.Culling'''( boolean enable | number face ) -> nil
'''gl.Culling'''
  ( boolean enable | number face ) -> nil


'''gl.LogicOp'''( boolean enable | number func ) -> nil
'''gl.LogicOp'''
  ( boolean enable | number func ) -> nil


'''gl.Fog'''( boolean enable ) -> nil
'''gl.Fog'''
  ( boolean enable ) -> nil


'''gl.Blending'''( boolean enable | number srcmode, number dstmode ) -> nil
'''gl.Blending'''
  ( boolean enable | number srcmode, number dstmode ) -> nil


'''gl.Smoothing'''(  
'''gl.Smoothing'''
  (boolean enable | number POINT),  
( (boolean enable | number POINT),  
  (boolean enable | number LINE),
  (boolean enable | number LINE),
  (boolean enable | number POLYGON) ) -> nil
  (boolean enable | number POLYGON) ) -> nil


'''gl.AlphaTest'''( boolean enable | number func, number threshold ) -> nil
'''gl.AlphaTest'''
  ( boolean enable | number func, number threshold ) -> nil


'''gl.LineStipple'''
'''gl.LineStipple'''
Line 60: Line 78:
   ( int factor, number pattern ) -> nil
   ( int factor, number pattern ) -> nil


'''gl.PolygonMode'''( number face, number mode ) -> nil
'''gl.PolygonMode'''
  ( number face, number mode ) -> nil


'''gl.PolygonOffset'''( boolean enable | number factor, number units ) -> nil
'''gl.PolygonOffset'''
  ( boolean enable | number factor, number units ) -> nil




'''gl.Material'''({
'''gl.Material'''
  ({
     ambient  = {number r, number g, number b[, number a]},
     ambient  = {number r, number g, number b[, number a]},
     diffuse  = {number r, number g, number b[, number a]},
     diffuse  = {number r, number g, number b[, number a]},
Line 74: Line 95:
   }) -> nil
   }) -> nil


'''gl.Color'''( { number r, number g, number b[, number a] } |
'''gl.Color'''
            number r, number g, number b[, number a] ) -> nil
  ( { number r, number g, number b[, number a] } |
    number r, number g, number b[, number a] ) -> nil


'''gl.LineWidth'''( number width ) -> nil
'''gl.LineWidth'''
  ( number width ) -> nil


'''gl.PointSize'''( number size ) -> nil
'''gl.PointSize'''
  ( number size ) -> nil




if (haveGL20) {
if (haveGL20) {
   '''gl.PointSprite'''( boolean enable, [boolean coord_replace, boolean coord_origin_upper] ) -> nil
   '''gl.PointSprite'''
  ( boolean enable, [boolean coord_replace, boolean coord_origin_upper] ) -> nil


   '''gl.PointParameter'''(
   '''gl.PointParameter'''
    number v1, number v2, number v3,  
  ( number v1, number v2, number v3,  
     [ number sizeMin, number sizeMax, number sizeFade ] ) -> nil
     [ number sizeMin, number sizeMax, number sizeFade ] ) -> nil
}
}


'''gl.Texture'''( boolean enable | string name )
'''gl.Texture'''
  ( boolean enable | string name )
 
                  current formats:
 
   /LuaUI/images/image.png = filename
   /LuaUI/images/image.png = filename
                       #12 = unitDef 12 buildpic
                       #12 = unitDef 12 buildpic
Line 100: Line 129:




'''gl.CreateTexture'''( int xsize, int ysize, [ {  
'''gl.CreateTexture'''
  ( int xsize, int ysize,
  [ {  
     [target    = number,]
     [target    = number,]
     [format    = number,]
     [format    = number,]
Line 112: Line 143:
     [fbo        = boolean,]
     [fbo        = boolean,]
     [fboDepth  = boolean]
     [fboDepth  = boolean]
   }) -> string
   } ]
  ) -> string


'''gl.DeleteTexture'''( string texture ) -> boolean
'''gl.DeleteTexture'''
  ( string texture ) -> boolean


'''gl.TextureInfo'''
'''gl.TextureInfo'''


'''gl.CopyToTexture'''(string texture, int xoff, int yoff, int x, int y, int w, int h [,number target,number level])->nil
'''gl.CopyToTexture'''
  (string texture, int xoff, int yoff, int x, int y, int w, int h  
  [,number target,number level])->nil


if (GLEW_EXT_framebuffer_object) {
if (GLEW_EXT_framebuffer_object) {
   '''gl.DeleteTextureFBO'''( string texture ) -> boolean
   '''gl.DeleteTextureFBO'''
   '''gl.RenderToTexture'''( string fbotexture, lua_func ) -> nil
  ( string texture ) -> boolean
   '''gl.RenderToTexture'''
  ( string fbotexture, lua_func ) -> nil
}
}


if (glGenerateMipmapEXT) {
if (glGenerateMipmapEXT) {
   '''gl.GenerateMipmap'''( string texture ) -> boolean
   '''gl.GenerateMipmap'''
  ( string texture ) -> boolean
}
}


Line 139: Line 177:
'''gl.MultiTexGen'''
'''gl.MultiTexGen'''


'''gl.Shape'''(
'''gl.Shape'''
  number GLtype,
( number GLtype,
  elements = {
  elements = {
    [1] = { v | vertex  = { number x, number y, number z },          -- required
    [1] = { v | vertex  = { number x, number y, number z },          -- required
            n | normal  = { number x, number y, number z },          -- optional
            n | normal  = { number x, number y, number z },          -- optional
            t | texcoord = { number x, number y },                    -- optional
            t | texcoord = { number x, number y },                    -- optional
            c | color    = { number r, number g, number b, number a }  -- optional
            c | color    = { number r, number g, number b, number a }  -- optional
    },
    },
    etc ...
    etc ...
  }
  }
) -> nil
) -> nil


'''gl.BeginEnd'''
'''gl.BeginEnd'''
Line 165: Line 203:
'''gl.FogCoord'''
'''gl.FogCoord'''


'''gl.Rect'''( number x1, number y1, number x2, number y2 ) -> nil
'''gl.Rect'''
  ( number x1, number y1, number x2, number y2 ) -> nil


'''gl.TexRect'''( number x1, number y1, number x2, number y2,
'''gl.TexRect'''
  ( number x1, number y1, number x2, number y2,
   [ boolean flip_s, boolean flip_t | number s1, number t1, number s2, number t2 ] ) -> nil
   [ boolean flip_s, boolean flip_t | number s1, number t1, number s2, number t2 ] ) -> nil


'''gl.Text'''(string "text", number x, number y, number size, string "options")
'''gl.Text'''
  (string "text", number x, number y, number size, string "options")
   options:
   options:
   'c' = center
   'c' = center
Line 178: Line 219:
   'O' = white outline
   'O' = white outline


'''gl.GetTextWidth'''(string "text") -> number width  --  in pixels, with a font size of 1.0
'''gl.GetTextWidth'''
  (string "text") -> number width  --  in pixels, with a font size of 1.0


'''gl.Unit'''( number unitID, [ boolean rawdraw, int lod ] ) -> nil
'''gl.Unit'''
  ( number unitID, [ boolean rawdraw, int lod ] ) -> nil


'''gl.UnitShape'''( number unitDefID, number teamID ) -> nil
'''gl.UnitShape'''
  ( number unitDefID, number teamID ) -> nil


'''gl.UnitPiece'''( number unitID, int piece ) -> nil
'''gl.UnitPiece'''
  ( number unitID, int piece ) -> nil


'''gl.UnitPieceMatrix'''( number unitID, int piece ) -> nil
'''gl.UnitPieceMatrix'''
  ( number unitID, int piece ) -> nil


'''gl.Feature'''( number featureID ) -> nil
'''gl.Feature'''
  ( number featureID ) -> nil


'''gl.FeatureShape'''( number featureDefID, number teamID ) -> nil
'''gl.FeatureShape'''
  ( number featureDefID, number teamID ) -> nil


'''gl.DrawListAtUnit'''( number unitID, number listID, boolean midPos ) -> nil  
'''gl.DrawListAtUnit'''
  ( number unitID, number listID, boolean midPos ) -> nil  


'''gl.DrawFuncAtUnit'''( number unitID, boolean midPos, function [, arg1,... ]) -> nil
'''gl.DrawFuncAtUnit'''
  ( number unitID, boolean midPos, function [, arg1,... ]) -> nil


'''gl.DrawGroundCircle'''( number x, number y, number z, number radius, number divs [, number slope ] ) -> nil
'''gl.DrawGroundCircle'''
  ( number x, number y, number z, number radius, number divs [, number slope ] ) -> nil


'''gl.DrawGroundQuad'''( number x1, number z1, number x2, number z2,
'''gl.DrawGroundQuad'''
  ( number x1, number z1, number x2, number z2,
   [ boolean useNorm, number u1, number v1, number u2, number v2 ] ) -> nil
   [ boolean useNorm, number u1, number v1, number u2, number v2 ] ) -> nil


'''gl.Light'''( int light,  
'''gl.Light'''
  ( int light,  
   boolean enable |
   boolean enable |
   number pname, number param |
   number pname, number param |
   number pname, number param1, number param2, number param3 ) -> nil
   number pname, number param1, number param2, number param3 ) -> nil


'''gl.ClipPlane'''( int plane, /*note: $plane can only be 1 or 2*/
'''gl.ClipPlane'''
  ( int plane, /*note: $plane can only be 1 or 2*/
   boolean enable |
   boolean enable |
   number A, number B, number C, number D ) -> nil
   number A, number B, number C, number D ) -> nil


'''gl.MatrixMode'''( number mode ) -> nil
'''gl.MatrixMode'''
  ( number mode ) -> nil


'''gl.LoadIdentity'''() -> nil
'''gl.LoadIdentity'''
  () -> nil


'''gl.LoadMatrix'''() -> nil
'''gl.LoadMatrix'''
  () -> nil


'''gl.MultMatrix'''
'''gl.MultMatrix'''


'''gl.Translate'''(number x, number y, number z) -> nil
'''gl.Translate'''
  (number x, number y, number z) -> nil


'''gl.Scale'''(number x, number y, number z) -> nil
'''gl.Scale'''
  (number x, number y, number z) -> nil


'''gl.Rotate'''(number angle, number x, number y, number z) -> nil
'''gl.Rotate'''
  (number angle, number x, number y, number z) -> nil


'''gl.Ortho'''
'''gl.Ortho'''
Line 228: Line 288:
'''gl.Frustum'''
'''gl.Frustum'''


'''gl.PushMatrix'''() -> nil
'''gl.PushMatrix'''
  () -> nil


'''gl.PopMatrix'''() -> nil
'''gl.PopMatrix'''
  () -> nil


'''gl.PushPopMatrix'''
'''gl.PushPopMatrix'''


'''gl.Billboard'''() -> nil
'''gl.Billboard'''
  () -> nil


'''gl.GetMatrixData'''
'''gl.GetMatrixData'''
  ( GL.PROJECTION [, int i] ) -> nil | { [1] = number, etc.. } | number Matrix[i]
  ( GL.MODELVIEW  [, int i] ) -> nil | { [1] = number, etc.. } | number Matrix[i]
  ( GL.TEXTURE    [, int i] ) -> nil | { [1] = number, etc.. } | number Matrix[i]
  ( "shadow" )                -> nil | { [1] = number, etc.. }
  ( "camera" )                -> nil | { [1] = number, etc.. }
  ( "caminv" )                -> nil | { [1] = number, etc.. }
  ( "camprj" )                -> nil | { [1] = number, etc.. }
  ( "billboard" )            -> nil | { [1] = number, etc.. }


'''gl.PushAttrib'''( [number] ) -> nil
'''gl.PushAttrib'''
  ( [number] ) -> nil


'''gl.PopAttrib'''() -> nil
'''gl.PopAttrib'''
  () -> nil


'''gl.CreateList'''( function [,arg1 [,arg2...]] ) -> nil
'''gl.CreateList'''
  ( function [,arg1 [,arg2...]] ) -> nil


'''gl.CallList'''( number listID ) -> nil
'''gl.CallList'''
  ( number listID ) -> nil


'''gl.DeleteList'''( number listID ) -> nil
'''gl.DeleteList'''
  ( number listID ) -> nil


'''gl.Flush'''() -> nil
'''gl.Flush'''
  () -> nil


'''gl.Finish'''() -> nil
'''gl.Finish'''
  () -> nil


'''gl.GetGlobalTexNames'''
'''gl.GetGlobalTexNames'''
  () -> { [1] = string texture, etc ... }


'''gl.GetGlobalTexCoords'''
'''gl.GetGlobalTexCoords'''
  ( string tatexture ) -> number xstart, number ystart, number xend, number yend


'''gl.GetShadowMapParams'''
'''gl.GetShadowMapParams'''
  () -> number xmid, number ymid, number p17, number p18


'''gl.GetSun'''
'''gl.GetSun'''
   ( nil  ) -> number sunPosX, number sunPosY, number sunPosZ
   ()       -> number sunPosX, number sunPosY, number sunPosZ
   ( "pos" ) -> number sunPosX, number sunPosY, number sunPosZ
   ( "pos" ) -> number sunPosX, number sunPosY, number sunPosZ
   ( "shadowDensity" [, "unit"] ) -> number shadowDensity
   ( "shadowDensity" [, "unit"] ) -> number shadowDensity

Revision as of 00:38, 1 August 2007

NOT FINISHED YET

gl.HasExtension

 ( string extname ) -> boolean

gl.GetNumber

 ( number ext, int count ) -> number

gl.GetString

 ( number ext ) -> string

gl.ConfigScreen

 ( number screenWidth, number screenDistanc e) -> nil

gl.DrawMiniMap

 () -> nil

gl.SlaveMiniMap

 ( boolean mode ) -> nil

gl.ConfigMiniMap

 ( int px, int py, int sx, int sy ) -> nil

gl.ResetState

 () -> nil

gl.ResetMatrices

 () -> nil

gl.Clear

 ( GL.DEPTH_BUFFER_BIT, number cleardepth ) -> nil
 ( GL.STENCIL_BUFFER_BIT, int clearstencil ) -> nil
 ( GL.COLOR_BUFFER_BIT | GL.ACCUM_BUFFER_BIT, number r, number g, number b, number a ) -> nil

gl.Lighting

 ( boolean enable ) -> nil

gl.ShadeModel

 ( number mode ) -> nil

gl.Scissor

 ( boolean ) -> nil
 ( int x, int y, int w, int h ) -> nil

gl.ColorMask

 ( boolean ) -> nil
 ( boolean r, boolean g, boolean b, boolean a ) -> nil

gl.DepthMask

 ( boolean enable ) -> nil

gl.DepthTest

 ( boolean enable | number func ) -> nil

gl.Culling

 ( boolean enable | number face ) -> nil

gl.LogicOp

 ( boolean enable | number func ) -> nil

gl.Fog

 ( boolean enable ) -> nil

gl.Blending

 ( boolean enable | number srcmode, number dstmode ) -> nil

gl.Smoothing

( (boolean enable | number POINT), 
  (boolean enable | number LINE),
  (boolean enable | number POLYGON) ) -> nil

gl.AlphaTest

 ( boolean enable | number func, number threshold ) -> nil

gl.LineStipple

 ( string any ) -> nil (use springs default line stipple)
 ( boolean enable ) -> nil
 ( int factor, number pattern ) -> nil

gl.PolygonMode

 ( number face, number mode ) -> nil

gl.PolygonOffset

 ( boolean enable | number factor, number units ) -> nil


gl.Material

 ({
   ambient   = {number r, number g, number b[, number a]},
   diffuse   = {number r, number g, number b[, number a]},
   ambidiff  = {number r, number g, number b[, number a]},
   emission  = {number r, number g, number b[, number a]},
   specular  = {number r, number g, number b[, number a]},
   shininess = number specularExponent
 }) -> nil

gl.Color

 ( { number r, number g, number b[, number a] } |
   number r, number g, number b[, number a] ) -> nil

gl.LineWidth

 ( number width ) -> nil

gl.PointSize

 ( number size ) -> nil


if (haveGL20) {

 gl.PointSprite
 ( boolean enable, [boolean coord_replace, boolean coord_origin_upper] ) -> nil
 gl.PointParameter
 ( number v1, number v2, number v3, 
   [ number sizeMin, number sizeMax, number sizeFade ] ) -> nil

}

gl.Texture

 ( boolean enable | string name )
                 current formats:
 /LuaUI/images/image.png = filename
                     #12 = unitDef 12 buildpic
                   %34%2 = unitDef 34 s3o tex2
                     !56 = lua generated texture 56
                 $shadow = shadowmap
               $specular = specular cube map
             $reflection = reflection cube map


gl.CreateTexture

 ( int xsize, int ysize,
 [ { 
   [target     = number,]
   [format     = number,]
   [min_filter = number,]
   [mag_filter = number,]
   [wrap_s     = number,]
   [wrap_t     = number,]
   [wrap_r     = number,]
   [aniso      = number,]
   [border     = boolean,]
   [fbo        = boolean,]
   [fboDepth   = boolean]
 } ]
 ) -> string

gl.DeleteTexture

 ( string texture ) -> boolean

gl.TextureInfo

gl.CopyToTexture

 (string texture, int xoff, int yoff, int x, int y, int w, int h 
 [,number target,number level])->nil

if (GLEW_EXT_framebuffer_object) {

 gl.DeleteTextureFBO
 ( string texture ) -> boolean
 gl.RenderToTexture
 ( string fbotexture, lua_func ) -> nil

}

if (glGenerateMipmapEXT) {

 gl.GenerateMipmap
 ( string texture ) -> boolean

}

gl.ActiveTexture

gl.TexEnv

gl.MultiTexEnv

gl.TexGen

gl.MultiTexGen

gl.Shape

( number GLtype,
  elements = {
    [1] = { v | vertex   = { number x, number y, number z },           -- required
            n | normal   = { number x, number y, number z },           -- optional
            t | texcoord = { number x, number y },                     -- optional
            c | color    = { number r, number g, number b, number a }  -- optional
    },
    etc ...
  }
) -> nil

gl.BeginEnd

gl.Vertex

gl.Normal

gl.TexCoord

gl.MultiTexCoord

gl.SecondaryColor

gl.FogCoord

gl.Rect

 ( number x1, number y1, number x2, number y2 ) -> nil

gl.TexRect

 ( number x1, number y1, number x2, number y2,
 [ boolean flip_s, boolean flip_t | number s1, number t1, number s2, number t2 ] ) -> nil

gl.Text

 (string "text", number x, number y, number size, string "options")
 options:
 'c' = center
 'r' = right
 'n' = colorCodes
 'o' = black outline
 'O' = white outline

gl.GetTextWidth

 (string "text") -> number width  --  in pixels, with a font size of 1.0

gl.Unit

 ( number unitID, [ boolean rawdraw, int lod ] ) -> nil

gl.UnitShape

 ( number unitDefID, number teamID ) -> nil

gl.UnitPiece

 ( number unitID, int piece ) -> nil

gl.UnitPieceMatrix

 ( number unitID, int piece ) -> nil

gl.Feature

 ( number featureID ) -> nil

gl.FeatureShape

 ( number featureDefID, number teamID ) -> nil

gl.DrawListAtUnit

 ( number unitID, number listID, boolean midPos ) -> nil 

gl.DrawFuncAtUnit

 ( number unitID, boolean midPos, function [, arg1,... ]) -> nil

gl.DrawGroundCircle

 ( number x, number y, number z, number radius, number divs [, number slope ] ) -> nil

gl.DrawGroundQuad

 ( number x1, number z1, number x2, number z2,
 [ boolean useNorm, number u1, number v1, number u2, number v2 ] ) -> nil

gl.Light

 ( int light, 
 boolean enable |
 number pname, number param |
 number pname, number param1, number param2, number param3 ) -> nil

gl.ClipPlane

 ( int plane, /*note: $plane can only be 1 or 2*/
 boolean enable |
 number A, number B, number C, number D ) -> nil

gl.MatrixMode

 ( number mode ) -> nil

gl.LoadIdentity

 () -> nil

gl.LoadMatrix

 () -> nil

gl.MultMatrix

gl.Translate

 (number x, number y, number z) -> nil

gl.Scale

 (number x, number y, number z) -> nil

gl.Rotate

 (number angle, number x, number y, number z) -> nil

gl.Ortho

gl.Frustum

gl.PushMatrix

 () -> nil

gl.PopMatrix

 () -> nil

gl.PushPopMatrix

gl.Billboard

 () -> nil

gl.GetMatrixData

 ( GL.PROJECTION [, int i] ) -> nil | { [1] = number, etc.. } | number Matrix[i]
 ( GL.MODELVIEW  [, int i] ) -> nil | { [1] = number, etc.. } | number Matrix[i] 
 ( GL.TEXTURE    [, int i] ) -> nil | { [1] = number, etc.. } | number Matrix[i]
 ( "shadow" )                -> nil | { [1] = number, etc.. }
 ( "camera" )                -> nil | { [1] = number, etc.. }
 ( "caminv" )                -> nil | { [1] = number, etc.. }
 ( "camprj" )                -> nil | { [1] = number, etc.. }
 ( "billboard" )             -> nil | { [1] = number, etc.. }

gl.PushAttrib

 ( [number] ) -> nil

gl.PopAttrib

 () -> nil

gl.CreateList

 ( function [,arg1 [,arg2...]] ) -> nil

gl.CallList

 ( number listID ) -> nil

gl.DeleteList

 ( number listID ) -> nil

gl.Flush

 () -> nil

gl.Finish

 () -> nil

gl.GetGlobalTexNames

 () -> { [1] = string texture, etc ... }

gl.GetGlobalTexCoords

 ( string tatexture ) -> number xstart, number ystart, number xend, number yend

gl.GetShadowMapParams

 () -> number xmid, number ymid, number p17, number p18

gl.GetSun

 ()        -> number sunPosX, number sunPosY, number sunPosZ
 ( "pos" ) -> number sunPosX, number sunPosY, number sunPosZ
 ( "shadowDensity" [, "unit"] ) -> number shadowDensity
 ( "diffuse"       [, "unit"] ) -> nil | number r, number g, number b
 ( "ambient"       [, "unit"] ) -> nil | number r, number g, number b
 ( "specular" )                 -> nil | number r, number g, number b