{* UltraStar Deluxe - Karaoke Game
*
* UltraStar Deluxe is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
* $URL$
* $Id$
*}
unit ULuaGl;
interface
{$IFDEF FPC}
{$MODE Delphi}
{$ENDIF}
{$I switches.inc}
uses
SysUtils,
gl,
ULua;
function luaopen_gl (L: Plua_State): Integer; cdecl;
function ULuaGl_StringToEnum(Str: String): GLenum;
{ lua lib functions }
function ULuaGl_Begin(L: Plua_State): Integer; cdecl;
function ULuaGl_BindTexture(L: Plua_State): Integer; cdecl;
function ULuaGl_BlendFunc(L: Plua_State): Integer; cdecl;
function ULuaGl_Clear(L: Plua_State): Integer; cdecl;
function ULuaGl_ClearAccum(L: Plua_State): Integer; cdecl;
function ULuaGl_ClearColor(L: Plua_State): Integer; cdecl;
function ULuaGl_Color(L: Plua_State): Integer; cdecl;
function ULuaGl_CullFace(L: Plua_State): Integer; cdecl;
function ULuaGl_DepthFunc(L: Plua_State): Integer; cdecl;
function ULuaGl_DepthRange(L: Plua_State): Integer; cdecl;
function ULuaGl_Disable(L: Plua_State): Integer; cdecl;
function ULuaGl_DisableClientState(L: Plua_State): Integer; cdecl;
function ULuaGl_DrawBuffer(L: Plua_State): Integer; cdecl;
function ULuaGl_Enable(L: Plua_State): Integer; cdecl;
function ULuaGl_EnableClientState(L: Plua_State): Integer; cdecl;
function ULuaGl_End(L: Plua_State): Integer; cdecl;
function ULuaGl_EndList(L: Plua_State): Integer; cdecl;
function ULuaGl_Finish(L: Plua_State): Integer; cdecl;
function ULuaGl_Flush(L: Plua_State): Integer; cdecl;
function ULuaGl_FrontFace(L: Plua_State): Integer; cdecl;
function ULuaGl_InitNames(L: Plua_State): Integer; cdecl;
function ULuaGl_LoadIdentity(L: Plua_State): Integer; cdecl;
function ULuaGl_LogicOp(L: Plua_State): Integer; cdecl;
function ULuaGl_MatrixMode(L: Plua_State): Integer; cdecl;
function ULuaGl_Ortho(L: Plua_State): Integer; cdecl;
function ULuaGl_PopAttrib(L: Plua_State): Integer; cdecl;
function ULuaGl_PopClientAttrib(L: Plua_State): Integer; cdecl;
function ULuaGl_PopMatrix(L: Plua_State): Integer; cdecl;
function ULuaGl_PopName(L: Plua_State): Integer; cdecl;
function ULuaGl_PushMatrix(L: Plua_State): Integer; cdecl;
function ULuaGl_RasterPos(L: Plua_State): Integer; cdecl;
function ULuaGl_ReadBuffer(L: Plua_State): Integer; cdecl;
function ULuaGl_Rect(L: Plua_State): Integer; cdecl;
function ULuaGl_Rotate(L: Plua_State): Integer; cdecl;
function ULuaGl_Scale(L: Plua_State): Integer; cdecl;
function ULuaGl_ShadeModel(L: Plua_State): Integer; cdecl;
function ULuaGl_TexCoord(L: Plua_State): Integer; cdecl;
function ULuaGl_Translate(L: Plua_State): Integer; cdecl;
function ULuaGl_Vertex(L: Plua_State): Integer; cdecl;
function ULuaGl_Viewport(L: Plua_State): Integer; cdecl;
function ULuaGl_Dummy(L: Plua_State): Integer; cdecl;
const
ULuaGl_Lib_f: array [0..40] of lual_reg = (
(name: 'Begin'; func: ULuaGl_Begin),
(name: 'BindTexture'; func: ULuaGl_BindTexture),
(name: 'BlendFunc'; func: ULuaGl_BlendFunc),
(name: 'Clear'; func: ULuaGl_Clear),
(name: 'ClearAccum'; func: ULuaGl_ClearAccum),
(name: 'ClearColor'; func: ULuaGl_ClearColor),
(name: 'Color'; func: ULuaGl_Color),
(name: 'CullFace'; func: ULuaGl_CullFace),
(name: 'DepthFunc'; func: ULuaGl_DepthFunc),
(name: 'DepthRange'; func: ULuaGl_DepthRange),
(name: 'Disable'; func: ULuaGl_Disable),
(name: 'DisableClientState'; func: ULuaGl_DisableClientState),
(name: 'DrawBuffer'; func: ULuaGl_DrawBuffer),
(name: 'Enable'; func: ULuaGl_Enable),
(name: 'EnableClientState'; func: ULuaGl_EnableClientState),
(name: 'End'; func: ULuaGl_End),
(name: 'EndList'; func: ULuaGl_EndList),
(name: 'Finish'; func: ULuaGl_Finish),
(name: 'Flush'; func: ULuaGl_Flush),
(name: 'FrontFace'; func: ULuaGl_FrontFace),
(name: 'InitNames'; func: ULuaGl_InitNames),
(name: 'LoadIdentity'; func: ULuaGl_LoadIdentity),
(name: 'LogicOp'; func: ULuaGl_LogicOp),
(name: 'MatrixMode'; func: ULuaGl_MatrixMode),
(name: 'Ortho'; func: ULuaGl_Ortho),
(name: 'PopAttrib'; func: ULuaGl_PopAttrib),
(name: 'PopClientAttrib'; func: ULuaGl_PopClientAttrib),
(name: 'PopMatrix'; func: ULuaGl_PopMatrix),
(name: 'PopName'; func: ULuaGl_PopName),
(name: 'PushMatrix'; func: ULuaGl_PushMatrix),
(name: 'RasterPos'; func: ULuaGl_RasterPos),
(name: 'ReadBuffer'; func: ULuaGl_ReadBuffer),
(name: 'Rotate'; func: ULuaGl_Rotate),
(name: 'Rect'; func: ULuaGl_Rect),
(name: 'Scale'; func: ULuaGl_Scale),
(name: 'ShadeModel'; func: ULuaGl_ShadeModel),
(name: 'TexCoord'; func: ULuaGl_TexCoord),
(name: 'Translate'; func: ULuaGl_Translate),
(name: 'Vertex'; func: ULuaGl_Vertex),
(name: 'Viewport'; func: ULuaGl_Viewport),
(name: nil; func: nil)
);
implementation
uses
ULog;
type
TULuaGl_Enums = record
Text: string;
Value: GLenum;
end;
const
ULuaGl_EnumERROR = $fffffffe;
function ULuaGl_Begin(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.Begin''');
glBegin(e);
result := 0; // number of results
end;
function ULuaGl_BindTexture(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.BindTexture''');
glBindTexture(e, lual_checkinteger(L, 2));
result := 0; // number of results
end;
function ULuaGl_BlendFunc(L: Plua_State): Integer; cdecl;
var
e : GLenum;
f : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
f := ULuaGl_StringToEnum(lual_checkstring(L, 2));
if (e = ULuaGl_EnumERROR) or (f = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.BlendFunc''');
glBlendFunc(e, f);
result := 0; // number of results
end;
function ULuaGl_Clear(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.Clear''');
glClear(e);
result := 0; // number of results
end;
function ULuaGl_ClearAccum(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) then
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 4)) or (lua_gettop(L) = 4) then
glClearAccum(lual_checknumber(L, -4),
lual_checknumber(L, -3),
lual_checknumber(L, -2),
lual_checknumber(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.ClearAccum''');
result := 0; // number of results
end;
function ULuaGl_ClearColor(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) then
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 4)) or (lua_gettop(L) = 4) then
glClearColor(lual_checknumber(L, -4),
lual_checknumber(L, -3),
lual_checknumber(L, -2),
lual_checknumber(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.ClearColor''');
result := 0; // number of results
end;
function ULuaGl_Color(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) then
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 3)) or (lua_gettop(L) = 3) then
glColor3d(GLdouble(lual_checknumber(L, -3)),
GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else if (lua_istable(L, 1) and (lua_objlen(L, 1) = 4)) or (lua_gettop(L) = 4) then
glColor4d(GLdouble(lual_checknumber(L, -4)),
GLdouble(lual_checknumber(L, -3)),
GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else
luaL_error(L, 'incorrect argument to function ''gl.Color''');
result := 0; // number of results
end;
function ULuaGl_CullFace(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.CullFace''');
glCullFace(e);
result := 0; // number of results
end;
function ULuaGl_DepthFunc(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.DepthFunc''');
glDepthFunc(e);
result := 0; // number of results
end;
function ULuaGl_DepthRange(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) then
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 2))
or (lua_gettop(L) = 2) then
glDepthRange(lual_checkinteger(L, -2),
lual_checkinteger(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.DepthRange''');
result := 0; // number of results
end;
function ULuaGl_Disable(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.Disable''');
glDisable(e);
result := 0; // number of results
end;
function ULuaGl_DisableClientState(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.DisableClientState''');
glDisableClientState(e);
result := 0; // number of results
end;
function ULuaGl_DrawBuffer(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.DrawBuffer''');
glDrawBuffer(e);
result := 0; // number of results
end;
function ULuaGl_Enable(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.Enable''');
glEnable(e);
result := 0; // number of results
end;
function ULuaGl_EnableClientState(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.EnableClientState''');
glEnableClientState(e);
result := 0; // number of results
end;
function ULuaGl_End(L: Plua_State): Integer; cdecl;
begin
glEnd();
result := 0; // number of results
end;
function ULuaGl_EndList(L: Plua_State): Integer; cdecl;
begin
glEndList();
result := 0; // number of results
end;
function ULuaGl_Finish(L: Plua_State): Integer; cdecl;
begin
glFinish();
result := 0; // number of results
end;
function ULuaGl_Flush(L: Plua_State): Integer; cdecl;
begin
glFlush();
result := 0; // number of results
end;
function ULuaGl_FrontFace(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.FrontFace''');
glFrontFace(e);
result := 0; // number of results
end;
function ULuaGl_InitNames(L: Plua_State): Integer; cdecl;
begin
glInitNames();
result := 0; // number of results
end;
function ULuaGl_LoadIdentity(L: Plua_State): Integer; cdecl;
begin
glLoadIdentity();
result := 0; // number of results
end;
function ULuaGl_LogicOp(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.LogicOp''');
glLogicOp(e);
result := 0; // number of results
end;
function ULuaGl_MatrixMode(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.MatrixMode''');
glMatrixMode(e);
result := 0; // number of results
end;
function ULuaGl_Ortho(L: Plua_State): Integer; cdecl;
begin
if (lua_gettop(L) = 6) then
glOrtho(lual_checkinteger(L, -6),
lual_checkinteger(L, -5),
lual_checkinteger(L, -4),
lual_checkinteger(L, -3),
lual_checkinteger(L, -2),
lual_checkinteger(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.Ortho''');
result := 0; // number of results
end;
function ULuaGl_PopAttrib(L: Plua_State): Integer; cdecl;
begin
glPopAttrib();
result := 0; // number of results
end;
function ULuaGl_PopClientAttrib(L: Plua_State): Integer; cdecl;
begin
glPopClientAttrib();
result := 0; // number of results
end;
function ULuaGl_PopMatrix(L: Plua_State): Integer; cdecl;
begin
glPopMatrix();
result := 0; // number of results
end;
function ULuaGl_PopName(L: Plua_State): Integer; cdecl;
begin
glPopName();
result := 0; // number of results
end;
function ULuaGl_PushMatrix(L: Plua_State): Integer; cdecl;
begin
glPopName();
result := 0; // number of results
end;
function ULuaGl_RasterPos(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) then
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 2)) or (lua_gettop(L) = 2) then
glRasterPos2d(GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else if (lua_istable(L, 1) and (lua_objlen(L, 1) = 3)) or (lua_gettop(L) = 3) then
glRasterPos3d(GLdouble(lual_checknumber(L, -3)),
GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else if (lua_istable(L, 1) and (lua_objlen(L, 1) = 4)) or (lua_gettop(L) = 4) then
glRasterPos4d(GLdouble(lual_checknumber(L, -4)),
GLdouble(lual_checknumber(L, -3)),
GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else
luaL_error(L, 'incorrect argument to function ''gl.RasterPos''');
result := 0; // number of results
end;
function ULuaGl_ReadBuffer(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.ReadBuffer''');
glReadBuffer(e);
result := 0; // number of results
end;
function ULuaGl_Rect(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) and lua_istable(L, 2) then
begin
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
for i := 1 to lua_objlen(L, 2) do
lua_rawgeti(L, 2, i);
end;
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 2))
and (lua_istable(L, 2) and (lua_objlen(L, 2) = 2))
or (lua_gettop(L) = 4) then
glRectD(lual_checknumber(L, -4),
lual_checknumber(L, -3),
lual_checknumber(L, -2),
lual_checknumber(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.Rect''');
result := 0; // number of results
end;
function ULuaGl_Rotate(L: Plua_State): Integer; cdecl;
begin
if (lua_gettop(L) = 3) then
glRotated(lual_checkinteger(L, -4),
lual_checkinteger(L, -3),
lual_checkinteger(L, -2),
lual_checkinteger(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.Rotate''');
result := 0; // number of results
end;
function ULuaGl_Scale(L: Plua_State): Integer; cdecl;
begin
if (lua_gettop(L) = 3) then
glScaled(lual_checkinteger(L, -3),
lual_checkinteger(L, -2),
lual_checkinteger(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.Scale''');
result := 0; // number of results
end;
function ULuaGl_ShadeModel(L: Plua_State): Integer; cdecl;
var
e : GLenum;
begin
e := ULuaGl_StringToEnum(lual_checkstring(L, 1));
if (e = ULuaGl_EnumERROR) then
luaL_error(L, 'incorrect string argument to function ''gl.ShadeModel''');
glShadeModel(e);
result := 0; // number of results
end;
function ULuaGl_TexCoord(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) then
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 1)) or (lua_gettop(L) = 1) then
glTexCoord1d(GLdouble(lual_checknumber(L, -1)))
else if (lua_istable(L, 1) and (lua_objlen(L, 1) = 2)) or (lua_gettop(L) = 2) then
glTexCoord2d(GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else if (lua_istable(L, 1) and (lua_objlen(L, 1) = 3)) or (lua_gettop(L) = 3) then
glTexCoord3d(GLdouble(lual_checknumber(L, -3)),
GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else if (lua_istable(L, 1) and (lua_objlen(L, 1) = 4)) or (lua_gettop(L) = 4) then
glTexCoord4d(GLdouble(lual_checknumber(L, -4)),
GLdouble(lual_checknumber(L, -3)),
GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else
luaL_error(L, 'incorrect argument to function ''gl.TexCoord''');
result := 0; // number of results
end;
function ULuaGl_Translate(L: Plua_State): Integer; cdecl;
begin
if (lua_gettop(L) = 3) then
glTranslated(lual_checkinteger(L, -3),
lual_checkinteger(L, -2),
lual_checkinteger(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.Translate''');
result := 0; // number of results
end;
function ULuaGl_Vertex(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) then
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 2)) or (lua_gettop(L) = 2) then
glVertex2d(GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else if (lua_istable(L, 1) and (lua_objlen(L, 1) = 3)) or (lua_gettop(L) = 3) then
glVertex3d(GLdouble(lual_checknumber(L, -3)),
GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else if (lua_istable(L, 1) and (lua_objlen(L, 1) = 4)) or (lua_gettop(L) = 4) then
glVertex4d(GLdouble(lual_checknumber(L, -4)),
GLdouble(lual_checknumber(L, -3)),
GLdouble(lual_checknumber(L, -2)),
GLdouble(lual_checknumber(L, -1)))
else
luaL_error(L, 'incorrect argument to function ''gl.Vertex''');
result := 0; // number of results
end;
function ULuaGl_Viewport(L: Plua_State): Integer; cdecl;
var
i: Integer;
begin
if lua_istable(L, 1) and lua_istable(L, 2) then
begin
for i := 1 to lua_objlen(L, 1) do
lua_rawgeti(L, 1, i);
for i := 1 to lua_objlen(L, 2) do
lua_rawgeti(L, 2, i);
end;
if (lua_istable(L, 1) and (lua_objlen(L, 1) = 2))
and (lua_istable(L, 2) and (lua_objlen(L, 2) = 2))
or (lua_gettop(L) = 4) then
glViewport(lual_checkinteger(L, -4),
lual_checkinteger(L, -3),
lual_checkinteger(L, -2),
lual_checkinteger(L, -1))
else
luaL_error(L, 'incorrect argument to function ''gl.Viewport''');
result := 0; // number of results
end;
function ULuaGl_Dummy(L: Plua_State): Integer; cdecl;
begin
result := 0; // number of results
end;
function luaopen_gl (L: Plua_State): Integer; cdecl;
begin
luaL_register(L, 'gl', @ULuaGl_Lib_f[0]);
result := 1;
end;
(*
glAccum: procedure(op: GLenum; value: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glAlphaFunc: procedure(func: GLenum; ref: GLclampf); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glAreTexturesResident: function (n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glArrayElement: procedure(i: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glBitmap: procedure (width, height: GLsizei; xorig, yorig: GLfloat; xmove, ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCallList: procedure(list: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCallLists: procedure(n: GLsizei; atype: GLenum; const lists: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClearDepth: procedure(depth: GLclampd); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClearIndex: procedure(c: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClearStencil: procedure(s: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClipPlane: procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColorMask: procedure(red, green, blue, alpha: GLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColorMaterial: procedure(face, mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColorPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyPixels: procedure(x, y: GLint; width, height: GLsizei; atype: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyTexImage1D: procedure (target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width: GLsizei; border: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyTexImage2D: procedure(target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width, height: GLsizei; border: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyTexSubImage1D: procedure(target: GLenum; level, xoffset, x, y: GLint; width: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyTexSubImage2D: procedure(target: GLenum; level, xoffset, yoffset, x, y: GLint; width, height: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDeleteLists: procedure(list: GLuint; range: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDeleteTextures: procedure(n: GLsizei; const textures: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDepthMask: procedure(flag: GLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDrawArrays: procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDrawElements: procedure(mode: GLenum; count: GLsizei; atype: GLenum; const indices: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDrawPixels: procedure(width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEdgeFlag: procedure(flag: GLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEdgeFlagPointer: procedure(stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEdgeFlagv: procedure(const flag: PGLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord1d: procedure(u: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord1dv: procedure(const u: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord1f: procedure(u: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord1fv: procedure(const u: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord2d: procedure(u, v: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord2dv: procedure(const u: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord2f: procedure(u, v: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord2fv: procedure(const u: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalMesh1: procedure(mode: GLenum; i1, i2: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalMesh2: procedure(mode: GLenum; i1, i2, j1, j2: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalPoint1: procedure(i: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalPoint2: procedure(i, j: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFeedbackBuffer: procedure(size: GLsizei; atype: GLenum; buffer: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFogf: procedure(pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFogfv: procedure(pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFogi: procedure(pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFogiv: procedure(pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFrustum: procedure(left, right, bottom, top, zNear, zFar: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGenLists: function(range: GLsizei): GLuint; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGenTextures: procedure(n: GLsizei; textures: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetBooleanv: procedure(pname: GLenum; params: PGLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetClipPlane: procedure(plane: GLenum; equation: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetDoublev: procedure(pname: GLenum; params: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
// glGetError: function: GLenum; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetFloatv: procedure(pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetIntegerv: procedure(pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetLightfv: procedure(light, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetLightiv: procedure(light, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMapdv: procedure(target, query: GLenum; v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMapfv: procedure(target, query: GLenum; v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMapiv: procedure(target, query: GLenum; v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMaterialfv: procedure(face, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMaterialiv: procedure(face, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPixelMapfv: procedure(map: GLenum; values: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPixelMapuiv: procedure(map: GLenum; values: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPixelMapusv: procedure(map: GLenum; values: PGLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPointerv: procedure(pname: GLenum; params: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPolygonStipple: procedure(mask: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
/ glGetString: function(name: GLenum): PChar; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexEnvfv: procedure(target, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexEnviv: procedure(target, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexGendv: procedure(coord, pname: GLenum; params: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexGenfv: procedure(coord, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexGeniv: procedure(coord, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexImage: procedure(target: GLenum; level: GLint; format: GLenum; atype: GLenum; pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexLevelParameterfv: procedure(target: GLenum; level: GLint; pname: GLenum; params: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexLevelParameteriv: procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexParameterfv: procedure(target, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexParameteriv: procedure(target, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glHint: procedure(target, mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexMask: procedure(mask: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexd: procedure(c: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexdv: procedure(const c: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexf: procedure(c: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexfv: procedure(const c: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexi: procedure(c: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexiv: procedure(const c: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexs: procedure(c: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexsv: procedure(const c: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexub: procedure(c: GLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexubv: procedure(const c: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glInterleavedArrays: procedure(format: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
/ glIsEnabled: function(cap: GLenum): GLboolean; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIsList: function(list: GLuint): GLboolean; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIsTexture: function(texture: GLuint): GLboolean; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightModelf: procedure(pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightModelfv: procedure(pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightModeli: procedure(pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightModeliv: procedure(pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightf: procedure(light, pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightfv: procedure(light, pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLighti: procedure(light, pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightiv: procedure(light, pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLineStipple: procedure(factor: GLint; pattern: GLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLineWidth: procedure(width: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glListBase: procedure(base: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLoadMatrixd: procedure(const m: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLoadMatrixf: procedure(const m: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLoadName: procedure(name: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMap1d: procedure(target: GLenum; u1, u2: GLdouble; stride, order: GLint; const points: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMap1f: procedure(target: GLenum; u1, u2: GLfloat; stride, order: GLint; const points: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMap2d: procedure(target: GLenum; u1, u2: GLdouble; ustride, uorder: GLint; v1, v2: GLdouble; vstride, vorder: GLint; const points: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMap2f: procedure(target: GLenum; u1, u2: GLfloat; ustride, uorder: GLint; v1, v2: GLfloat; vstride, vorder: GLint; const points: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMapGrid1d: procedure(un: GLint; u1, u2: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMapGrid1f: procedure(un: GLint; u1, u2: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMapGrid2d: procedure(un: GLint; u1, u2: GLdouble; vn: GLint; v1, v2: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMapGrid2f: procedure(un: GLint; u1, u2: GLfloat; vn: GLint; v1, v2: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMaterialf: procedure(face, pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMaterialfv: procedure(face, pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMateriali: procedure(face, pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMaterialiv: procedure(face, pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMultMatrixd: procedure(const m: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMultMatrixf: procedure(const m: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNewList: procedure(list: GLuint; mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3b: procedure(nx, ny, nz: GLbyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3bv: procedure(const v: PGLbyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3d: procedure(nx, ny, nz: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3f: procedure(nx, ny, nz: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3i: procedure(nx, ny, nz: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3s: procedure(nx, ny, nz: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormalPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPassThrough: procedure(token: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelMapfv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelMapuiv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelMapusv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelStoref: procedure(pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelStorei: procedure(pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelTransferf: procedure(pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelTransferi: procedure(pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelZoom: procedure(xfactor, yfactor: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPointSize: procedure(size: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPolygonMode: procedure(face, mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPolygonOffset: procedure(factor, units: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPolygonStipple: procedure(const mask: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPrioritizeTextures: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPushAttrib: procedure(mask: GLbitfield); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPushClientAttrib: procedure(mask: GLbitfield); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPushName: procedure(name: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glReadPixels: procedure(x, y: GLint; width, height: GLsizei; format, atype: GLenum; pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRenderMode: function(mode: GLint): GLint; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glScissor: procedure(x, y: GLint; width, height: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glSelectBuffer: procedure(size: GLsizei; buffer: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glStencilFunc: procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glStencilMask: procedure(mask: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glStencilOp: procedure(fail, zfail, zpass: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoordPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexEnvf: procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexEnvfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexEnvi: procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexEnviv: procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGend: procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGendv: procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGenf: procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGenfv: procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGeni: procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGeniv: procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexImage1D: procedure(target: GLenum; level, internalformat: GLint; width: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexImage2D: procedure(target: GLenum; level, internalformat: GLint; width, height: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexParameterf: procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexParameteri: procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexSubImage1D: procedure(target: GLenum; level, xoffset: GLint; width: GLsizei; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexSubImage2D: procedure(target: GLenum; level, xoffset, yoffset: GLint; width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertexPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
{$IFDEF WINDOWS}
ChoosePixelFormat: function(DC: HDC; p2: PPixelFormatDescriptor): Integer; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
{$ENDIF}
*)
const
ULuaGl_Enum: array [0..579] of TULuaGl_Enums = (
(Text: 'GL_VERSION_1_1'; Value: GL_VERSION_1_1),
(Text: 'GL_ACCUM'; Value: GL_ACCUM),
(Text: 'GL_LOAD'; Value: GL_LOAD),
(Text: 'GL_RETURN'; Value: GL_RETURN),
(Text: 'GL_MULT'; Value: GL_MULT),
(Text: 'GL_ADD'; Value: GL_ADD),
(Text: 'GL_NEVER'; Value: GL_NEVER),
(Text: 'GL_LESS'; Value: GL_LESS),
(Text: 'GL_EQUAL'; Value: GL_EQUAL),
(Text: 'GL_LEQUAL'; Value: GL_LEQUAL),
(Text: 'GL_GREATER'; Value: GL_GREATER),
(Text: 'GL_NOTEQUAL'; Value: GL_NOTEQUAL),
(Text: 'GL_GEQUAL'; Value: GL_GEQUAL),
(Text: 'GL_ALWAYS'; Value: GL_ALWAYS),
(Text: 'GL_CURRENT_BIT'; Value: GL_CURRENT_BIT),
(Text: 'GL_POINT_BIT'; Value: GL_POINT_BIT),
(Text: 'GL_LINE_BIT'; Value: GL_LINE_BIT),
(Text: 'GL_POLYGON_BIT'; Value: GL_POLYGON_BIT),
(Text: 'GL_POLYGON_STIPPLE_BIT'; Value: GL_POLYGON_STIPPLE_BIT),
(Text: 'GL_PIXEL_MODE_BIT'; Value: GL_PIXEL_MODE_BIT),
(Text: 'GL_LIGHTING_BIT'; Value: GL_LIGHTING_BIT),
(Text: 'GL_FOG_BIT'; Value: GL_FOG_BIT),
(Text: 'GL_DEPTH_BUFFER_BIT'; Value: GL_DEPTH_BUFFER_BIT),
(Text: 'GL_ACCUM_BUFFER_BIT'; Value: GL_ACCUM_BUFFER_BIT),
(Text: 'GL_STENCIL_BUFFER_BIT'; Value: GL_STENCIL_BUFFER_BIT),
(Text: 'GL_VIEWPORT_BIT'; Value: GL_VIEWPORT_BIT),
(Text: 'GL_TRANSFORM_BIT'; Value: GL_TRANSFORM_BIT),
(Text: 'GL_ENABLE_BIT'; Value: GL_ENABLE_BIT),
(Text: 'GL_COLOR_BUFFER_BIT'; Value: GL_COLOR_BUFFER_BIT),
(Text: 'GL_HINT_BIT'; Value: GL_HINT_BIT),
(Text: 'GL_EVAL_BIT'; Value: GL_EVAL_BIT),
(Text: 'GL_LIST_BIT'; Value: GL_LIST_BIT),
(Text: 'GL_TEXTURE_BIT'; Value: GL_TEXTURE_BIT),
(Text: 'GL_SCISSOR_BIT'; Value: GL_SCISSOR_BIT),
(Text: 'GL_ALL_ATTRIB_BITS'; Value: GL_ALL_ATTRIB_BITS),
(Text: 'GL_POINTS'; Value: GL_POINTS),
(Text: 'GL_LINES'; Value: GL_LINES),
(Text: 'GL_LINE_LOOP'; Value: GL_LINE_LOOP),
(Text: 'GL_LINE_STRIP'; Value: GL_LINE_STRIP),
(Text: 'GL_TRIANGLES'; Value: GL_TRIANGLES),
(Text: 'GL_TRIANGLE_STRIP'; Value: GL_TRIANGLE_STRIP),
(Text: 'GL_TRIANGLE_FAN'; Value: GL_TRIANGLE_FAN),
(Text: 'GL_QUADS'; Value: GL_QUADS),
(Text: 'GL_QUAD_STRIP'; Value: GL_QUAD_STRIP),
(Text: 'GL_POLYGON'; Value: GL_POLYGON),
(Text: 'GL_ZERO'; Value: GL_ZERO),
(Text: 'GL_ONE'; Value: GL_ONE),
(Text: 'GL_SRC_COLOR'; Value: GL_SRC_COLOR),
(Text: 'GL_ONE_MINUS_SRC_COLOR'; Value: GL_ONE_MINUS_SRC_COLOR),
(Text: 'GL_SRC_ALPHA'; Value: GL_SRC_ALPHA),
(Text: 'GL_ONE_MINUS_SRC_ALPHA'; Value: GL_ONE_MINUS_SRC_ALPHA),
(Text: 'GL_DST_ALPHA'; Value: GL_DST_ALPHA),
(Text: 'GL_ONE_MINUS_DST_ALPHA'; Value: GL_ONE_MINUS_DST_ALPHA),
(Text: 'GL_DST_COLOR'; Value: GL_DST_COLOR),
(Text: 'GL_ONE_MINUS_DST_COLOR'; Value: GL_ONE_MINUS_DST_COLOR),
(Text: 'GL_SRC_ALPHA_SATURATE'; Value: GL_SRC_ALPHA_SATURATE),
(Text: 'GL_TRUE'; Value: GL_TRUE),
(Text: 'GL_FALSE'; Value: GL_FALSE),
(Text: 'GL_CLIP_PLANE0'; Value: GL_CLIP_PLANE0),
(Text: 'GL_CLIP_PLANE1'; Value: GL_CLIP_PLANE1),
(Text: 'GL_CLIP_PLANE2'; Value: GL_CLIP_PLANE2),
(Text: 'GL_CLIP_PLANE3'; Value: GL_CLIP_PLANE3),
(Text: 'GL_CLIP_PLANE4'; Value: GL_CLIP_PLANE4),
(Text: 'GL_CLIP_PLANE5'; Value: GL_CLIP_PLANE5),
(Text: 'GL_BYTE'; Value: GL_BYTE),
(Text: 'GL_UNSIGNED_BYTE'; Value: GL_UNSIGNED_BYTE),
(Text: 'GL_SHORT'; Value: GL_SHORT),
(Text: 'GL_UNSIGNED_SHORT'; Value: GL_UNSIGNED_SHORT),
(Text: 'GL_INT'; Value: GL_INT),
(Text: 'GL_UNSIGNED_INT'; Value: GL_UNSIGNED_INT),
(Text: 'GL_FLOAT'; Value: GL_FLOAT),
(Text: 'GL_2_BYTES'; Value: GL_2_BYTES),
(Text: 'GL_3_BYTES'; Value: GL_3_BYTES),
(Text: 'GL_4_BYTES'; Value: GL_4_BYTES),
(Text: 'GL_DOUBLE'; Value: GL_DOUBLE),
(Text: 'GL_NONE'; Value: GL_NONE),
(Text: 'GL_FRONT_LEFT'; Value: GL_FRONT_LEFT),
(Text: 'GL_FRONT_RIGHT'; Value: GL_FRONT_RIGHT),
(Text: 'GL_BACK_LEFT'; Value: GL_BACK_LEFT),
(Text: 'GL_BACK_RIGHT'; Value: GL_BACK_RIGHT),
(Text: 'GL_FRONT'; Value: GL_FRONT),
(Text: 'GL_BACK'; Value: GL_BACK),
(Text: 'GL_LEFT'; Value: GL_LEFT),
(Text: 'GL_RIGHT'; Value: GL_RIGHT),
(Text: 'GL_FRONT_AND_BACK'; Value: GL_FRONT_AND_BACK),
(Text: 'GL_AUX0'; Value: GL_AUX0),
(Text: 'GL_AUX1'; Value: GL_AUX1),
(Text: 'GL_AUX2'; Value: GL_AUX2),
(Text: 'GL_AUX3'; Value: GL_AUX3),
(Text: 'GL_NO_ERROR'; Value: GL_NO_ERROR),
(Text: 'GL_INVALID_ENUM'; Value: GL_INVALID_ENUM),
(Text: 'GL_INVALID_VALUE'; Value: GL_INVALID_VALUE),
(Text: 'GL_INVALID_OPERATION'; Value: GL_INVALID_OPERATION),
(Text: 'GL_STACK_OVERFLOW'; Value: GL_STACK_OVERFLOW),
(Text: 'GL_STACK_UNDERFLOW'; Value: GL_STACK_UNDERFLOW),
(Text: 'GL_OUT_OF_MEMORY'; Value: GL_OUT_OF_MEMORY),
(Text: 'GL_2D'; Value: GL_2D),
(Text: 'GL_3D'; Value: GL_3D),
(Text: 'GL_3D_COLOR'; Value: GL_3D_COLOR),
(Text: 'GL_3D_COLOR_TEXTURE'; Value: GL_3D_COLOR_TEXTURE),
(Text: 'GL_4D_COLOR_TEXTURE'; Value: GL_4D_COLOR_TEXTURE),
(Text: 'GL_PASS_THROUGH_TOKEN'; Value: GL_PASS_THROUGH_TOKEN),
(Text: 'GL_POINT_TOKEN'; Value: GL_POINT_TOKEN),
(Text: 'GL_LINE_TOKEN'; Value: GL_LINE_TOKEN),
(Text: 'GL_POLYGON_TOKEN'; Value: GL_POLYGON_TOKEN),
(Text: 'GL_BITMAP_TOKEN'; Value: GL_BITMAP_TOKEN),
(Text: 'GL_DRAW_PIXEL_TOKEN'; Value: GL_DRAW_PIXEL_TOKEN),
(Text: 'GL_COPY_PIXEL_TOKEN'; Value: GL_COPY_PIXEL_TOKEN),
(Text: 'GL_LINE_RESET_TOKEN'; Value: GL_LINE_RESET_TOKEN),
(Text: 'GL_EXP'; Value: GL_EXP),
(Text: 'GL_EXP2'; Value: GL_EXP2),
(Text: 'GL_CW'; Value: GL_CW),
(Text: 'GL_CCW'; Value: GL_CCW),
(Text: 'GL_COEFF'; Value: GL_COEFF),
(Text: 'GL_ORDER'; Value: GL_ORDER),
(Text: 'GL_DOMAIN'; Value: GL_DOMAIN),
(Text: 'GL_CURRENT_COLOR'; Value: GL_CURRENT_COLOR),
(Text: 'GL_CURRENT_INDEX'; Value: GL_CURRENT_INDEX),
(Text: 'GL_CURRENT_NORMAL'; Value: GL_CURRENT_NORMAL),
(Text: 'GL_CURRENT_TEXTURE_COORDS'; Value: GL_CURRENT_TEXTURE_COORDS),
(Text: 'GL_CURRENT_RASTER_COLOR'; Value: GL_CURRENT_RASTER_COLOR),
(Text: 'GL_CURRENT_RASTER_INDEX'; Value: GL_CURRENT_RASTER_INDEX),
(Text: 'GL_CURRENT_RASTER_TEXTURE_COORDS'; Value: GL_CURRENT_RASTER_TEXTURE_COORDS),
(Text: 'GL_CURRENT_RASTER_POSITION'; Value: GL_CURRENT_RASTER_POSITION),
(Text: 'GL_CURRENT_RASTER_POSITION_VALID'; Value: GL_CURRENT_RASTER_POSITION_VALID),
(Text: 'GL_CURRENT_RASTER_DISTANCE'; Value: GL_CURRENT_RASTER_DISTANCE),
(Text: 'GL_POINT_SMOOTH'; Value: GL_POINT_SMOOTH),
(Text: 'GL_POINT_SIZE'; Value: GL_POINT_SIZE),
(Text: 'GL_POINT_SIZE_RANGE'; Value: GL_POINT_SIZE_RANGE),
(Text: 'GL_POINT_SIZE_GRANULARITY'; Value: GL_POINT_SIZE_GRANULARITY),
(Text: 'GL_LINE_SMOOTH'; Value: GL_LINE_SMOOTH),
(Text: 'GL_LINE_WIDTH'; Value: GL_LINE_WIDTH),
(Text: 'GL_LINE_WIDTH_RANGE'; Value: GL_LINE_WIDTH_RANGE),
(Text: 'GL_LINE_WIDTH_GRANULARITY'; Value: GL_LINE_WIDTH_GRANULARITY),
(Text: 'GL_LINE_STIPPLE'; Value: GL_LINE_STIPPLE),
(Text: 'GL_LINE_STIPPLE_PATTERN'; Value: GL_LINE_STIPPLE_PATTERN),
(Text: 'GL_LINE_STIPPLE_REPEAT'; Value: GL_LINE_STIPPLE_REPEAT),
(Text: 'GL_LIST_MODE'; Value: GL_LIST_MODE),
(Text: 'GL_MAX_LIST_NESTING'; Value: GL_MAX_LIST_NESTING),
(Text: 'GL_LIST_BASE'; Value: GL_LIST_BASE),
(Text: 'GL_LIST_INDEX'; Value: GL_LIST_INDEX),
(Text: 'GL_POLYGON_MODE'; Value: GL_POLYGON_MODE),
(Text: 'GL_POLYGON_SMOOTH'; Value: GL_POLYGON_SMOOTH),
(Text: 'GL_POLYGON_STIPPLE'; Value: GL_POLYGON_STIPPLE),
(Text: 'GL_EDGE_FLAG'; Value: GL_EDGE_FLAG),
(Text: 'GL_CULL_FACE'; Value: GL_CULL_FACE),
(Text: 'GL_CULL_FACE_MODE'; Value: GL_CULL_FACE_MODE),
(Text: 'GL_FRONT_FACE'; Value: GL_FRONT_FACE),
(Text: 'GL_LIGHTING'; Value: GL_LIGHTING),
(Text: 'GL_LIGHT_MODEL_LOCAL_VIEWER'; Value: GL_LIGHT_MODEL_LOCAL_VIEWER),
(Text: 'GL_LIGHT_MODEL_TWO_SIDE'; Value: GL_LIGHT_MODEL_TWO_SIDE),
(Text: 'GL_LIGHT_MODEL_AMBIENT'; Value: GL_LIGHT_MODEL_AMBIENT),
(Text: 'GL_SHADE_MODEL'; Value: GL_SHADE_MODEL),
(Text: 'GL_COLOR_MATERIAL_FACE'; Value: GL_COLOR_MATERIAL_FACE),
(Text: 'GL_COLOR_MATERIAL_PARAMETER'; Value: GL_COLOR_MATERIAL_PARAMETER),
(Text: 'GL_COLOR_MATERIAL'; Value: GL_COLOR_MATERIAL),
(Text: 'GL_FOG'; Value: GL_FOG),
(Text: 'GL_FOG_INDEX'; Value: GL_FOG_INDEX),
(Text: 'GL_FOG_DENSITY'; Value: GL_FOG_DENSITY),
(Text: 'GL_FOG_START'; Value: GL_FOG_START),
(Text: 'GL_FOG_END'; Value: GL_FOG_END),
(Text: 'GL_FOG_MODE'; Value: GL_FOG_MODE),
(Text: 'GL_FOG_COLOR'; Value: GL_FOG_COLOR),
(Text: 'GL_DEPTH_RANGE'; Value: GL_DEPTH_RANGE),
(Text: 'GL_DEPTH_TEST'; Value: GL_DEPTH_TEST),
(Text: 'GL_DEPTH_WRITEMASK'; Value: GL_DEPTH_WRITEMASK),
(Text: 'GL_DEPTH_CLEAR_VALUE'; Value: GL_DEPTH_CLEAR_VALUE),
(Text: 'GL_DEPTH_FUNC'; Value: GL_DEPTH_FUNC),
(Text: 'GL_ACCUM_CLEAR_VALUE'; Value: GL_ACCUM_CLEAR_VALUE),
(Text: 'GL_STENCIL_TEST'; Value: GL_STENCIL_TEST),
(Text: 'GL_STENCIL_CLEAR_VALUE'; Value: GL_STENCIL_CLEAR_VALUE),
(Text: 'GL_STENCIL_FUNC'; Value: GL_STENCIL_FUNC),
(Text: 'GL_STENCIL_VALUE_MASK'; Value: GL_STENCIL_VALUE_MASK),
(Text: 'GL_STENCIL_FAIL'; Value: GL_STENCIL_FAIL),
(Text: 'GL_STENCIL_PASS_DEPTH_FAIL'; Value: GL_STENCIL_PASS_DEPTH_FAIL),
(Text: 'GL_STENCIL_PASS_DEPTH_PASS'; Value: GL_STENCIL_PASS_DEPTH_PASS),
(Text: 'GL_STENCIL_REF'; Value: GL_STENCIL_REF),
(Text: 'GL_STENCIL_WRITEMASK'; Value: GL_STENCIL_WRITEMASK),
(Text: 'GL_MATRIX_MODE'; Value: GL_MATRIX_MODE),
(Text: 'GL_NORMALIZE'; Value: GL_NORMALIZE),
(Text: 'GL_VIEWPORT'; Value: GL_VIEWPORT),
(Text: 'GL_MODELVIEW_STACK_DEPTH'; Value: GL_MODELVIEW_STACK_DEPTH),
(Text: 'GL_PROJECTION_STACK_DEPTH'; Value: GL_PROJECTION_STACK_DEPTH),
(Text: 'GL_TEXTURE_STACK_DEPTH'; Value: GL_TEXTURE_STACK_DEPTH),
(Text: 'GL_MODELVIEW_MATRIX'; Value: GL_MODELVIEW_MATRIX),
(Text: 'GL_PROJECTION_MATRIX'; Value: GL_PROJECTION_MATRIX),
(Text: 'GL_TEXTURE_MATRIX'; Value: GL_TEXTURE_MATRIX),
(Text: 'GL_ATTRIB_STACK_DEPTH'; Value: GL_ATTRIB_STACK_DEPTH),
(Text: 'GL_CLIENT_ATTRIB_STACK_DEPTH'; Value: GL_CLIENT_ATTRIB_STACK_DEPTH),
(Text: 'GL_ALPHA_TEST'; Value: GL_ALPHA_TEST),
(Text: 'GL_ALPHA_TEST_FUNC'; Value: GL_ALPHA_TEST_FUNC),
(Text: 'GL_ALPHA_TEST_REF'; Value: GL_ALPHA_TEST_REF),
(Text: 'GL_DITHER'; Value: GL_DITHER),
(Text: 'GL_BLEND_DST'; Value: GL_BLEND_DST),
(Text: 'GL_BLEND_SRC'; Value: GL_BLEND_SRC),
(Text: 'GL_BLEND'; Value: GL_BLEND),
(Text: 'GL_LOGIC_OP_MODE'; Value: GL_LOGIC_OP_MODE),
(Text: 'GL_INDEX_LOGIC_OP'; Value: GL_INDEX_LOGIC_OP),
(Text: 'GL_COLOR_LOGIC_OP'; Value: GL_COLOR_LOGIC_OP),
(Text: 'GL_AUX_BUFFERS'; Value: GL_AUX_BUFFERS),
(Text: 'GL_DRAW_BUFFER'; Value: GL_DRAW_BUFFER),
(Text: 'GL_READ_BUFFER'; Value: GL_READ_BUFFER),
(Text: 'GL_SCISSOR_BOX'; Value: GL_SCISSOR_BOX),
(Text: 'GL_SCISSOR_TEST'; Value: GL_SCISSOR_TEST),
(Text: 'GL_INDEX_CLEAR_VALUE'; Value: GL_INDEX_CLEAR_VALUE),
(Text: 'GL_INDEX_WRITEMASK'; Value: GL_INDEX_WRITEMASK),
(Text: 'GL_COLOR_CLEAR_VALUE'; Value: GL_COLOR_CLEAR_VALUE),
(Text: 'GL_COLOR_WRITEMASK'; Value: GL_COLOR_WRITEMASK),
(Text: 'GL_INDEX_MODE'; Value: GL_INDEX_MODE),
(Text: 'GL_RGBA_MODE'; Value: GL_RGBA_MODE),
(Text: 'GL_DOUBLEBUFFER'; Value: GL_DOUBLEBUFFER),
(Text: 'GL_STEREO'; Value: GL_STEREO),
(Text: 'GL_RENDER_MODE'; Value: GL_RENDER_MODE),
(Text: 'GL_PERSPECTIVE_CORRECTION_HINT'; Value: GL_PERSPECTIVE_CORRECTION_HINT),
(Text: 'GL_POINT_SMOOTH_HINT'; Value: GL_POINT_SMOOTH_HINT),
(Text: 'GL_LINE_SMOOTH_HINT'; Value: GL_LINE_SMOOTH_HINT),
(Text: 'GL_POLYGON_SMOOTH_HINT'; Value: GL_POLYGON_SMOOTH_HINT),
(Text: 'GL_FOG_HINT'; Value: GL_FOG_HINT),
(Text: 'GL_TEXTURE_GEN_S'; Value: GL_TEXTURE_GEN_S),
(Text: 'GL_TEXTURE_GEN_T'; Value: GL_TEXTURE_GEN_T),
(Text: 'GL_TEXTURE_GEN_R'; Value: GL_TEXTURE_GEN_R),
(Text: 'GL_TEXTURE_GEN_Q'; Value: GL_TEXTURE_GEN_Q),
(Text: 'GL_PIXEL_MAP_I_TO_I'; Value: GL_PIXEL_MAP_I_TO_I),
(Text: 'GL_PIXEL_MAP_S_TO_S'; Value: GL_PIXEL_MAP_S_TO_S),
(Text: 'GL_PIXEL_MAP_I_TO_R'; Value: GL_PIXEL_MAP_I_TO_R),
(Text: 'GL_PIXEL_MAP_I_TO_G'; Value: GL_PIXEL_MAP_I_TO_G),
(Text: 'GL_PIXEL_MAP_I_TO_B'; Value: GL_PIXEL_MAP_I_TO_B),
(Text: 'GL_PIXEL_MAP_I_TO_A'; Value: GL_PIXEL_MAP_I_TO_A),
(Text: 'GL_PIXEL_MAP_R_TO_R'; Value: GL_PIXEL_MAP_R_TO_R),
(Text: 'GL_PIXEL_MAP_G_TO_G'; Value: GL_PIXEL_MAP_G_TO_G),
(Text: 'GL_PIXEL_MAP_B_TO_B'; Value: GL_PIXEL_MAP_B_TO_B),
(Text: 'GL_PIXEL_MAP_A_TO_A'; Value: GL_PIXEL_MAP_A_TO_A),
(Text: 'GL_PIXEL_MAP_I_TO_I_SIZE'; Value: GL_PIXEL_MAP_I_TO_I_SIZE),
(Text: 'GL_PIXEL_MAP_S_TO_S_SIZE'; Value: GL_PIXEL_MAP_S_TO_S_SIZE),
(Text: 'GL_PIXEL_MAP_I_TO_R_SIZE'; Value: GL_PIXEL_MAP_I_TO_R_SIZE),
(Text: 'GL_PIXEL_MAP_I_TO_G_SIZE'; Value: GL_PIXEL_MAP_I_TO_G_SIZE),
(Text: 'GL_PIXEL_MAP_I_TO_B_SIZE'; Value: GL_PIXEL_MAP_I_TO_B_SIZE),
(Text: 'GL_PIXEL_MAP_I_TO_A_SIZE'; Value: GL_PIXEL_MAP_I_TO_A_SIZE),
(Text: 'GL_PIXEL_MAP_R_TO_R_SIZE'; Value: GL_PIXEL_MAP_R_TO_R_SIZE),
(Text: 'GL_PIXEL_MAP_G_TO_G_SIZE'; Value: GL_PIXEL_MAP_G_TO_G_SIZE),
(Text: 'GL_PIXEL_MAP_B_TO_B_SIZE'; Value: GL_PIXEL_MAP_B_TO_B_SIZE),
(Text: 'GL_PIXEL_MAP_A_TO_A_SIZE'; Value: GL_PIXEL_MAP_A_TO_A_SIZE),
(Text: 'GL_UNPACK_SWAP_BYTES'; Value: GL_UNPACK_SWAP_BYTES),
(Text: 'GL_UNPACK_LSB_FIRST'; Value: GL_UNPACK_LSB_FIRST),
(Text: 'GL_UNPACK_ROW_LENGTH'; Value: GL_UNPACK_ROW_LENGTH),
(Text: 'GL_UNPACK_SKIP_ROWS'; Value: GL_UNPACK_SKIP_ROWS),
(Text: 'GL_UNPACK_SKIP_PIXELS'; Value: GL_UNPACK_SKIP_PIXELS),
(Text: 'GL_UNPACK_ALIGNMENT'; Value: GL_UNPACK_ALIGNMENT),
(Text: 'GL_PACK_SWAP_BYTES'; Value: GL_PACK_SWAP_BYTES),
(Text: 'GL_PACK_LSB_FIRST'; Value: GL_PACK_LSB_FIRST),
(Text: 'GL_PACK_ROW_LENGTH'; Value: GL_PACK_ROW_LENGTH),
(Text: 'GL_PACK_SKIP_ROWS'; Value: GL_PACK_SKIP_ROWS),
(Text: 'GL_PACK_SKIP_PIXELS'; Value: GL_PACK_SKIP_PIXELS),
(Text: 'GL_PACK_ALIGNMENT'; Value: GL_PACK_ALIGNMENT),
(Text: 'GL_MAP_COLOR'; Value: GL_MAP_COLOR),
(Text: 'GL_MAP_STENCIL'; Value: GL_MAP_STENCIL),
(Text: 'GL_INDEX_SHIFT'; Value: GL_INDEX_SHIFT),
(Text: 'GL_INDEX_OFFSET'; Value: GL_INDEX_OFFSET),
(Text: 'GL_RED_SCALE'; Value: GL_RED_SCALE),
(Text: 'GL_RED_BIAS'; Value: GL_RED_BIAS),
(Text: 'GL_ZOOM_X'; Value: GL_ZOOM_X),
(Text: 'GL_ZOOM_Y'; Value: GL_ZOOM_Y),
(Text: 'GL_GREEN_SCALE'; Value: GL_GREEN_SCALE),
(Text: 'GL_GREEN_BIAS'; Value: GL_GREEN_BIAS),
(Text: 'GL_BLUE_SCALE'; Value: GL_BLUE_SCALE),
(Text: 'GL_BLUE_BIAS'; Value: GL_BLUE_BIAS),
(Text: 'GL_ALPHA_SCALE'; Value: GL_ALPHA_SCALE),
(Text: 'GL_ALPHA_BIAS'; Value: GL_ALPHA_BIAS),
(Text: 'GL_DEPTH_SCALE'; Value: GL_DEPTH_SCALE),
(Text: 'GL_DEPTH_BIAS'; Value: GL_DEPTH_BIAS),
(Text: 'GL_MAX_EVAL_ORDER'; Value: GL_MAX_EVAL_ORDER),
(Text: 'GL_MAX_LIGHTS'; Value: GL_MAX_LIGHTS),
(Text: 'GL_MAX_CLIP_PLANES'; Value: GL_MAX_CLIP_PLANES),
(Text: 'GL_MAX_TEXTURE_SIZE'; Value: GL_MAX_TEXTURE_SIZE),
(Text: 'GL_MAX_PIXEL_MAP_TABLE'; Value: GL_MAX_PIXEL_MAP_TABLE),
(Text: 'GL_MAX_ATTRIB_STACK_DEPTH'; Value: GL_MAX_ATTRIB_STACK_DEPTH),
(Text: 'GL_MAX_MODELVIEW_STACK_DEPTH'; Value: GL_MAX_MODELVIEW_STACK_DEPTH),
(Text: 'GL_MAX_NAME_STACK_DEPTH'; Value: GL_MAX_NAME_STACK_DEPTH),
(Text: 'GL_MAX_PROJECTION_STACK_DEPTH'; Value: GL_MAX_PROJECTION_STACK_DEPTH),
(Text: 'GL_MAX_TEXTURE_STACK_DEPTH'; Value: GL_MAX_TEXTURE_STACK_DEPTH),
(Text: 'GL_MAX_VIEWPORT_DIMS'; Value: GL_MAX_VIEWPORT_DIMS),
(Text: 'GL_MAX_CLIENT_ATTRIB_STACK_DEPTH'; Value: GL_MAX_CLIENT_ATTRIB_STACK_DEPTH),
(Text: 'GL_SUBPIXEL_BITS'; Value: GL_SUBPIXEL_BITS),
(Text: 'GL_INDEX_BITS'; Value: GL_INDEX_BITS),
(Text: 'GL_RED_BITS'; Value: GL_RED_BITS),
(Text: 'GL_GREEN_BITS'; Value: GL_GREEN_BITS),
(Text: 'GL_BLUE_BITS'; Value: GL_BLUE_BITS),
(Text: 'GL_ALPHA_BITS'; Value: GL_ALPHA_BITS),
(Text: 'GL_DEPTH_BITS'; Value: GL_DEPTH_BITS),
(Text: 'GL_STENCIL_BITS'; Value: GL_STENCIL_BITS),
(Text: 'GL_ACCUM_RED_BITS'; Value: GL_ACCUM_RED_BITS),
(Text: 'GL_ACCUM_GREEN_BITS'; Value: GL_ACCUM_GREEN_BITS),
(Text: 'GL_ACCUM_BLUE_BITS'; Value: GL_ACCUM_BLUE_BITS),
(Text: 'GL_ACCUM_ALPHA_BITS'; Value: GL_ACCUM_ALPHA_BITS),
(Text: 'GL_NAME_STACK_DEPTH'; Value: GL_NAME_STACK_DEPTH),
(Text: 'GL_AUTO_NORMAL'; Value: GL_AUTO_NORMAL),
(Text: 'GL_MAP1_COLOR_4'; Value: GL_MAP1_COLOR_4),
(Text: 'GL_MAP1_INDEX'; Value: GL_MAP1_INDEX),
(Text: 'GL_MAP1_NORMAL'; Value: GL_MAP1_NORMAL),
(Text: 'GL_MAP1_TEXTURE_COORD_1'; Value: GL_MAP1_TEXTURE_COORD_1),
(Text: 'GL_MAP1_TEXTURE_COORD_2'; Value: GL_MAP1_TEXTURE_COORD_2),
(Text: 'GL_MAP1_TEXTURE_COORD_3'; Value: GL_MAP1_TEXTURE_COORD_3),
(Text: 'GL_MAP1_TEXTURE_COORD_4'; Value: GL_MAP1_TEXTURE_COORD_4),
(Text: 'GL_MAP1_VERTEX_3'; Value: GL_MAP1_VERTEX_3),
(Text: 'GL_MAP1_VERTEX_4'; Value: GL_MAP1_VERTEX_4),
(Text: 'GL_MAP2_COLOR_4'; Value: GL_MAP2_COLOR_4),
(Text: 'GL_MAP2_INDEX'; Value: GL_MAP2_INDEX),
(Text: 'GL_MAP2_NORMAL'; Value: GL_MAP2_NORMAL),
(Text: 'GL_MAP2_TEXTURE_COORD_1'; Value: GL_MAP2_TEXTURE_COORD_1),
(Text: 'GL_MAP2_TEXTURE_COORD_2'; Value: GL_MAP2_TEXTURE_COORD_2),
(Text: 'GL_MAP2_TEXTURE_COORD_3'; Value: GL_MAP2_TEXTURE_COORD_3),
(Text: 'GL_MAP2_TEXTURE_COORD_4'; Value: GL_MAP2_TEXTURE_COORD_4),
(Text: 'GL_MAP2_VERTEX_3'; Value: GL_MAP2_VERTEX_3),
(Text: 'GL_MAP2_VERTEX_4'; Value: GL_MAP2_VERTEX_4),
(Text: 'GL_MAP1_GRID_DOMAIN'; Value: GL_MAP1_GRID_DOMAIN),
(Text: 'GL_MAP1_GRID_SEGMENTS'; Value: GL_MAP1_GRID_SEGMENTS),
(Text: 'GL_MAP2_GRID_DOMAIN'; Value: GL_MAP2_GRID_DOMAIN),
(Text: 'GL_MAP2_GRID_SEGMENTS'; Value: GL_MAP2_GRID_SEGMENTS),
(Text: 'GL_TEXTURE_1D'; Value: GL_TEXTURE_1D),
(Text: 'GL_TEXTURE_2D'; Value: GL_TEXTURE_2D),
(Text: 'GL_FEEDBACK_BUFFER_POINTER'; Value: GL_FEEDBACK_BUFFER_POINTER),
(Text: 'GL_FEEDBACK_BUFFER_SIZE'; Value: GL_FEEDBACK_BUFFER_SIZE),
(Text: 'GL_FEEDBACK_BUFFER_TYPE'; Value: GL_FEEDBACK_BUFFER_TYPE),
(Text: 'GL_SELECTION_BUFFER_POINTER'; Value: GL_SELECTION_BUFFER_POINTER),
(Text: 'GL_SELECTION_BUFFER_SIZE'; Value: GL_SELECTION_BUFFER_SIZE),
(Text: 'GL_TEXTURE_WIDTH'; Value: GL_TEXTURE_WIDTH),
(Text: 'GL_TEXTURE_HEIGHT'; Value: GL_TEXTURE_HEIGHT),
(Text: 'GL_TEXTURE_INTERNAL_FORMAT'; Value: GL_TEXTURE_INTERNAL_FORMAT),
(Text: 'GL_TEXTURE_BORDER_COLOR'; Value: GL_TEXTURE_BORDER_COLOR),
(Text: 'GL_TEXTURE_BORDER'; Value: GL_TEXTURE_BORDER),
(Text: 'GL_DONT_CARE'; Value: GL_DONT_CARE),
(Text: 'GL_FASTEST'; Value: GL_FASTEST),
(Text: 'GL_NICEST'; Value: GL_NICEST),
(Text: 'GL_LIGHT0'; Value: GL_LIGHT0),
(Text: 'GL_LIGHT1'; Value: GL_LIGHT1),
(Text: 'GL_LIGHT2'; Value: GL_LIGHT2),
(Text: 'GL_LIGHT3'; Value: GL_LIGHT3),
(Text: 'GL_LIGHT4'; Value: GL_LIGHT4),
(Text: 'GL_LIGHT5'; Value: GL_LIGHT5),
(Text: 'GL_LIGHT6'; Value: GL_LIGHT6),
(Text: 'GL_LIGHT7'; Value: GL_LIGHT7),
(Text: 'GL_AMBIENT'; Value: GL_AMBIENT),
(Text: 'GL_DIFFUSE'; Value: GL_DIFFUSE),
(Text: 'GL_SPECULAR'; Value: GL_SPECULAR),
(Text: 'GL_POSITION'; Value: GL_POSITION),
(Text: 'GL_SPOT_DIRECTION'; Value: GL_SPOT_DIRECTION),
(Text: 'GL_SPOT_EXPONENT'; Value: GL_SPOT_EXPONENT),
(Text: 'GL_SPOT_CUTOFF'; Value: GL_SPOT_CUTOFF),
(Text: 'GL_CONSTANT_ATTENUATION'; Value: GL_CONSTANT_ATTENUATION),
(Text: 'GL_LINEAR_ATTENUATION'; Value: GL_LINEAR_ATTENUATION),
(Text: 'GL_QUADRATIC_ATTENUATION'; Value: GL_QUADRATIC_ATTENUATION),
(Text: 'GL_COMPILE'; Value: GL_COMPILE),
(Text: 'GL_COMPILE_AND_EXECUTE'; Value: GL_COMPILE_AND_EXECUTE),
(Text: 'GL_CLEAR'; Value: GL_CLEAR),
(Text: 'GL_AND'; Value: GL_AND),
(Text: 'GL_AND_REVERSE'; Value: GL_AND_REVERSE),
(Text: 'GL_COPY'; Value: GL_COPY),
(Text: 'GL_AND_INVERTED'; Value: GL_AND_INVERTED),
(Text: 'GL_NOOP'; Value: GL_NOOP),
(Text: 'GL_XOR'; Value: GL_XOR),
(Text: 'GL_OR'; Value: GL_OR),
(Text: 'GL_NOR'; Value: GL_NOR),
(Text: 'GL_EQUIV'; Value: GL_EQUIV),
(Text: 'GL_INVERT'; Value: GL_INVERT),
(Text: 'GL_OR_REVERSE'; Value: GL_OR_REVERSE),
(Text: 'GL_COPY_INVERTED'; Value: GL_COPY_INVERTED),
(Text: 'GL_OR_INVERTED'; Value: GL_OR_INVERTED),
(Text: 'GL_NAND'; Value: GL_NAND),
(Text: 'GL_SET'; Value: GL_SET),
(Text: 'GL_EMISSION'; Value: GL_EMISSION),
(Text: 'GL_SHININESS'; Value: GL_SHININESS),
(Text: 'GL_AMBIENT_AND_DIFFUSE'; Value: GL_AMBIENT_AND_DIFFUSE),
(Text: 'GL_COLOR_INDEXES'; Value: GL_COLOR_INDEXES),
(Text: 'GL_MODELVIEW'; Value: GL_MODELVIEW),
(Text: 'GL_PROJECTION'; Value: GL_PROJECTION),
(Text: 'GL_TEXTURE'; Value: GL_TEXTURE),
(Text: 'GL_COLOR'; Value: GL_COLOR),
(Text: 'GL_DEPTH'; Value: GL_DEPTH),
(Text: 'GL_STENCIL'; Value: GL_STENCIL),
(Text: 'GL_COLOR_INDEX'; Value: GL_COLOR_INDEX),
(Text: 'GL_STENCIL_INDEX'; Value: GL_STENCIL_INDEX),
(Text: 'GL_DEPTH_COMPONENT'; Value: GL_DEPTH_COMPONENT),
(Text: 'GL_RED'; Value: GL_RED),
(Text: 'GL_GREEN'; Value: GL_GREEN),
(Text: 'GL_BLUE'; Value: GL_BLUE),
(Text: 'GL_ALPHA'; Value: GL_ALPHA),
(Text: 'GL_RGB'; Value: GL_RGB),
(Text: 'GL_RGBA'; Value: GL_RGBA),
(Text: 'GL_LUMINANCE'; Value: GL_LUMINANCE),
(Text: 'GL_LUMINANCE_ALPHA'; Value: GL_LUMINANCE_ALPHA),
(Text: 'GL_BITMAP'; Value: GL_BITMAP),
(Text: 'GL_POINT'; Value: GL_POINT),
(Text: 'GL_LINE'; Value: GL_LINE),
(Text: 'GL_FILL'; Value: GL_FILL),
(Text: 'GL_RENDER'; Value: GL_RENDER),
(Text: 'GL_FEEDBACK'; Value: GL_FEEDBACK),
(Text: 'GL_SELECT'; Value: GL_SELECT),
(Text: 'GL_FLAT'; Value: GL_FLAT),
(Text: 'GL_SMOOTH'; Value: GL_SMOOTH),
(Text: 'GL_KEEP'; Value: GL_KEEP),
(Text: 'GL_REPLACE'; Value: GL_REPLACE),
(Text: 'GL_INCR'; Value: GL_INCR),
(Text: 'GL_DECR'; Value: GL_DECR),
(Text: 'GL_VENDOR'; Value: GL_VENDOR),
(Text: 'GL_RENDERER'; Value: GL_RENDERER),
(Text: 'GL_VERSION'; Value: GL_VERSION),
(Text: 'GL_EXTENSIONS'; Value: GL_EXTENSIONS),
(Text: 'GL_S'; Value: GL_S),
(Text: 'GL_T'; Value: GL_T),
(Text: 'GL_R'; Value: GL_R),
(Text: 'GL_Q'; Value: GL_Q),
(Text: 'GL_MODULATE'; Value: GL_MODULATE),
(Text: 'GL_DECAL'; Value: GL_DECAL),
(Text: 'GL_TEXTURE_ENV_MODE'; Value: GL_TEXTURE_ENV_MODE),
(Text: 'GL_TEXTURE_ENV_COLOR'; Value: GL_TEXTURE_ENV_COLOR),
(Text: 'GL_TEXTURE_ENV'; Value: GL_TEXTURE_ENV),
(Text: 'GL_EYE_LINEAR'; Value: GL_EYE_LINEAR),
(Text: 'GL_OBJECT_LINEAR'; Value: GL_OBJECT_LINEAR),
(Text: 'GL_SPHERE_MAP'; Value: GL_SPHERE_MAP),
(Text: 'GL_TEXTURE_GEN_MODE'; Value: GL_TEXTURE_GEN_MODE),
(Text: 'GL_OBJECT_PLANE'; Value: GL_OBJECT_PLANE),
(Text: 'GL_EYE_PLANE'; Value: GL_EYE_PLANE),
(Text: 'GL_NEAREST'; Value: GL_NEAREST),
(Text: 'GL_LINEAR'; Value: GL_LINEAR),
(Text: 'GL_NEAREST_MIPMAP_NEAREST'; Value: GL_NEAREST_MIPMAP_NEAREST),
(Text: 'GL_LINEAR_MIPMAP_NEAREST'; Value: GL_LINEAR_MIPMAP_NEAREST),
(Text: 'GL_NEAREST_MIPMAP_LINEAR'; Value: GL_NEAREST_MIPMAP_LINEAR),
(Text: 'GL_LINEAR_MIPMAP_LINEAR'; Value: GL_LINEAR_MIPMAP_LINEAR),
(Text: 'GL_TEXTURE_MAG_FILTER'; Value: GL_TEXTURE_MAG_FILTER),
(Text: 'GL_TEXTURE_MIN_FILTER'; Value: GL_TEXTURE_MIN_FILTER),
(Text: 'GL_TEXTURE_WRAP_S'; Value: GL_TEXTURE_WRAP_S),
(Text: 'GL_TEXTURE_WRAP_T'; Value: GL_TEXTURE_WRAP_T),
(Text: 'GL_CLAMP'; Value: GL_CLAMP),
(Text: 'GL_REPEAT'; Value: GL_REPEAT),
(Text: 'GL_CLIENT_PIXEL_STORE_BIT'; Value: GL_CLIENT_PIXEL_STORE_BIT),
(Text: 'GL_CLIENT_VERTEX_ARRAY_BIT'; Value: GL_CLIENT_VERTEX_ARRAY_BIT),
(Text: 'GL_CLIENT_ALL_ATTRIB_BITS'; Value: GL_CLIENT_ALL_ATTRIB_BITS),
(Text: 'GL_POLYGON_OFFSET_FACTOR'; Value: GL_POLYGON_OFFSET_FACTOR),
(Text: 'GL_POLYGON_OFFSET_UNITS'; Value: GL_POLYGON_OFFSET_UNITS),
(Text: 'GL_POLYGON_OFFSET_POINT'; Value: GL_POLYGON_OFFSET_POINT),
(Text: 'GL_POLYGON_OFFSET_LINE'; Value: GL_POLYGON_OFFSET_LINE),
(Text: 'GL_POLYGON_OFFSET_FILL'; Value: GL_POLYGON_OFFSET_FILL),
(Text: 'GL_ALPHA4'; Value: GL_ALPHA4),
(Text: 'GL_ALPHA8'; Value: GL_ALPHA8),
(Text: 'GL_ALPHA12'; Value: GL_ALPHA12),
(Text: 'GL_ALPHA16'; Value: GL_ALPHA16),
(Text: 'GL_LUMINANCE4'; Value: GL_LUMINANCE4),
(Text: 'GL_LUMINANCE8'; Value: GL_LUMINANCE8),
(Text: 'GL_LUMINANCE12'; Value: GL_LUMINANCE12),
(Text: 'GL_LUMINANCE16'; Value: GL_LUMINANCE16),
(Text: 'GL_LUMINANCE4_ALPHA4'; Value: GL_LUMINANCE4_ALPHA4),
(Text: 'GL_LUMINANCE6_ALPHA2'; Value: GL_LUMINANCE6_ALPHA2),
(Text: 'GL_LUMINANCE8_ALPHA8'; Value: GL_LUMINANCE8_ALPHA8),
(Text: 'GL_LUMINANCE12_ALPHA4'; Value: GL_LUMINANCE12_ALPHA4),
(Text: 'GL_LUMINANCE12_ALPHA12'; Value: GL_LUMINANCE12_ALPHA12),
(Text: 'GL_LUMINANCE16_ALPHA16'; Value: GL_LUMINANCE16_ALPHA16),
(Text: 'GL_INTENSITY'; Value: GL_INTENSITY),
(Text: 'GL_INTENSITY4'; Value: GL_INTENSITY4),
(Text: 'GL_INTENSITY8'; Value: GL_INTENSITY8),
(Text: 'GL_INTENSITY12'; Value: GL_INTENSITY12),
(Text: 'GL_INTENSITY16'; Value: GL_INTENSITY16),
(Text: 'GL_R3_G3_B2'; Value: GL_R3_G3_B2),
(Text: 'GL_RGB4'; Value: GL_RGB4),
(Text: 'GL_RGB5'; Value: GL_RGB5),
(Text: 'GL_RGB8'; Value: GL_RGB8),
(Text: 'GL_RGB10'; Value: GL_RGB10),
(Text: 'GL_RGB12'; Value: GL_RGB12),
(Text: 'GL_RGB16'; Value: GL_RGB16),
(Text: 'GL_RGBA2'; Value: GL_RGBA2),
(Text: 'GL_RGBA4'; Value: GL_RGBA4),
(Text: 'GL_RGB5_A1'; Value: GL_RGB5_A1),
(Text: 'GL_RGBA8'; Value: GL_RGBA8),
(Text: 'GL_RGB10_A2'; Value: GL_RGB10_A2),
(Text: 'GL_RGBA12'; Value: GL_RGBA12),
(Text: 'GL_RGBA16'; Value: GL_RGBA16),
(Text: 'GL_TEXTURE_RED_SIZE'; Value: GL_TEXTURE_RED_SIZE),
(Text: 'GL_TEXTURE_GREEN_SIZE'; Value: GL_TEXTURE_GREEN_SIZE),
(Text: 'GL_TEXTURE_BLUE_SIZE'; Value: GL_TEXTURE_BLUE_SIZE),
(Text: 'GL_TEXTURE_ALPHA_SIZE'; Value: GL_TEXTURE_ALPHA_SIZE),
(Text: 'GL_TEXTURE_LUMINANCE_SIZE'; Value: GL_TEXTURE_LUMINANCE_SIZE),
(Text: 'GL_TEXTURE_INTENSITY_SIZE'; Value: GL_TEXTURE_INTENSITY_SIZE),
(Text: 'GL_PROXY_TEXTURE_1D'; Value: GL_PROXY_TEXTURE_1D),
(Text: 'GL_PROXY_TEXTURE_2D'; Value: GL_PROXY_TEXTURE_2D),
(Text: 'GL_TEXTURE_PRIORITY'; Value: GL_TEXTURE_PRIORITY),
(Text: 'GL_TEXTURE_RESIDENT'; Value: GL_TEXTURE_RESIDENT),
(Text: 'GL_TEXTURE_BINDING_1D'; Value: GL_TEXTURE_BINDING_1D),
(Text: 'GL_TEXTURE_BINDING_2D'; Value: GL_TEXTURE_BINDING_2D),
(Text: 'GL_VERTEX_ARRAY'; Value: GL_VERTEX_ARRAY),
(Text: 'GL_NORMAL_ARRAY'; Value: GL_NORMAL_ARRAY),
(Text: 'GL_COLOR_ARRAY'; Value: GL_COLOR_ARRAY),
(Text: 'GL_INDEX_ARRAY'; Value: GL_INDEX_ARRAY),
(Text: 'GL_TEXTURE_COORD_ARRAY'; Value: GL_TEXTURE_COORD_ARRAY),
(Text: 'GL_EDGE_FLAG_ARRAY'; Value: GL_EDGE_FLAG_ARRAY),
(Text: 'GL_VERTEX_ARRAY_SIZE'; Value: GL_VERTEX_ARRAY_SIZE),
(Text: 'GL_VERTEX_ARRAY_TYPE'; Value: GL_VERTEX_ARRAY_TYPE),
(Text: 'GL_VERTEX_ARRAY_STRIDE'; Value: GL_VERTEX_ARRAY_STRIDE),
(Text: 'GL_NORMAL_ARRAY_TYPE'; Value: GL_NORMAL_ARRAY_TYPE),
(Text: 'GL_NORMAL_ARRAY_STRIDE'; Value: GL_NORMAL_ARRAY_STRIDE),
(Text: 'GL_COLOR_ARRAY_SIZE'; Value: GL_COLOR_ARRAY_SIZE),
(Text: 'GL_COLOR_ARRAY_TYPE'; Value: GL_COLOR_ARRAY_TYPE),
(Text: 'GL_COLOR_ARRAY_STRIDE'; Value: GL_COLOR_ARRAY_STRIDE),
(Text: 'GL_INDEX_ARRAY_TYPE'; Value: GL_INDEX_ARRAY_TYPE),
(Text: 'GL_INDEX_ARRAY_STRIDE'; Value: GL_INDEX_ARRAY_STRIDE),
(Text: 'GL_TEXTURE_COORD_ARRAY_SIZE'; Value: GL_TEXTURE_COORD_ARRAY_SIZE),
(Text: 'GL_TEXTURE_COORD_ARRAY_TYPE'; Value: GL_TEXTURE_COORD_ARRAY_TYPE),
(Text: 'GL_TEXTURE_COORD_ARRAY_STRIDE'; Value: GL_TEXTURE_COORD_ARRAY_STRIDE),
(Text: 'GL_EDGE_FLAG_ARRAY_STRIDE'; Value: GL_EDGE_FLAG_ARRAY_STRIDE),
(Text: 'GL_VERTEX_ARRAY_POINTER'; Value: GL_VERTEX_ARRAY_POINTER),
(Text: 'GL_NORMAL_ARRAY_POINTER'; Value: GL_NORMAL_ARRAY_POINTER),
(Text: 'GL_COLOR_ARRAY_POINTER'; Value: GL_COLOR_ARRAY_POINTER),
(Text: 'GL_INDEX_ARRAY_POINTER'; Value: GL_INDEX_ARRAY_POINTER),
(Text: 'GL_TEXTURE_COORD_ARRAY_POINTER'; Value: GL_TEXTURE_COORD_ARRAY_POINTER),
(Text: 'GL_EDGE_FLAG_ARRAY_POINTER'; Value: GL_EDGE_FLAG_ARRAY_POINTER),
(Text: 'GL_V2F'; Value: GL_V2F),
(Text: 'GL_V3F'; Value: GL_V3F),
(Text: 'GL_C4UB_V2F'; Value: GL_C4UB_V2F),
(Text: 'GL_C4UB_V3F'; Value: GL_C4UB_V3F),
(Text: 'GL_C3F_V3F'; Value: GL_C3F_V3F),
(Text: 'GL_N3F_V3F'; Value: GL_N3F_V3F),
(Text: 'GL_C4F_N3F_V3F'; Value: GL_C4F_N3F_V3F),
(Text: 'GL_T2F_V3F'; Value: GL_T2F_V3F),
(Text: 'GL_T4F_V4F'; Value: GL_T4F_V4F),
(Text: 'GL_T2F_C4UB_V3F'; Value: GL_T2F_C4UB_V3F),
(Text: 'GL_T2F_C3F_V3F'; Value: GL_T2F_C3F_V3F),
(Text: 'GL_T2F_N3F_V3F'; Value: GL_T2F_N3F_V3F),
(Text: 'GL_T2F_C4F_N3F_V3F'; Value: GL_T2F_C4F_N3F_V3F),
(Text: 'GL_T4F_C4F_N3F_V4F'; Value: GL_T4F_C4F_N3F_V4F),
(Text: 'GL_EXT_vertex_array'; Value: GL_EXT_vertex_array),
(Text: 'GL_WIN_swap_hint'; Value: GL_WIN_swap_hint),
(Text: 'GL_EXT_bgra'; Value: GL_EXT_bgra),
(Text: 'GL_EXT_paletted_texture'; Value: GL_EXT_paletted_texture),
(Text: 'GL_VERTEX_ARRAY_EXT'; Value: GL_VERTEX_ARRAY_EXT),
(Text: 'GL_NORMAL_ARRAY_EXT'; Value: GL_NORMAL_ARRAY_EXT),
(Text: 'GL_COLOR_ARRAY_EXT'; Value: GL_COLOR_ARRAY_EXT),
(Text: 'GL_INDEX_ARRAY_EXT'; Value: GL_INDEX_ARRAY_EXT),
(Text: 'GL_TEXTURE_COORD_ARRAY_EXT'; Value: GL_TEXTURE_COORD_ARRAY_EXT),
(Text: 'GL_EDGE_FLAG_ARRAY_EXT'; Value: GL_EDGE_FLAG_ARRAY_EXT),
(Text: 'GL_VERTEX_ARRAY_SIZE_EXT'; Value: GL_VERTEX_ARRAY_SIZE_EXT),
(Text: 'GL_VERTEX_ARRAY_TYPE_EXT'; Value: GL_VERTEX_ARRAY_TYPE_EXT),
(Text: 'GL_VERTEX_ARRAY_STRIDE_EXT'; Value: GL_VERTEX_ARRAY_STRIDE_EXT),
(Text: 'GL_VERTEX_ARRAY_COUNT_EXT'; Value: GL_VERTEX_ARRAY_COUNT_EXT),
(Text: 'GL_NORMAL_ARRAY_TYPE_EXT'; Value: GL_NORMAL_ARRAY_TYPE_EXT),
(Text: 'GL_NORMAL_ARRAY_STRIDE_EXT'; Value: GL_NORMAL_ARRAY_STRIDE_EXT),
(Text: 'GL_NORMAL_ARRAY_COUNT_EXT'; Value: GL_NORMAL_ARRAY_COUNT_EXT),
(Text: 'GL_COLOR_ARRAY_SIZE_EXT'; Value: GL_COLOR_ARRAY_SIZE_EXT),
(Text: 'GL_COLOR_ARRAY_TYPE_EXT'; Value: GL_COLOR_ARRAY_TYPE_EXT),
(Text: 'GL_COLOR_ARRAY_STRIDE_EXT'; Value: GL_COLOR_ARRAY_STRIDE_EXT),
(Text: 'GL_COLOR_ARRAY_COUNT_EXT'; Value: GL_COLOR_ARRAY_COUNT_EXT),
(Text: 'GL_INDEX_ARRAY_TYPE_EXT'; Value: GL_INDEX_ARRAY_TYPE_EXT),
(Text: 'GL_INDEX_ARRAY_STRIDE_EXT'; Value: GL_INDEX_ARRAY_STRIDE_EXT),
(Text: 'GL_INDEX_ARRAY_COUNT_EXT'; Value: GL_INDEX_ARRAY_COUNT_EXT),
(Text: 'GL_TEXTURE_COORD_ARRAY_SIZE_EXT'; Value: GL_TEXTURE_COORD_ARRAY_SIZE_EXT),
(Text: 'GL_TEXTURE_COORD_ARRAY_TYPE_EXT'; Value: GL_TEXTURE_COORD_ARRAY_TYPE_EXT),
(Text: 'GL_TEXTURE_COORD_ARRAY_STRIDE_EXT'; Value: GL_TEXTURE_COORD_ARRAY_STRIDE_EXT),
(Text: 'GL_TEXTURE_COORD_ARRAY_COUNT_EXT'; Value: GL_TEXTURE_COORD_ARRAY_COUNT_EXT),
(Text: 'GL_EDGE_FLAG_ARRAY_STRIDE_EXT'; Value: GL_EDGE_FLAG_ARRAY_STRIDE_EXT),
(Text: 'GL_EDGE_FLAG_ARRAY_COUNT_EXT'; Value: GL_EDGE_FLAG_ARRAY_COUNT_EXT),
(Text: 'GL_VERTEX_ARRAY_POINTER_EXT'; Value: GL_VERTEX_ARRAY_POINTER_EXT),
(Text: 'GL_NORMAL_ARRAY_POINTER_EXT'; Value: GL_NORMAL_ARRAY_POINTER_EXT),
(Text: 'GL_COLOR_ARRAY_POINTER_EXT'; Value: GL_COLOR_ARRAY_POINTER_EXT),
(Text: 'GL_INDEX_ARRAY_POINTER_EXT'; Value: GL_INDEX_ARRAY_POINTER_EXT),
(Text: 'GL_TEXTURE_COORD_ARRAY_POINTER_EXT'; Value: GL_TEXTURE_COORD_ARRAY_POINTER_EXT),
(Text: 'GL_EDGE_FLAG_ARRAY_POINTER_EXT'; Value: GL_EDGE_FLAG_ARRAY_POINTER_EXT),
(Text: 'GL_DOUBLE_EXT'; Value: GL_DOUBLE_EXT),
(Text: 'GL_BGR_EXT'; Value: GL_BGR_EXT),
(Text: 'GL_BGRA_EXT'; Value: GL_BGRA_EXT),
(Text: 'GL_COLOR_TABLE_FORMAT_EXT'; Value: GL_COLOR_TABLE_FORMAT_EXT),
(Text: 'GL_COLOR_TABLE_WIDTH_EXT'; Value: GL_COLOR_TABLE_WIDTH_EXT),
(Text: 'GL_COLOR_TABLE_RED_SIZE_EXT'; Value: GL_COLOR_TABLE_RED_SIZE_EXT),
(Text: 'GL_COLOR_TABLE_GREEN_SIZE_EXT'; Value: GL_COLOR_TABLE_GREEN_SIZE_EXT),
(Text: 'GL_COLOR_TABLE_BLUE_SIZE_EXT'; Value: GL_COLOR_TABLE_BLUE_SIZE_EXT),
(Text: 'GL_COLOR_TABLE_ALPHA_SIZE_EXT'; Value: GL_COLOR_TABLE_ALPHA_SIZE_EXT),
(Text: 'GL_COLOR_TABLE_LUMINANCE_SIZE_EXT'; Value: GL_COLOR_TABLE_LUMINANCE_SIZE_EXT),
(Text: 'GL_COLOR_TABLE_INTENSITY_SIZE_EXT'; Value: GL_COLOR_TABLE_INTENSITY_SIZE_EXT),
(Text: 'GL_COLOR_INDEX1_EXT'; Value: GL_COLOR_INDEX1_EXT),
(Text: 'GL_COLOR_INDEX2_EXT'; Value: GL_COLOR_INDEX2_EXT),
(Text: 'GL_COLOR_INDEX4_EXT'; Value: GL_COLOR_INDEX4_EXT),
(Text: 'GL_COLOR_INDEX8_EXT'; Value: GL_COLOR_INDEX8_EXT),
(Text: 'GL_COLOR_INDEX12_EXT'; Value: GL_COLOR_INDEX12_EXT),
(Text: 'GL_COLOR_INDEX16_EXT'; Value: GL_COLOR_INDEX16_EXT)
);
function ULuaGl_StringToEnum(Str: String): GLenum;
function GetEnum(const Str: String): GLenum;
var
i : Integer;
begin
for i := 0 to high(ULuaGl_Enum) do
begin
if 0 = AnsiCompareText(Str, ULuaGl_Enum[i].Text) then
begin
Result := ULuaGl_Enum[i].Value;
Exit;
end;
end;
Result := ULuaGl_EnumERROR;
end;
var
i : Integer;
j : Integer;
temp : GLenum;
begin
Result := 0;
j := 1;
for i := 1 to Length(Str) do
begin
if Str[i] = ',' then
begin
temp := GetEnum(Copy(Str, j, i-j));
if temp <> ULuaGl_EnumERROR then
Result := Result or temp;
j := i + 1;
end;
end;
temp := GetEnum(Copy(Str, j, MaxInt));
if (temp = ULuaGl_EnumERROR) then
begin
if Result = 0 then
Result := ULuaGl_EnumERROR;
exit;
end;
Result := Result or temp;
end;
end.