Lua OpenGL Api: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
'''gl. | == Spring == | ||
( | '''gl.GetSun''' | ||
() -> number sunPosX, number sunPosY, number sunPosZ | |||
( "pos" ) -> number sunPosX, number sunPosY, number sunPosZ | |||
( number | ( "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 | ||
'''gl.ConfigScreen''' | '''gl.ConfigScreen''' | ||
| Line 19: | Line 19: | ||
'''gl.ConfigMiniMap''' | '''gl.ConfigMiniMap''' | ||
( int px, int py, int sx, int sy ) -> nil | ( int px, int py, int sx, int sy ) -> nil | ||
== Basics == | |||
'''gl.PushMatrix''' | |||
() -> nil | |||
'''gl.PopMatrix''' | |||
() -> nil | |||
'''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.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 | |||
'''gl.Billboard''' <font color="green">use this to draw 2d primitives in DrawWorld</font> | |||
() -> nil | |||
'''gl.ResetState''' | '''gl.ResetState''' | ||
() -> nil | () -> nil | ||
| Line 30: | Line 60: | ||
( GL.STENCIL_BUFFER_BIT, int clearstencil ) -> 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.COLOR_BUFFER_BIT | GL.ACCUM_BUFFER_BIT, number r, number g, number b, number a ) -> nil | ||
== Draw Basics == | |||
'''gl.Text''' | |||
(string "text", number x, number y, number size, string "options") | |||
<font color="green"> | |||
options: | |||
'c' = center | |||
'r' = right | |||
'n' = colorCodes | |||
'o' = black outline | |||
'O' = white outline | |||
</font> | |||
'''gl.GetTextWidth''' | |||
(string "text") -> number width -- in pixels, with a font size of 1.0 | |||
'''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.Unit''' | |||
( number unitID, [ boolean rawdraw, int lod ] ) -> nil | |||
'''gl.UnitShape''' | |||
( number unitDefID, number teamID ) -> nil | |||
'''gl.Feature''' | |||
( number featureID ) -> nil | |||
'''gl.FeatureShape''' | |||
( number featureDefID, number teamID ) -> nil | |||
== Switches == | |||
'''gl.Blending''' | |||
( boolean enable | number srcmode, number dstmode ) -> nil | |||
'''gl.AlphaTest''' | |||
( boolean enable | number func, number threshold ) -> nil | |||
'''gl.DepthTest''' | |||
( boolean enable | number func ) -> nil | |||
'''gl.Culling''' | |||
( boolean enable | number face ) -> nil | |||
'''gl.Lighting''' | '''gl.Lighting''' | ||
| Line 37: | Line 116: | ||
( number mode ) -> nil | ( number mode ) -> nil | ||
'''gl. | '''gl.DepthMask''' | ||
( boolean | ( boolean enable ) -> nil | ||
'''gl.ColorMask''' | '''gl.ColorMask''' | ||
( boolean ) -> nil | ( boolean ) -> nil | ||
( boolean r, boolean g, boolean b, boolean a ) -> nil | ( boolean r, boolean g, boolean b, boolean a ) -> nil | ||
'''gl.LogicOp''' | '''gl.LogicOp''' | ||
| Line 59: | Line 128: | ||
'''gl.Fog''' | '''gl.Fog''' | ||
( boolean enable ) -> nil | ( boolean enable ) -> nil | ||
'''gl.Smoothing''' | '''gl.Smoothing''' | ||
| Line 68: | Line 134: | ||
(boolean enable | number POLYGON) ) -> nil | (boolean enable | number POLYGON) ) -> nil | ||
'''gl. | '''gl.Scissor''' | ||
( boolean | ( boolean ) -> nil | ||
( int x, int y, int w, int h ) -> nil | |||
'''gl.LineStipple''' | '''gl.LineStipple''' | ||
( string any ) -> nil (use springs default line stipple) | ( string any ) -> nil <font color="green">(use springs default line stipple)</font> | ||
( boolean enable ) -> nil | ( boolean enable ) -> nil | ||
( int factor, number pattern ) -> nil | ( int factor, number pattern ) -> nil | ||
| Line 81: | Line 148: | ||
'''gl.PolygonOffset''' | '''gl.PolygonOffset''' | ||
( boolean enable | number factor, number units ) -> nil | ( boolean enable | number factor, number units ) -> nil | ||
== Textures == | |||
'''gl.Material''' | '''gl.Material''' | ||
| Line 91: | Line 160: | ||
shininess = number specularExponent | shininess = number specularExponent | ||
}) -> nil | }) -> nil | ||
'''gl.Texture''' | '''gl.Texture''' | ||
( boolean enable | string name ) | ( boolean enable | string name ) | ||
<font color="green"> | |||
current formats: | current formats: | ||
| Line 122: | Line 173: | ||
$specular = specular cube map | $specular = specular cube map | ||
$reflection = reflection cube map | $reflection = reflection cube map | ||
</font> | |||
'''gl.CreateTexture''' | '''gl.CreateTexture''' | ||
| Line 145: | Line 196: | ||
'''gl.TextureInfo''' | '''gl.TextureInfo''' | ||
'''gl.CopyToTexture''' | '''gl.CopyToTexture''' | ||
| Line 152: | Line 204: | ||
'''gl.DeleteTextureFBO''' <font color="red">(needs GLEW_EXT_framebuffer_object!)</font> | '''gl.DeleteTextureFBO''' <font color="red">(needs GLEW_EXT_framebuffer_object!)</font> | ||
( string texture ) -> boolean | ( string texture ) -> boolean | ||
'''gl.RenderToTexture''' <font color="red">(needs GLEW_EXT_framebuffer_object!)</font> | '''gl.RenderToTexture''' <font color="red">(needs GLEW_EXT_framebuffer_object!)</font> | ||
( string fbotexture, lua_func ) -> nil | ( string fbotexture, lua_func ) -> nil | ||
| Line 158: | Line 211: | ||
( string texture ) -> boolean | ( string texture ) -> boolean | ||
'''gl. | == Shapes == | ||
( int | |||
'''gl.UnitPiece''' | |||
( number unitID, int piece ) -> nil | |||
'''gl.UnitPieceMatrix''' | |||
( number unitID, int piece ) -> nil | |||
'''gl.DrawListAtUnit''' | |||
( number unitID, number listID, boolean midPos ) -> nil | |||
'''gl. | '''gl.DrawFuncAtUnit''' | ||
( number | ( number unitID, boolean midPos, function [, arg1,... ]) -> nil | ||
'''gl. | '''gl.DrawGroundCircle''' | ||
( | ( number x, number y, number z, number radius, number divs [, number slope ] ) -> nil | ||
'''gl. | '''gl.DrawGroundQuad''' | ||
( number | ( number x1, number z1, number x2, number z2, | ||
[ boolean useNorm, number u1, number v1, number u2, number v2 ] ) -> nil | |||
'''gl. | '''gl.Light''' | ||
( int | ( int light, | ||
boolean enable | | |||
number pname, number param | | |||
number pname, number param1, number param2, number param3 ) -> nil | |||
'''gl.Shape''' | '''gl.Shape''' | ||
( number GLtype, | ( number GLtype, | ||
elements = { | elements = { | ||
[1] = { v | vertex = { number x, number y, number z }, | [1] = { v | vertex = { number x, number y, number z }, <font color="green">required</font> | ||
n | normal = { number x, number y, number z }, | n | normal = { number x, number y, number z }, <font color="green">optional</font> | ||
t | texcoord = { number x, number y }, | t | texcoord = { number x, number y }, <font color="green">optional</font> | ||
c | color = { number r, number g, number b, number a } | c | color = { number r, number g, number b, number a } <font color="green">optional</font> | ||
}, | }, | ||
etc ... | etc ... | ||
| Line 220: | Line 275: | ||
number x, number y, number z | | number x, number y, number z | | ||
number x, number y, number z, number w ) -> nil | number x, number y, number z, number w ) -> nil | ||
'''gl. | == Display Lists == | ||
( | |||
'''gl.CreateList''' | |||
( function [,arg1 [,arg2...]] ) -> nil | |||
'''gl.CallList''' | |||
( number listID ) -> nil | |||
'''gl.DeleteList''' | |||
( number listID ) -> nil | |||
== Hardware relevant == | |||
'''gl.HasExtension''' | |||
( string extname ) -> boolean | |||
'''gl. | '''gl.GetNumber''' | ||
( number | ( number ext, int count ) -> number | ||
'''gl. | '''gl.GetString''' | ||
( number | ( number ext ) -> string | ||
== Extended == | |||
'''gl. | '''gl.GetGlobalTexNames''' | ||
(string | () -> { [1] = string texture, etc ... } | ||
'''gl. | '''gl.GetGlobalTexCoords''' | ||
(string | ( string tatexture ) -> number xstart, number ystart, number xend, number yend | ||
'''gl. | '''gl.GetShadowMapParams''' | ||
( number | () -> number xmid, number ymid, number p17, number p18 | ||
'''gl. | '''gl.GetMatrixData''' | ||
( number | ( 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. | '''gl.PointSprite''' <font color="red">(needs openGL2.0!)</font> | ||
( | ( boolean enable, [boolean coord_replace, boolean coord_origin_upper] ) -> nil | ||
'''gl. | '''gl.PointParameter''' <font color="red">(needs openGL2.0!)</font> | ||
( number | ( number v1, number v2, number v3, | ||
[ number sizeMin, number sizeMax, number sizeFade ] ) -> nil | |||
'''gl. | '''gl.ActiveTexture''' | ||
( | ( int texNum, function [, arg1,... ] ) -> nil | ||
'''gl. | '''gl.TexEnv''' | ||
( number | ( number target, number pname, | ||
number value | | |||
number var1, number var2, number var3 ) -> nil | |||
'''gl. | '''gl.MultiTexEnv''' | ||
( number | ( int texNum, number target, number pname, | ||
number value | | |||
number var1, number var2, number var3 ) -> nil | |||
'''gl. | '''gl.TexGen''' | ||
( number | ( number target, | ||
boolean state | | |||
number pname, number value | | |||
number pname, number var1, number var2, number var3 ) -> nil | |||
'''gl. | '''gl.MultiTexGen''' | ||
( number | ( int texNum, number target, | ||
boolean state | | |||
number pname, number value | | |||
number pname, number var1, number var2, number var3 ) -> nil | |||
'''gl. | '''gl.SecondaryColor''' | ||
( number | ( { number r, number g, number b } | | ||
number r, number g, number b ) -> nil | |||
'''gl. | '''gl.FogCoord''' | ||
( | ( number value ) -> nil | ||
'''gl.ClipPlane''' | '''gl.ClipPlane''' | ||
( int plane, | ( int plane, <font color="green">note: $plane can only be 1 or 2</font> | ||
boolean enable | | boolean enable | | ||
number A, number B, number C, number D ) -> nil | number A, number B, number C, number D ) -> nil | ||
| Line 300: | Line 373: | ||
'''gl.MultMatrix''' | '''gl.MultMatrix''' | ||
'''gl.Ortho''' | '''gl.Ortho''' | ||
| Line 315: | Line 379: | ||
'''gl.Frustum''' | '''gl.Frustum''' | ||
( number left, number right, number bottom, number top, number near, number far ) -> nil | ( number left, number right, number bottom, number top, number near, number far ) -> nil | ||
'''gl.PushPopMatrix''' | '''gl.PushPopMatrix''' | ||
'''gl.PushAttrib''' | '''gl.PushAttrib''' | ||
| Line 342: | Line 387: | ||
'''gl.PopAttrib''' | '''gl.PopAttrib''' | ||
() -> nil | () -> nil | ||
'''gl.Flush''' | '''gl.Flush''' | ||
| Line 357: | Line 393: | ||
'''gl.Finish''' | '''gl.Finish''' | ||
() -> nil | () -> nil | ||
Revision as of 16:16, 2 August 2007
Spring
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
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
Basics
gl.PushMatrix
() -> nil
gl.PopMatrix
() -> nil
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.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
gl.Billboard use this to draw 2d primitives in DrawWorld
() -> 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
Draw Basics
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.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.Unit
( number unitID, [ boolean rawdraw, int lod ] ) -> nil
gl.UnitShape
( number unitDefID, number teamID ) -> nil
gl.Feature
( number featureID ) -> nil
gl.FeatureShape
( number featureDefID, number teamID ) -> nil
Switches
gl.Blending
( boolean enable | number srcmode, number dstmode ) -> nil
gl.AlphaTest
( boolean enable | number func, number threshold ) -> nil
gl.DepthTest
( boolean enable | number func ) -> nil
gl.Culling
( boolean enable | number face ) -> nil
gl.Lighting
( boolean enable ) -> nil
gl.ShadeModel
( number mode ) -> nil
gl.DepthMask
( boolean enable ) -> nil
gl.ColorMask
( boolean ) -> nil ( boolean r, boolean g, boolean b, boolean a ) -> nil
gl.LogicOp
( boolean enable | number func ) -> nil
gl.Fog
( boolean enable ) -> nil
gl.Smoothing
( (boolean enable | number POINT), (boolean enable | number LINE), (boolean enable | number POLYGON) ) -> nil
gl.Scissor
( boolean ) -> nil ( int x, int y, int w, int h ) -> 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
Textures
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.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
gl.DeleteTextureFBO (needs GLEW_EXT_framebuffer_object!)
( string texture ) -> boolean
gl.RenderToTexture (needs GLEW_EXT_framebuffer_object!)
( string fbotexture, lua_func ) -> nil
gl.GenerateMipmap (needs glGenerateMipmapEXT!)
( string texture ) -> boolean
Shapes
gl.UnitPiece
( number unitID, int piece ) -> nil
gl.UnitPieceMatrix
( number unitID, int piece ) -> 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.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
( number GLType, function [, arg1,... ] ) -> nil
gl.Vertex
( { number x, number y [, number z [, number w ]] } |
number x, number y |
number x, number y, number z |
number x, number y, number z, number w ) -> nil
gl.Normal
( number x, number y, number z |
{ number x, number y, number z } ) -> nil
gl.TexCoord
( number x | { number x [, number y [, number z [, number w ]]] } |
number x, number y |
number x, number y, number z |
number x, number y, number z, number w ) -> nil
gl.MultiTexCoord
( int texNum,
number x | { number x [, number y [, number z [, number w ]]] } |
number x, number y |
number x, number y, number z |
number x, number y, number z, number w ) -> nil
Display Lists
gl.CreateList
( function [,arg1 [,arg2...]] ) -> nil
gl.CallList
( number listID ) -> nil
gl.DeleteList
( number listID ) -> nil
Hardware relevant
gl.HasExtension
( string extname ) -> boolean
gl.GetNumber
( number ext, int count ) -> number
gl.GetString
( number ext ) -> string
Extended
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.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.PointSprite (needs openGL2.0!)
( boolean enable, [boolean coord_replace, boolean coord_origin_upper] ) -> nil
gl.PointParameter (needs openGL2.0!)
( number v1, number v2, number v3, [ number sizeMin, number sizeMax, number sizeFade ] ) -> nil
gl.ActiveTexture
( int texNum, function [, arg1,... ] ) -> nil
gl.TexEnv
( number target, number pname, number value | number var1, number var2, number var3 ) -> nil
gl.MultiTexEnv
( int texNum, number target, number pname, number value | number var1, number var2, number var3 ) -> nil
gl.TexGen
( number target, boolean state | number pname, number value | number pname, number var1, number var2, number var3 ) -> nil
gl.MultiTexGen
( int texNum, number target, boolean state | number pname, number value | number pname, number var1, number var2, number var3 ) -> nil
gl.SecondaryColor
( { number r, number g, number b } |
number r, number g, number b ) -> nil
gl.FogCoord
( number value ) -> 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.Ortho
( number left, number right, number bottom, number top, number near, number far ) -> nil
gl.Frustum
( number left, number right, number bottom, number top, number near, number far ) -> nil
gl.PushPopMatrix
gl.PushAttrib
( [number] ) -> nil
gl.PopAttrib
() -> nil
gl.Flush
() -> nil
gl.Finish
() -> nil