Previous Homepage

OpenGL constants

In Lua, all OpenGL constants were converted to strings, for example: instead of writing GL_QUADS, you should write 'QUADS'. In functions that expected a bitwise operation between mask parameters, in Lua will receive a string that contains all the constants strings separated by comma (,). For example:

gl.Begin ("TRIANGLES")

gl.Clear ('COLOR_BUFFER_BIT,DEPTH_BUFFER_BIT')

Argument specification

The argument specification (e.g., '2d', '3f', '4sv') at the end of most OpenGL functions names have been removed. For example the new gl.Light function binds the OpenGL functions: glLightf, glLightfv, glLighti, glLightiv.

It's always used the floating point version of the functions, with the highest possible precision.

Color and Vector data

The color and the vector data can be represented by a lua array. A vector can have 2, 3 or 4 values (x, y, z, w), and colors can have 3 or 4 values (red, green, blue, alpha). If there are more 4 value the extra parameters will be ignored.

For example:

v1 = { 0, 0 }
v2 = { 1, 1 }
Yellow = { 1, 1, 0 }

gl.Color(Yellow)
gl.Vertex(v1)
gl.Vertex(v2)

you can also call those:

gl.Color(1, 1, 0)
gl.Vertex(0, 0)
gl.Vertex(1, 1)

Argument types

The OpenGL function parameters that specify the type of another argument, or the size of an array, won't be used. Lua will always use the most precise type of data. The stride value of an array won't be used too. For example:

gl.VertexPointer(vertex_array) binds:

void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);

Where vertex_array is an array of vectors. The size of the array returned by lua_getn function will be used as the size parameter. The type is the most precise possible, and the stride value is always set to zero. You can see an example of this function bellow:

v1 = { -1, -1 }
v2 = { 1, -1 }
v3 = { 1, 1 }
v4 = { -1, 1 }

vertices = { v1, v2, v3, v4 }

gl.VertexPointer(vertices)

Requesting OpenGL information

The functions that request information from OpenGL, will now return the data by the function return value, instead of returning by a parameter. For example:

image = gl.GetTexImage (target, level, format)

For more information about functions names and parameters, see the Function Reference bellow.

Bit Pattern

Functions that expects a number with a bit pattern, will accept a string with the mask numbers. All characters that are different to "0" and "1" will be ignored. For example:

gl.LineStipple (1, "1111000011110000")
gl.LineStipple (1, "1010.0101.1000.1111" )
gl.LineStipple (1, "0000 0000 1111 1111" )

Function Reference

Accum (op, value) -> none

AlphaFunc (func, ref) -> none

AreTexturesResident (texturesArray) -> residences

ArrayElement (i) -> none

Begin (mode) -> none

BindTexture (target, texture) -> none

Bitmap (xorig, yorig, ymove, bitmap) -> none

BlendFunc (sfactor, dfactor) -> none

CallList (list) -> none

CallLists (listArray) -> none

Clear (mask) -> none

ClearAccum (red, green, blue, alpha) -> none

ClearColor (red, green, blue, alpha) -> none

ClearDepth (depth) -> none

ClearIndex (c) -> none

ClearStencil (s) -> none

ClipPlane (plane, equationArray) -> none

Color (red, green, blue [, alpha]) -> none
Color (color) -> none

ColorMask (red, green, blue, alpha) -> none

ColorMaterial (face, mode) -> none

ColorPointer (colorArray) -> none

CopyPixels (x, y, width, height, type) -> none

CopyTexImage (level, internalFormat, border, x, y, width[, height]) -> none

CopyTexSubImage (level, x, y, xoffset, width[, yoffset, height]) -> none

CullFace (mode) -> none

DeleteLists (list, range) -> none

DeleteTextures (texturesArray) -> none

DepthFunc (func) -> none

DepthMask (flag) -> none

DepthRange (zNear, zFar) -> none

Disable (cap) -> none

DisableClientState (array) -> none

DrawArrays (mode, first, count) -> none

DrawBuffer (mode) -> none

DrawElements (mode, indicesArray) -> none

DrawPixels (width, height, format, pixels) -> none

EdgeFlag (flag) -> none

EdgeFlagPointer (flagsArray) -> none

Enable (cap) -> none

EnableClientState (array) -> none

End () -> none

EndList () -> none

EvalCoord (u[, v]) -> none
EvalCoord (coordArray) -> none

EvalMesh (mode, i1, i2[,j1, j2]) -> none

EvalPoint (i[, j]) -> none

FeedbackBuffer (size, type) -> dataArray

Finish () -> none

Flush () -> none

Fog (pname, param) -> none
Fog (pname, paramsArray) -> none

FrontFace (mode) -> none

Frustum (left, right, bottom, top, zNear, zFar) -> none

GenLists (range) -> num

GenTextures (n) -> texturesArray

Get (pname) -> params

GetArray (pname) -> paramsArray

GetConst (pname) -> constant string

GetClipPlane (plane) -> equationArray

GetError () -> error flag

GetLight (light, pname) -> paramsArray

GetMap (target, query) -> vArray

GetMaterial (face, pname) -> paramsArray

GetPixelMap (map) -> valuesArray

GetPointer (pname, n) -> valuesArray

GetPolygonStipple () -> maskArray

GetString (name) -> string

GetTexEnv (pname) -> paramsArray

GetTexGen (coord, pname) -> paramsArray

GetTexImage (target, level, format) -> pixelsArray

GetTexLevelParameter (target, level, pname) -> param

GetTexParameter (target, pname) -> paramsArray

Hint (target, mode) -> none

Index (c) -> none

IndexMask (mask) -> none

IndexPointer (indexArray) -> none

InitNames () -> none

InterleavedArrays (format, dataArray) -> none

IsEnabled (cap) -> true/false

IsList (list) -> true/false

IsTexture (texture) -> true/false

Light (light, pname, param) -> none
Light (light, pname, paramsArray) -> none

LightModel (pname, param) -> none
LightModel (pname, paramsArray) -> none

LineStipple (factor, pattern) -> none

LineWidth (width) -> none

ListBase (base) -> none

LoadIdentity () -> none

LoadMatrix (mArray) -> none

LoadName (name) -> none

LogicOp (opcode) -> none

Map (target, u1, u2, ustride, pointsArray) -> none
Map (target, u1, u2, ustride, v1, v2, vstride, pointsArray) -> none

MapGrid (un, u1, u2[, vn, v1, v2]) -> none

Material (face, pname, param) -> none

MatrixMode (mode) -> none

MultMatrix (mArray) -> none

NewList (list, mode) -> none

Normal (nx, ny, nz) -> none
Normal (nArray) -> none

NormalPointer (normalArray) -> none

Ortho (left, right, bottom, top, zNear, zFar) -> none

PassThrough (token) -> none

PixelMap (map, valuesArray) -> none

PixelStore (pname, param) -> none

PixelTransfer (pname, param) -> none

PixelZoom (xfactor, yfactor) -> none

PointSize (size) -> none

PolygonMode (face, mode) -> none

PolygonOffset (factor, units) -> none

PolygonStipple (maskArray) -> none

PopAttrib () -> none

PopClientAttrib () -> none

PopMatrix () -> none

PopName () -> none

PrioritizeTextures (texturesArray, prioritiesArray) -> none

PushAttrib (mask) -> none

PushClientAttrib (mask) -> none

PushMatrix () -> none

PushName (GLuint name) -> none

RasterPos (x, y[, z, w]) -> none
RasterPos (vArray) -> none

ReadBuffer (mode) -> none

ReadPixels (x, y, width, height, format, pixelsArray) -> none

Rect (x1, y1, x2, y2) -> none
Rect (v1, v2) -> none

RenderMode (mode) -> none

Rotate (angle, x, y, z) -> none

Scale (x, y, z) -> none

Scissor (x, y, width, height) -> none

SelectBuffer (size) -> SelectArray

ShadeModel (mode) -> none

StencilFunc (func, ref, mask) -> none

StencilMask (mask) -> none

StencilOp (fail, zfail, zpass) -> none

TexCoord (s[, t, r, q]) -> none
TexCoord (vArray) -> none

TexCoordPointer(vArray) -> none

TexEnv (pname, param) -> none
TexEnv (pname, paramsArray) -> none

TexGen (coord, pname, param) -> none
TexGen (coord, pname, paramsArray) -> none

TexImage(level, internalformat, format, pixels) -> none

TexParameter (target, pname, param) -> none
TexParameter (target, pname, paramsArray) -> none

TexSubImage (level, format, pixels, xoffset) -> none
TexSubImage (level, format, pixels, xoffset, yoffset) -> none

Translate (x, y, z) -> none

Vertex (x, y, [z, w]) -> none
Vertex (vArray) -> none

VertexPointer (vertexArray) -> none

Viewport (x, y, width, height) -> none

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.