From 17f7bf3d6abb90b469b734640c833223ec39df70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Tue, 7 Jun 2016 21:21:21 +0200 Subject: [PATCH] bug fix #196 OpenGL.pas --- ReleaseGenerators/RebuildStandartModules.pas | 2 +- ReleaseGenerators/sect_Core.nsh | 4 + TestSuite/generics9.pas | 15 + .../TreeConversion/compilation_context.cs | 11 +- .../TreeConversion/syntax_tree_visitor.cs | 4 +- bin/Lib/OpenGL.pas | 3680 +++++++++++++++++ 6 files changed, 3712 insertions(+), 4 deletions(-) create mode 100644 TestSuite/generics9.pas create mode 100644 bin/Lib/OpenGL.pas diff --git a/ReleaseGenerators/RebuildStandartModules.pas b/ReleaseGenerators/RebuildStandartModules.pas index ecd9811a1..38f486462 100644 --- a/ReleaseGenerators/RebuildStandartModules.pas +++ b/ReleaseGenerators/RebuildStandartModules.pas @@ -4,7 +4,7 @@ DrawManField, Events, FilesOperations, GraphABC, GraphABCHelper, IniFile, PointerTools, PointRect, PT4, Robot, RobotField, RobotTaskMaker, RobotZadan, Sockets, Utils, VCL, Timers, PT4Exam, PT4TaskMakerNET, RBDMUtils, - Collections, Arrays, Core, FormsABC, MPI, ClientServer; + Collections, Arrays, Core, FormsABC, MPI, ClientServer, OpenGL; begin writeln(cos(pi)); diff --git a/ReleaseGenerators/sect_Core.nsh b/ReleaseGenerators/sect_Core.nsh index 46c9188f6..c4942cbc6 100644 --- a/ReleaseGenerators/sect_Core.nsh +++ b/ReleaseGenerators/sect_Core.nsh @@ -99,6 +99,7 @@ File ..\bin\Lib\Core.pcu File ..\bin\Lib\MPI.pcu File ..\bin\Lib\ClientServer.pcu + File ..\bin\Lib\OpenGL.pcu File ..\bin\Lib\PABCRtl.dll File ..\bin\Lib\PABCRtl32.dll @@ -143,6 +144,7 @@ ${AddFile} "Core.pcu" ${AddFile} "MPI.pcu" ${AddFile} "ClientServer.pcu" + ${AddFile} "OpenGL.pcu" ${AddFile} "PABCRtl.dll" ${AddFile} "PABCRtl.pdb" Push "Lib\PABCRtl.dll" @@ -188,6 +190,7 @@ File ..\bin\Lib\Core.pas File ..\bin\Lib\MPI.pas File ..\bin\Lib\ClientServer.pas + File ..\bin\Lib\OpenGL.pas File ..\bin\Lib\__RedirectIOMode.vb File ..\bin\Lib\VBSystem.vb @@ -231,6 +234,7 @@ ${AddFile} "Core.pas" ${AddFile} "MPI.pas" ${AddFile} "ClientServer.pas" + ${AddFile} "OpenGL.pas" ${AddFile} "__RedirectIOMode.vb" ${AddFile} "VBSystem.vb" diff --git a/TestSuite/generics9.pas b/TestSuite/generics9.pas new file mode 100644 index 000000000..9a4704a36 --- /dev/null +++ b/TestSuite/generics9.pas @@ -0,0 +1,15 @@ +function f(t1: T): array of T; + where T: System.IComparable; forward; + +function f(t1: T): array of T; +begin + var t2: T; + t2 := t1; + Result := new T[1]; + Result[0] := t1; +end; + +begin + var arr := f(2); + assert(arr[0] = 2); +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/compilation_context.cs b/TreeConverter/TreeConversion/compilation_context.cs index d08b704c6..95663c6e7 100644 --- a/TreeConverter/TreeConversion/compilation_context.cs +++ b/TreeConverter/TreeConversion/compilation_context.cs @@ -3169,18 +3169,21 @@ private bool check_unique_or_predefined(common_function_node fn) { for (int i = 0; i < fn.generic_params.Count; ++i) { + fn.generic_params[i] = compar.generic_params[i] as common_type_node; common_type_node t_fn = fn.generic_params[i] as common_type_node; common_type_node t_compar = compar.generic_params[i] as common_type_node; - t_fn.is_class = t_compar.is_class; + /*t_fn.is_class = t_compar.is_class; t_fn.internal_is_value = t_compar.internal_is_value; t_fn.SetImplementingInterfaces(t_compar.ImplementingInterfaces); (t_fn.Scope as SymbolTable.IInterfaceScope).TopInterfaceScopeArray = (t_compar.Scope as SymbolTable.IInterfaceScope).TopInterfaceScopeArray; - t_fn.SetBaseType(t_compar.base_type); + t_fn.SetBaseType(t_compar.base_type);*/ if (t_compar.has_default_constructor) { generic_parameter_eliminations.add_default_ctor(t_fn); } + SymbolInfo par_sim_info = fn.scope.FindOnlyInScope(fn.generic_params[i].name); + par_sim_info.sym_info = fn.generic_params[i] as common_type_node; //t_fn.generic_function_container = compar; } //конверитируем параметры предописания в параметры описания. @@ -3196,6 +3199,10 @@ private bool check_unique_or_predefined(common_function_node fn) { compar.return_variable.type = compar.return_value_type; } + } + foreach (generic_parameter_eliminations gpe in compar.parameters_eliminations) + { + } compar.generic_params = fn.generic_params; foreach (common_type_node tn in compar.generic_params) diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 01143d5ca..92ea15d22 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -13420,7 +13420,8 @@ public override void visit(SyntaxTree.ref_type _ref_type) context.CurrentScope.Find((_ref_type.pointed_to as SyntaxTree.named_type_reference).names[0].name) == null) { //это указатель на тип который еще не описан - if (!is_direct_type_decl) AddError(new UndefinedNameReference((_ref_type.pointed_to as SyntaxTree.named_type_reference).names[0].name,get_location(_ref_type.pointed_to))); + if (!is_direct_type_decl) + AddError(new UndefinedNameReference((_ref_type.pointed_to as SyntaxTree.named_type_reference).names[0].name,get_location(_ref_type.pointed_to))); return_value(GetWaitedRefType((_ref_type.pointed_to as SyntaxTree.named_type_reference).names[0].name, get_location(_ref_type.pointed_to))); } else @@ -17725,6 +17726,7 @@ internal void LeaveTypeDeclarationsSection() foreach (ref_type_node rtn in WaitedRefTypes.Values) CheckForCircularityInPointers(rtn, rtn.pointed_type,rtn.loc); ProcessRefTypesForCheckPointersTypeForDotNetFramework(); + WaitedRefTypes.Clear(); } internal void ProcessCheckPointersInRecord() diff --git a/bin/Lib/OpenGL.pas b/bin/Lib/OpenGL.pas new file mode 100644 index 000000000..5927ea989 --- /dev/null +++ b/bin/Lib/OpenGL.pas @@ -0,0 +1,3680 @@ +unit OpenGL; + +{$reference 'System.Windows.Forms.dll'} +interface + +uses System, System.Windows.Forms; + +//uses Windows; + +type + THandle = longword; + {$EXTERNALSYM HGLRC} + HGLRC = THandle; + BOOL = longword; + +type + PChar = ^byte; + PWChar = ^char; + BYTEBOOL = boolean; + GLenum = Cardinal; + {$EXTERNALSYM GLenum} + GLboolean = BYTEBOOL; + {$EXTERNALSYM GLboolean} + GLbitfield = Cardinal; + {$EXTERNALSYM GLbitfield} + GLbyte = Shortint; { signed char } + {$EXTERNALSYM GLbyte} + GLshort = SmallInt; + {$EXTERNALSYM GLshort} + GLint = Integer; + {$EXTERNALSYM GLint} + GLsizei = Integer; + {$EXTERNALSYM GLsizei} + GLubyte = Byte; + {$EXTERNALSYM GLubyte} + GLushort = Word; + {$EXTERNALSYM GLushort} + GLuint = Cardinal; + {$EXTERNALSYM GLuint} + GLfloat = Single; + {$EXTERNALSYM GLfloat} + GLclampf = Single; + {$EXTERNALSYM GLclampf} + GLdouble = Double; + {$EXTERNALSYM GLdouble} + GLclampd = Double; + {$EXTERNALSYM GLclampd} + HDC = longword; + HWND = longword; + + PGLBoolean = ^GLBoolean; + PGLByte = ^GLByte; + PGLShort = ^GLShort; + PGLInt = ^GLInt; + PGLSizei = ^GLSizei; + PGLubyte = ^GLubyte; + PGLushort = ^GLushort; + PGLuint = ^GLuint; + PGLclampf = ^GLclampf; + PGLfloat = ^GLFloat; + PGLdouble = ^GLDouble; + PGLclampd = ^GLclampd; + + TGLArrayf4 = array [0..3] of GLFloat; + TGLArrayf3 = array [0..2] of GLFloat; + TGLArrayi4 = array [0..3] of GLint; + {...} + +{*************************************************************} + +PIXELFORMATDESCRIPTOR = record + nSize: Word; + nVersion: Word; + dwFlags: longword; + iPixelType: Byte; + cColorBits: Byte; + cRedBits: Byte; + cRedShift: Byte; + cGreenBits: Byte; + cGreenShift: Byte; + cBlueBits: Byte; + cBlueShift: Byte; + cAlphaBits: Byte; + cAlphaShift: Byte; + cAccumBits: Byte; + cAccumRedBits: Byte; + cAccumGreenBits: Byte; + cAccumBlueBits: Byte; + cAccumAlphaBits: Byte; + cDepthBits: Byte; + cStencilBits: Byte; + cAuxBuffers: Byte; + iLayerType: Byte; + bReserved: Byte; + dwLayerMask: longword; + dwVisibleMask: longword; + dwDamageMask: longword; + end; + +const +{ AttribMask } + GL_CURRENT_BIT = $00000001; + {$EXTERNALSYM GL_CURRENT_BIT} + GL_POINT_BIT = $00000002; + {$EXTERNALSYM GL_POINT_BIT} + GL_LINE_BIT = $00000004; + {$EXTERNALSYM GL_LINE_BIT} + GL_POLYGON_BIT = $00000008; + {$EXTERNALSYM GL_POLYGON_BIT} + GL_POLYGON_STIPPLE_BIT = $00000010; + {$EXTERNALSYM GL_POLYGON_STIPPLE_BIT} + GL_PIXEL_MODE_BIT = $00000020; + {$EXTERNALSYM GL_PIXEL_MODE_BIT} + GL_LIGHTING_BIT = $00000040; + {$EXTERNALSYM GL_LIGHTING_BIT} + GL_FOG_BIT = $00000080; + {$EXTERNALSYM GL_FOG_BIT} + GL_DEPTH_BUFFER_BIT = $00000100; + {$EXTERNALSYM GL_DEPTH_BUFFER_BIT} + GL_ACCUM_BUFFER_BIT = $00000200; + {$EXTERNALSYM GL_ACCUM_BUFFER_BIT} + GL_STENCIL_BUFFER_BIT = $00000400; + {$EXTERNALSYM GL_STENCIL_BUFFER_BIT} + GL_VIEWPORT_BIT = $00000800; + {$EXTERNALSYM GL_VIEWPORT_BIT} + GL_TRANSFORM_BIT = $00001000; + {$EXTERNALSYM GL_TRANSFORM_BIT} + GL_ENABLE_BIT = $00002000; + {$EXTERNALSYM GL_ENABLE_BIT} + GL_COLOR_BUFFER_BIT = $00004000; + {$EXTERNALSYM GL_COLOR_BUFFER_BIT} + GL_HINT_BIT = $00008000; + {$EXTERNALSYM GL_HINT_BIT} + GL_EVAL_BIT = $00010000; + {$EXTERNALSYM GL_EVAL_BIT} + GL_LIST_BIT = $00020000; + {$EXTERNALSYM GL_LIST_BIT} + GL_TEXTURE_BIT = $00040000; + {$EXTERNALSYM GL_TEXTURE_BIT} + GL_SCISSOR_BIT = $00080000; + {$EXTERNALSYM GL_SCISSOR_BIT} + GL_ALL_ATTRIB_BITS = $000fffff; + {$EXTERNALSYM GL_ALL_ATTRIB_BITS} + +{ ClearBufferMask } +{ GL_COLOR_BUFFER_BIT } +{ GL_ACCUM_BUFFER_BIT } +{ GL_STENCIL_BUFFER_BIT } +{ GL_DEPTH_BUFFER_BIT } + +{ Boolean } + GL_FALSE = false; + {$EXTERNALSYM GL_FALSE} + GL_TRUE = true; + {$EXTERNALSYM GL_TRUE} + +{ BeginMode } + GL_POINTS = $0000 ; + {$EXTERNALSYM GL_POINTS} + GL_LINES = $0001 ; + {$EXTERNALSYM GL_LINES} + GL_LINE_LOOP = $0002 ; + {$EXTERNALSYM GL_LINE_LOOP} + GL_LINE_STRIP = $0003 ; + {$EXTERNALSYM GL_LINE_STRIP} + GL_TRIANGLES = $0004 ; + {$EXTERNALSYM GL_TRIANGLES} + GL_TRIANGLE_STRIP = $0005 ; + {$EXTERNALSYM GL_TRIANGLE_STRIP} + GL_TRIANGLE_FAN = $0006 ; + {$EXTERNALSYM GL_TRIANGLE_FAN} + GL_QUADS = $0007 ; + {$EXTERNALSYM GL_QUADS} + GL_QUAD_STRIP = $0008 ; + {$EXTERNALSYM GL_QUAD_STRIP} + GL_POLYGON = $0009 ; + {$EXTERNALSYM GL_POLYGON} + +{ AccumOp } + GL_ACCUM = $0100; + {$EXTERNALSYM GL_ACCUM} + GL_LOAD = $0101; + {$EXTERNALSYM GL_LOAD} + GL_RETURN = $0102; + {$EXTERNALSYM GL_RETURN} + GL_MULT = $0103; + {$EXTERNALSYM GL_MULT} + GL_ADD = $0104; + {$EXTERNALSYM GL_ADD} + +{ AlphaFunction } + GL_NEVER = $0200; + {$EXTERNALSYM GL_NEVER} + GL_LESS = $0201; + {$EXTERNALSYM GL_LESS} + GL_EQUAL = $0202; + {$EXTERNALSYM GL_EQUAL} + GL_LEQUAL = $0203; + {$EXTERNALSYM GL_LEQUAL} + GL_GREATER = $0204; + {$EXTERNALSYM GL_GREATER} + GL_NOTEQUAL = $0205; + {$EXTERNALSYM GL_NOTEQUAL} + GL_GEQUAL = $0206; + {$EXTERNALSYM GL_GEQUAL} + GL_ALWAYS = $0207; + {$EXTERNALSYM GL_ALWAYS} + +{ BlendingFactorDest } + GL_ZERO = 0; + {$EXTERNALSYM GL_ZERO} + GL_ONE = 1; + {$EXTERNALSYM GL_ONE} + GL_SRC_COLOR = $0300; + {$EXTERNALSYM GL_SRC_COLOR} + GL_ONE_MINUS_SRC_COLOR = $0301; + {$EXTERNALSYM GL_ONE_MINUS_SRC_COLOR} + GL_SRC_ALPHA = $0302; + {$EXTERNALSYM GL_SRC_ALPHA} + GL_ONE_MINUS_SRC_ALPHA = $0303; + {$EXTERNALSYM GL_ONE_MINUS_SRC_ALPHA} + GL_DST_ALPHA = $0304; + {$EXTERNALSYM GL_DST_ALPHA} + GL_ONE_MINUS_DST_ALPHA = $0305; + {$EXTERNALSYM GL_ONE_MINUS_DST_ALPHA} + +{ BlendingFactorSrc } +{ GL_ZERO } +{ GL_ONE } + GL_DST_COLOR = $0306; + {$EXTERNALSYM GL_DST_COLOR} + GL_ONE_MINUS_DST_COLOR = $0307; + {$EXTERNALSYM GL_ONE_MINUS_DST_COLOR} + GL_SRC_ALPHA_SATURATE = $0308; + {$EXTERNALSYM GL_SRC_ALPHA_SATURATE} +{ GL_SRC_ALPHA } +{ GL_ONE_MINUS_SRC_ALPHA } +{ GL_DST_ALPHA } +{ GL_ONE_MINUS_DST_ALPHA } + +{ BlendingMode } +{ GL_LOGIC_OP } + +{ ColorMaterialFace } +{ GL_FRONT } +{ GL_BACK } +{ GL_FRONT_AND_BACK } + +{ ColorMaterialParameter } +{ GL_AMBIENT } +{ GL_DIFFUSE } +{ GL_SPECULAR } +{ GL_EMISSION } +{ GL_AMBIENT_AND_DIFFUSE } + +{ CullFaceMode } +{ GL_FRONT } +{ GL_BACK } +{ GL_FRONT_AND_BACK } + +{ DepthFunction } +{ GL_NEVER } +{ GL_LESS } +{ GL_EQUAL } +{ GL_LEQUAL } +{ GL_GREATER } +{ GL_NOTEQUAL } +{ GL_GEQUAL } +{ GL_ALWAYS } + +{ DrawBufferMode } + GL_NONE = 0; + {$EXTERNALSYM GL_NONE} + GL_FRONT_LEFT = $0400; + {$EXTERNALSYM GL_FRONT_LEFT} + GL_FRONT_RIGHT = $0401; + {$EXTERNALSYM GL_FRONT_RIGHT} + GL_BACK_LEFT = $0402; + {$EXTERNALSYM GL_BACK_LEFT} + GL_BACK_RIGHT = $0403; + {$EXTERNALSYM GL_BACK_RIGHT} + GL_FRONT = $0404; + {$EXTERNALSYM GL_FRONT} + GL_BACK = $0405; + {$EXTERNALSYM GL_BACK} + GL_LEFT = $0406; + {$EXTERNALSYM GL_LEFT} + GL_RIGHT = $0407; + {$EXTERNALSYM GL_RIGHT} + GL_FRONT_AND_BACK = $0408; + {$EXTERNALSYM GL_FRONT_AND_BACK} + GL_AUX0 = $0409; + {$EXTERNALSYM GL_AUX0} + GL_AUX1 = $040A; + {$EXTERNALSYM GL_AUX1} + GL_AUX2 = $040B; + {$EXTERNALSYM GL_AUX2} + GL_AUX3 = $040C; + {$EXTERNALSYM GL_AUX3} + +{ ErrorCode } + GL_NO_ERROR = 0; + {$EXTERNALSYM GL_NO_ERROR} + GL_INVALID_ENUM = $0500; + {$EXTERNALSYM GL_INVALID_ENUM} + GL_INVALID_VALUE = $0501; + {$EXTERNALSYM GL_INVALID_VALUE} + GL_INVALID_OPERATION = $0502; + {$EXTERNALSYM GL_INVALID_OPERATION} + GL_STACK_OVERFLOW = $0503; + {$EXTERNALSYM GL_STACK_OVERFLOW} + GL_STACK_UNDERFLOW = $0504; + {$EXTERNALSYM GL_STACK_UNDERFLOW} + GL_OUT_OF_MEMORY = $0505; + {$EXTERNALSYM GL_OUT_OF_MEMORY} + +{ FeedBackMode } + GL_2D = $0600; + {$EXTERNALSYM GL_2D} + GL_3D = $0601; + {$EXTERNALSYM GL_3D} + GL_3D_COLOR = $0602; + {$EXTERNALSYM GL_3D_COLOR} + GL_3D_COLOR_TEXTURE = $0603; + {$EXTERNALSYM GL_3D_COLOR_TEXTURE} + GL_4D_COLOR_TEXTURE = $0604; + {$EXTERNALSYM GL_4D_COLOR_TEXTURE} + +{ FeedBackToken } + GL_PASS_THROUGH_TOKEN = $0700; + {$EXTERNALSYM GL_PASS_THROUGH_TOKEN} + GL_POINT_TOKEN = $0701; + {$EXTERNALSYM GL_POINT_TOKEN} + GL_LINE_TOKEN = $0702; + {$EXTERNALSYM GL_LINE_TOKEN} + GL_POLYGON_TOKEN = $0703; + {$EXTERNALSYM GL_POLYGON_TOKEN} + GL_BITMAP_TOKEN = $0704; + {$EXTERNALSYM GL_BITMAP_TOKEN} + GL_DRAW_PIXEL_TOKEN = $0705; + {$EXTERNALSYM GL_DRAW_PIXEL_TOKEN} + GL_COPY_PIXEL_TOKEN = $0706; + {$EXTERNALSYM GL_COPY_PIXEL_TOKEN} + GL_LINE_RESET_TOKEN = $0707; + {$EXTERNALSYM GL_LINE_RESET_TOKEN} + +{ FogMode } +{ GL_LINEAR } + GL_EXP = $0800; + {$EXTERNALSYM GL_EXP} + GL_EXP2 = $0801; + {$EXTERNALSYM GL_EXP2} + +{ FogParameter } +{ GL_FOG_COLOR } +{ GL_FOG_DENSITY } +{ GL_FOG_END } +{ GL_FOG_INDEX } +{ GL_FOG_MODE } +{ GL_FOG_START } + +{ FrontFaceDirection } + GL_CW = $0900; + {$EXTERNALSYM GL_CW} + GL_CCW = $0901; + {$EXTERNALSYM GL_CCW} + +{ GetMapTarget } + GL_COEFF = $0A00; + {$EXTERNALSYM GL_COEFF} + GL_ORDER = $0A01; + {$EXTERNALSYM GL_ORDER} + GL_DOMAIN = $0A02; + {$EXTERNALSYM GL_DOMAIN} + +{ GetPixelMap } + GL_PIXEL_MAP_I_TO_I = $0C70; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_I} + GL_PIXEL_MAP_S_TO_S = $0C71; + {$EXTERNALSYM GL_PIXEL_MAP_S_TO_S} + GL_PIXEL_MAP_I_TO_R = $0C72; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_R} + GL_PIXEL_MAP_I_TO_G = $0C73; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_G} + GL_PIXEL_MAP_I_TO_B = $0C74; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_B} + GL_PIXEL_MAP_I_TO_A = $0C75; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_A} + GL_PIXEL_MAP_R_TO_R = $0C76; + {$EXTERNALSYM GL_PIXEL_MAP_R_TO_R} + GL_PIXEL_MAP_G_TO_G = $0C77; + {$EXTERNALSYM GL_PIXEL_MAP_G_TO_G} + GL_PIXEL_MAP_B_TO_B = $0C78; + {$EXTERNALSYM GL_PIXEL_MAP_B_TO_B} + GL_PIXEL_MAP_A_TO_A = $0C79; + {$EXTERNALSYM GL_PIXEL_MAP_A_TO_A} + +{ GetTarget } + GL_CURRENT_COLOR = $0B00; + {$EXTERNALSYM GL_CURRENT_COLOR} + GL_CURRENT_INDEX = $0B01; + {$EXTERNALSYM GL_CURRENT_INDEX} + GL_CURRENT_NORMAL = $0B02; + {$EXTERNALSYM GL_CURRENT_NORMAL} + GL_CURRENT_TEXTURE_COORDS = $0B03; + {$EXTERNALSYM GL_CURRENT_TEXTURE_COORDS} + GL_CURRENT_RASTER_COLOR = $0B04; + {$EXTERNALSYM GL_CURRENT_RASTER_COLOR} + GL_CURRENT_RASTER_INDEX = $0B05; + {$EXTERNALSYM GL_CURRENT_RASTER_INDEX} + GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06; + {$EXTERNALSYM GL_CURRENT_RASTER_TEXTURE_COORDS} + GL_CURRENT_RASTER_POSITION = $0B07; + {$EXTERNALSYM GL_CURRENT_RASTER_POSITION} + GL_CURRENT_RASTER_POSITION_VALID = $0B08; + {$EXTERNALSYM GL_CURRENT_RASTER_POSITION_VALID} + GL_CURRENT_RASTER_DISTANCE = $0B09; + {$EXTERNALSYM GL_CURRENT_RASTER_DISTANCE} + GL_POINT_SMOOTH = $0B10; + {$EXTERNALSYM GL_POINT_SMOOTH} + GL_POINT_SIZE = $0B11; + {$EXTERNALSYM GL_POINT_SIZE} + GL_POINT_SIZE_RANGE = $0B12; + {$EXTERNALSYM GL_POINT_SIZE_RANGE} + GL_POINT_SIZE_GRANULARITY = $0B13; + {$EXTERNALSYM GL_POINT_SIZE_GRANULARITY} + GL_LINE_SMOOTH = $0B20; + {$EXTERNALSYM GL_LINE_SMOOTH} + GL_LINE_WIDTH = $0B21; + {$EXTERNALSYM GL_LINE_WIDTH} + GL_LINE_WIDTH_RANGE = $0B22; + {$EXTERNALSYM GL_LINE_WIDTH_RANGE} + GL_LINE_WIDTH_GRANULARITY = $0B23; + {$EXTERNALSYM GL_LINE_WIDTH_GRANULARITY} + GL_LINE_STIPPLE = $0B24; + {$EXTERNALSYM GL_LINE_STIPPLE} + GL_LINE_STIPPLE_PATTERN = $0B25; + {$EXTERNALSYM GL_LINE_STIPPLE_PATTERN} + GL_LINE_STIPPLE_REPEAT = $0B26; + {$EXTERNALSYM GL_LINE_STIPPLE_REPEAT} + GL_LIST_MODE = $0B30; + {$EXTERNALSYM GL_LIST_MODE} + GL_MAX_LIST_NESTING = $0B31; + {$EXTERNALSYM GL_MAX_LIST_NESTING} + GL_LIST_BASE = $0B32; + {$EXTERNALSYM GL_LIST_BASE} + GL_LIST_INDEX = $0B33; + {$EXTERNALSYM GL_LIST_INDEX} + GL_POLYGON_MODE = $0B40; + {$EXTERNALSYM GL_POLYGON_MODE} + GL_POLYGON_SMOOTH = $0B41; + {$EXTERNALSYM GL_POLYGON_SMOOTH} + GL_POLYGON_STIPPLE = $0B42; + {$EXTERNALSYM GL_POLYGON_STIPPLE} + GL_EDGE_FLAG = $0B43; + {$EXTERNALSYM GL_EDGE_FLAG} + GL_CULL_FACE = $0B44; + {$EXTERNALSYM GL_CULL_FACE} + GL_CULL_FACE_MODE = $0B45; + {$EXTERNALSYM GL_CULL_FACE_MODE} + GL_FRONT_FACE = $0B46; + {$EXTERNALSYM GL_FRONT_FACE} + GL_LIGHTING = $0B50; + {$EXTERNALSYM GL_LIGHTING} + GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51; + {$EXTERNALSYM GL_LIGHT_MODEL_LOCAL_VIEWER} + GL_LIGHT_MODEL_TWO_SIDE = $0B52; + {$EXTERNALSYM GL_LIGHT_MODEL_TWO_SIDE} + GL_LIGHT_MODEL_AMBIENT = $0B53; + {$EXTERNALSYM GL_LIGHT_MODEL_AMBIENT} + GL_SHADE_MODEL = $0B54; + {$EXTERNALSYM GL_SHADE_MODEL} + GL_COLOR_MATERIAL_FACE = $0B55; + {$EXTERNALSYM GL_COLOR_MATERIAL_FACE} + GL_COLOR_MATERIAL_PARAMETER = $0B56; + {$EXTERNALSYM GL_COLOR_MATERIAL_PARAMETER} + GL_COLOR_MATERIAL = $0B57; + {$EXTERNALSYM GL_COLOR_MATERIAL} + GL_FOG = $0B60; + {$EXTERNALSYM GL_FOG} + GL_FOG_INDEX = $0B61; + {$EXTERNALSYM GL_FOG_INDEX} + GL_FOG_DENSITY = $0B62; + {$EXTERNALSYM GL_FOG_DENSITY} + GL_FOG_START = $0B63; + {$EXTERNALSYM GL_FOG_START} + GL_FOG_END = $0B64; + {$EXTERNALSYM GL_FOG_END} + GL_FOG_MODE = $0B65; + {$EXTERNALSYM GL_FOG_MODE} + GL_FOG_COLOR = $0B66; + {$EXTERNALSYM GL_FOG_COLOR} + GL_DEPTH_RANGE = $0B70; + {$EXTERNALSYM GL_DEPTH_RANGE} + GL_DEPTH_TEST = $0B71; + {$EXTERNALSYM GL_DEPTH_TEST} + GL_DEPTH_WRITEMASK = $0B72; + {$EXTERNALSYM GL_DEPTH_WRITEMASK} + GL_DEPTH_CLEAR_VALUE = $0B73; + {$EXTERNALSYM GL_DEPTH_CLEAR_VALUE} + GL_DEPTH_FUNC = $0B74; + {$EXTERNALSYM GL_DEPTH_FUNC} + GL_ACCUM_CLEAR_VALUE = $0B80; + {$EXTERNALSYM GL_ACCUM_CLEAR_VALUE} + GL_STENCIL_TEST = $0B90; + {$EXTERNALSYM GL_STENCIL_TEST} + GL_STENCIL_CLEAR_VALUE = $0B91; + {$EXTERNALSYM GL_STENCIL_CLEAR_VALUE} + GL_STENCIL_FUNC = $0B92; + {$EXTERNALSYM GL_STENCIL_FUNC} + GL_STENCIL_VALUE_MASK = $0B93; + {$EXTERNALSYM GL_STENCIL_VALUE_MASK} + GL_STENCIL_FAIL = $0B94; + {$EXTERNALSYM GL_STENCIL_FAIL} + GL_STENCIL_PASS_DEPTH_FAIL = $0B95; + {$EXTERNALSYM GL_STENCIL_PASS_DEPTH_FAIL} + GL_STENCIL_PASS_DEPTH_PASS = $0B96; + {$EXTERNALSYM GL_STENCIL_PASS_DEPTH_PASS} + GL_STENCIL_REF = $0B97; + {$EXTERNALSYM GL_STENCIL_REF} + GL_STENCIL_WRITEMASK = $0B98; + {$EXTERNALSYM GL_STENCIL_WRITEMASK} + GL_MATRIX_MODE = $0BA0; + {$EXTERNALSYM GL_MATRIX_MODE} + GL_NORMALIZE = $0BA1; + {$EXTERNALSYM GL_NORMALIZE} + GL_VIEWPORT = $0BA2; + {$EXTERNALSYM GL_VIEWPORT} + GL_MODELVIEW_STACK_DEPTH = $0BA3; + {$EXTERNALSYM GL_MODELVIEW_STACK_DEPTH} + GL_PROJECTION_STACK_DEPTH = $0BA4; + {$EXTERNALSYM GL_PROJECTION_STACK_DEPTH} + GL_TEXTURE_STACK_DEPTH = $0BA5; + {$EXTERNALSYM GL_TEXTURE_STACK_DEPTH} + GL_MODELVIEW_MATRIX = $0BA6; + {$EXTERNALSYM GL_MODELVIEW_MATRIX} + GL_PROJECTION_MATRIX = $0BA7; + {$EXTERNALSYM GL_PROJECTION_MATRIX} + GL_TEXTURE_MATRIX = $0BA8; + {$EXTERNALSYM GL_TEXTURE_MATRIX} + GL_ATTRIB_STACK_DEPTH = $0BB0; + {$EXTERNALSYM GL_ATTRIB_STACK_DEPTH} + GL_ALPHA_TEST = $0BC0; + {$EXTERNALSYM GL_ALPHA_TEST} + GL_ALPHA_TEST_FUNC = $0BC1; + {$EXTERNALSYM GL_ALPHA_TEST_FUNC} + GL_ALPHA_TEST_REF = $0BC2; + {$EXTERNALSYM GL_ALPHA_TEST_REF} + GL_DITHER = $0BD0; + {$EXTERNALSYM GL_DITHER} + GL_BLEND_DST = $0BE0; + {$EXTERNALSYM GL_BLEND_DST} + GL_BLEND_SRC = $0BE1; + {$EXTERNALSYM GL_BLEND_SRC} + GL_BLEND = $0BE2; + {$EXTERNALSYM GL_BLEND} + GL_LOGIC_OP_MODE = $0BF0; + {$EXTERNALSYM GL_LOGIC_OP_MODE} + GL_LOGIC_OP = $0BF1; + {$EXTERNALSYM GL_LOGIC_OP} + GL_AUX_BUFFERS = $0C00; + {$EXTERNALSYM GL_AUX_BUFFERS} + GL_DRAW_BUFFER = $0C01; + {$EXTERNALSYM GL_DRAW_BUFFER} + GL_READ_BUFFER = $0C02; + {$EXTERNALSYM GL_READ_BUFFER} + GL_SCISSOR_BOX = $0C10; + {$EXTERNALSYM GL_SCISSOR_BOX} + GL_SCISSOR_TEST = $0C11; + {$EXTERNALSYM GL_SCISSOR_TEST} + GL_INDEX_CLEAR_VALUE = $0C20; + {$EXTERNALSYM GL_INDEX_CLEAR_VALUE} + GL_INDEX_WRITEMASK = $0C21; + {$EXTERNALSYM GL_INDEX_WRITEMASK} + GL_COLOR_CLEAR_VALUE = $0C22; + {$EXTERNALSYM GL_COLOR_CLEAR_VALUE} + GL_COLOR_WRITEMASK = $0C23; + {$EXTERNALSYM GL_COLOR_WRITEMASK} + GL_INDEX_MODE = $0C30; + {$EXTERNALSYM GL_INDEX_MODE} + GL_RGBA_MODE = $0C31; + {$EXTERNALSYM GL_RGBA_MODE} + GL_DOUBLEBUFFER = $0C32; + {$EXTERNALSYM GL_DOUBLEBUFFER} + GL_STEREO = $0C33; + {$EXTERNALSYM GL_STEREO} + GL_RENDER_MODE = $0C40; + {$EXTERNALSYM GL_RENDER_MODE} + GL_PERSPECTIVE_CORRECTION_HINT = $0C50; + {$EXTERNALSYM GL_PERSPECTIVE_CORRECTION_HINT} + GL_POINT_SMOOTH_HINT = $0C51; + {$EXTERNALSYM GL_POINT_SMOOTH_HINT} + GL_LINE_SMOOTH_HINT = $0C52; + {$EXTERNALSYM GL_LINE_SMOOTH_HINT} + GL_POLYGON_SMOOTH_HINT = $0C53; + {$EXTERNALSYM GL_POLYGON_SMOOTH_HINT} + GL_FOG_HINT = $0C54; + {$EXTERNALSYM GL_FOG_HINT} + GL_TEXTURE_GEN_S = $0C60; + {$EXTERNALSYM GL_TEXTURE_GEN_S} + GL_TEXTURE_GEN_T = $0C61; + {$EXTERNALSYM GL_TEXTURE_GEN_T} + GL_TEXTURE_GEN_R = $0C62; + {$EXTERNALSYM GL_TEXTURE_GEN_R} + GL_TEXTURE_GEN_Q = $0C63; + {$EXTERNALSYM GL_TEXTURE_GEN_Q} + GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_I_SIZE} + GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1; + {$EXTERNALSYM GL_PIXEL_MAP_S_TO_S_SIZE} + GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_R_SIZE} + GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_G_SIZE} + GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_B_SIZE} + GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5; + {$EXTERNALSYM GL_PIXEL_MAP_I_TO_A_SIZE} + GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6; + {$EXTERNALSYM GL_PIXEL_MAP_R_TO_R_SIZE} + GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7; + {$EXTERNALSYM GL_PIXEL_MAP_G_TO_G_SIZE} + GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8; + {$EXTERNALSYM GL_PIXEL_MAP_B_TO_B_SIZE} + GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9; + {$EXTERNALSYM GL_PIXEL_MAP_A_TO_A_SIZE} + GL_UNPACK_SWAP_BYTES = $0CF0; + {$EXTERNALSYM GL_UNPACK_SWAP_BYTES} + GL_UNPACK_LSB_FIRST = $0CF1; + {$EXTERNALSYM GL_UNPACK_LSB_FIRST} + GL_UNPACK_ROW_LENGTH = $0CF2; + {$EXTERNALSYM GL_UNPACK_ROW_LENGTH} + GL_UNPACK_SKIP_ROWS = $0CF3; + {$EXTERNALSYM GL_UNPACK_SKIP_ROWS} + GL_UNPACK_SKIP_PIXELS = $0CF4; + {$EXTERNALSYM GL_UNPACK_SKIP_PIXELS} + GL_UNPACK_ALIGNMENT = $0CF5; + {$EXTERNALSYM GL_UNPACK_ALIGNMENT} + GL_PACK_SWAP_BYTES = $0D00; + {$EXTERNALSYM GL_PACK_SWAP_BYTES} + GL_PACK_LSB_FIRST = $0D01; + {$EXTERNALSYM GL_PACK_LSB_FIRST} + GL_PACK_ROW_LENGTH = $0D02; + {$EXTERNALSYM GL_PACK_ROW_LENGTH} + GL_PACK_SKIP_ROWS = $0D03; + {$EXTERNALSYM GL_PACK_SKIP_ROWS} + GL_PACK_SKIP_PIXELS = $0D04; + {$EXTERNALSYM GL_PACK_SKIP_PIXELS} + GL_PACK_ALIGNMENT = $0D05; + {$EXTERNALSYM GL_PACK_ALIGNMENT} + GL_MAP_COLOR = $0D10; + {$EXTERNALSYM GL_MAP_COLOR} + GL_MAP_STENCIL = $0D11; + {$EXTERNALSYM GL_MAP_STENCIL} + GL_INDEX_SHIFT = $0D12; + {$EXTERNALSYM GL_INDEX_SHIFT} + GL_INDEX_OFFSET = $0D13; + {$EXTERNALSYM GL_INDEX_OFFSET} + GL_RED_SCALE = $0D14; + {$EXTERNALSYM GL_RED_SCALE} + GL_RED_BIAS = $0D15; + {$EXTERNALSYM GL_RED_BIAS} + GL_ZOOM_X = $0D16; + {$EXTERNALSYM GL_ZOOM_X} + GL_ZOOM_Y = $0D17; + {$EXTERNALSYM GL_ZOOM_Y} + GL_GREEN_SCALE = $0D18; + {$EXTERNALSYM GL_GREEN_SCALE} + GL_GREEN_BIAS = $0D19; + {$EXTERNALSYM GL_GREEN_BIAS} + GL_BLUE_SCALE = $0D1A; + {$EXTERNALSYM GL_BLUE_SCALE} + GL_BLUE_BIAS = $0D1B; + {$EXTERNALSYM GL_BLUE_BIAS} + GL_ALPHA_SCALE = $0D1C; + {$EXTERNALSYM GL_ALPHA_SCALE} + GL_ALPHA_BIAS = $0D1D; + {$EXTERNALSYM GL_ALPHA_BIAS} + GL_DEPTH_SCALE = $0D1E; + {$EXTERNALSYM GL_DEPTH_SCALE} + GL_DEPTH_BIAS = $0D1F; + {$EXTERNALSYM GL_DEPTH_BIAS} + GL_MAX_EVAL_ORDER = $0D30; + {$EXTERNALSYM GL_MAX_EVAL_ORDER} + GL_MAX_LIGHTS = $0D31; + {$EXTERNALSYM GL_MAX_EVAL_ORDER} + GL_MAX_CLIP_PLANES = $0D32; + {$EXTERNALSYM GL_MAX_CLIP_PLANES} + GL_MAX_TEXTURE_SIZE = $0D33; + {$EXTERNALSYM GL_MAX_TEXTURE_SIZE} + GL_MAX_PIXEL_MAP_TABLE = $0D34; + {$EXTERNALSYM GL_MAX_PIXEL_MAP_TABLE} + GL_MAX_ATTRIB_STACK_DEPTH = $0D35; + {$EXTERNALSYM GL_MAX_ATTRIB_STACK_DEPTH} + GL_MAX_MODELVIEW_STACK_DEPTH = $0D36; + {$EXTERNALSYM GL_MAX_MODELVIEW_STACK_DEPTH} + GL_MAX_NAME_STACK_DEPTH = $0D37; + {$EXTERNALSYM GL_MAX_NAME_STACK_DEPTH} + GL_MAX_PROJECTION_STACK_DEPTH = $0D38; + {$EXTERNALSYM GL_MAX_PROJECTION_STACK_DEPTH} + GL_MAX_TEXTURE_STACK_DEPTH = $0D39; + {$EXTERNALSYM GL_MAX_TEXTURE_STACK_DEPTH} + GL_MAX_VIEWPORT_DIMS = $0D3A; + {$EXTERNALSYM GL_MAX_VIEWPORT_DIMS} + GL_SUBPIXEL_BITS = $0D50; + {$EXTERNALSYM GL_SUBPIXEL_BITS} + GL_INDEX_BITS = $0D51; + {$EXTERNALSYM GL_INDEX_BITS} + GL_RED_BITS = $0D52; + {$EXTERNALSYM GL_RED_BITS} + GL_GREEN_BITS = $0D53; + {$EXTERNALSYM GL_GREEN_BITS} + GL_BLUE_BITS = $0D54; + {$EXTERNALSYM GL_BLUE_BITS} + GL_ALPHA_BITS = $0D55; + {$EXTERNALSYM GL_ALPHA_BITS} + GL_DEPTH_BITS = $0D56; + {$EXTERNALSYM GL_DEPTH_BITS} + GL_STENCIL_BITS = $0D57; + {$EXTERNALSYM GL_STENCIL_BITS} + GL_ACCUM_RED_BITS = $0D58; + {$EXTERNALSYM GL_ACCUM_RED_BITS} + GL_ACCUM_GREEN_BITS = $0D59; + {$EXTERNALSYM GL_ACCUM_GREEN_BITS} + GL_ACCUM_BLUE_BITS = $0D5A; + {$EXTERNALSYM GL_ACCUM_BLUE_BITS} + GL_ACCUM_ALPHA_BITS = $0D5B; + {$EXTERNALSYM GL_ACCUM_ALPHA_BITS} + GL_NAME_STACK_DEPTH = $0D70; + {$EXTERNALSYM GL_NAME_STACK_DEPTH} + GL_AUTO_NORMAL = $0D80; + {$EXTERNALSYM GL_AUTO_NORMAL} + GL_MAP1_COLOR_4 = $0D90; + {$EXTERNALSYM GL_MAP1_COLOR_4} + GL_MAP1_INDEX = $0D91; + {$EXTERNALSYM GL_MAP1_INDEX} + GL_MAP1_NORMAL = $0D92; + {$EXTERNALSYM GL_MAP1_NORMAL} + GL_MAP1_TEXTURE_COORD_1 = $0D93; + {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_1} + GL_MAP1_TEXTURE_COORD_2 = $0D94; + {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_2} + GL_MAP1_TEXTURE_COORD_3 = $0D95; + {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_3} + GL_MAP1_TEXTURE_COORD_4 = $0D96; + {$EXTERNALSYM GL_MAP1_TEXTURE_COORD_4} + GL_MAP1_VERTEX_3 = $0D97; + {$EXTERNALSYM GL_MAP1_VERTEX_3} + GL_MAP1_VERTEX_4 = $0D98; + {$EXTERNALSYM GL_MAP1_VERTEX_4} + GL_MAP2_COLOR_4 = $0DB0; + {$EXTERNALSYM GL_MAP2_COLOR_4} + GL_MAP2_INDEX = $0DB1; + {$EXTERNALSYM GL_MAP2_INDEX} + GL_MAP2_NORMAL = $0DB2; + {$EXTERNALSYM GL_MAP2_NORMAL} + GL_MAP2_TEXTURE_COORD_1 = $0DB3; + {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_1} + GL_MAP2_TEXTURE_COORD_2 = $0DB4; + {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_2} + GL_MAP2_TEXTURE_COORD_3 = $0DB5; + {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_3} + GL_MAP2_TEXTURE_COORD_4 = $0DB6; + {$EXTERNALSYM GL_MAP2_TEXTURE_COORD_4} + GL_MAP2_VERTEX_3 = $0DB7; + {$EXTERNALSYM GL_MAP2_VERTEX_3} + GL_MAP2_VERTEX_4 = $0DB8; + {$EXTERNALSYM GL_MAP2_VERTEX_4} + GL_MAP1_GRID_DOMAIN = $0DD0; + {$EXTERNALSYM GL_MAP1_GRID_DOMAIN} + GL_MAP1_GRID_SEGMENTS = $0DD1; + {$EXTERNALSYM GL_MAP1_GRID_SEGMENTS} + GL_MAP2_GRID_DOMAIN = $0DD2; + {$EXTERNALSYM GL_MAP2_GRID_DOMAIN} + GL_MAP2_GRID_SEGMENTS = $0DD3; + {$EXTERNALSYM GL_MAP2_GRID_SEGMENTS} + GL_TEXTURE_1D = $0DE0; + {$EXTERNALSYM GL_TEXTURE_1D} + GL_TEXTURE_2D = $0DE1; + {$EXTERNALSYM GL_TEXTURE_2D} + +{ GetTextureParameter } +{ GL_TEXTURE_MAG_FILTER } +{ GL_TEXTURE_MIN_FILTER } +{ GL_TEXTURE_WRAP_S } +{ GL_TEXTURE_WRAP_T } + GL_TEXTURE_WIDTH = $1000; + {$EXTERNALSYM GL_TEXTURE_WIDTH} + GL_TEXTURE_HEIGHT = $1001; + {$EXTERNALSYM GL_TEXTURE_HEIGHT} + GL_TEXTURE_COMPONENTS = $1003; + {$EXTERNALSYM GL_TEXTURE_COMPONENTS} + GL_TEXTURE_BORDER_COLOR = $1004; + {$EXTERNALSYM GL_TEXTURE_BORDER_COLOR} + GL_TEXTURE_BORDER = $1005; + {$EXTERNALSYM GL_TEXTURE_BORDER} + +{ HintMode } + GL_DONT_CARE = $1100; + {$EXTERNALSYM GL_DONT_CARE} + GL_FASTEST = $1101; + {$EXTERNALSYM GL_FASTEST} + GL_NICEST = $1102; + {$EXTERNALSYM GL_NICEST} + +{ HintTarget } +{ GL_PERSPECTIVE_CORRECTION_HINT } +{ GL_POINT_SMOOTH_HINT } +{ GL_LINE_SMOOTH_HINT } +{ GL_POLYGON_SMOOTH_HINT } +{ GL_FOG_HINT } + +{ LightModelParameter } +{ GL_LIGHT_MODEL_AMBIENT } +{ GL_LIGHT_MODEL_LOCAL_VIEWER } +{ GL_LIGHT_MODEL_TWO_SIDE } + +{ LightParameter } + GL_AMBIENT = $1200; + {$EXTERNALSYM GL_AMBIENT} + GL_DIFFUSE = $1201; + {$EXTERNALSYM GL_DIFFUSE} + GL_SPECULAR = $1202; + {$EXTERNALSYM GL_SPECULAR} + GL_POSITION = $1203; + {$EXTERNALSYM GL_POSITION} + GL_SPOT_DIRECTION = $1204; + {$EXTERNALSYM GL_SPOT_DIRECTION} + GL_SPOT_EXPONENT = $1205; + {$EXTERNALSYM GL_SPOT_EXPONENT} + GL_SPOT_CUTOFF = $1206; + {$EXTERNALSYM GL_SPOT_CUTOFF} + GL_CONSTANT_ATTENUATION = $1207; + {$EXTERNALSYM GL_CONSTANT_ATTENUATION} + GL_LINEAR_ATTENUATION = $1208; + {$EXTERNALSYM GL_LINEAR_ATTENUATION} + GL_QUADRATIC_ATTENUATION = $1209; + {$EXTERNALSYM GL_QUADRATIC_ATTENUATION} + +{ ListMode } + GL_COMPILE = $1300; + {$EXTERNALSYM GL_COMPILE} + GL_COMPILE_AND_EXECUTE = $1301; + {$EXTERNALSYM GL_COMPILE_AND_EXECUTE} + +{ ListNameType } + GL_BYTE = $1400; + {$EXTERNALSYM GL_BYTE} + GL_UNSIGNED_BYTE = $1401; + {$EXTERNALSYM GL_UNSIGNED_BYTE} + GL_SHORT = $1402; + {$EXTERNALSYM GL_SHORT} + GL_UNSIGNED_SHORT = $1403; + {$EXTERNALSYM GL_UNSIGNED_SHORT} + GL_INT = $1404; + {$EXTERNALSYM GL_INT} + GL_UNSIGNED_INT = $1405; + {$EXTERNALSYM GL_UNSIGNED_INT} + GL_FLOAT = $1406; + {$EXTERNALSYM GL_FLOAT} + GL_2_BYTES = $1407; + {$EXTERNALSYM GL_2_BYTES} + GL_3_BYTES = $1408; + {$EXTERNALSYM GL_3_BYTES} + GL_4_BYTES = $1409; + {$EXTERNALSYM GL_4_BYTES} + +{ LogicOp } + GL_CLEAR = $1500; + {$EXTERNALSYM GL_CLEAR} + GL_AND = $1501; + {$EXTERNALSYM GL_AND} + GL_AND_REVERSE = $1502; + {$EXTERNALSYM GL_AND_REVERSE} + GL_COPY = $1503; + {$EXTERNALSYM GL_COPY} + GL_AND_INVERTED = $1504; + {$EXTERNALSYM GL_AND_INVERTED} + GL_NOOP = $1505; + {$EXTERNALSYM GL_NOOP} + GL_XOR = $1506; + {$EXTERNALSYM GL_XOR} + GL_OR = $1507; + {$EXTERNALSYM GL_OR} + GL_NOR = $1508; + {$EXTERNALSYM GL_NOR} + GL_EQUIV = $1509; + {$EXTERNALSYM GL_EQUIV} + GL_INVERT = $150A; + {$EXTERNALSYM GL_INVERT} + GL_OR_REVERSE = $150B; + {$EXTERNALSYM GL_OR_REVERSE} + GL_COPY_INVERTED = $150C; + {$EXTERNALSYM GL_COPY_INVERTED} + GL_OR_INVERTED = $150D; + {$EXTERNALSYM GL_OR_INVERTED} + GL_NAND = $150E; + {$EXTERNALSYM GL_NAND} + GL_SET = $150F; + {$EXTERNALSYM GL_SET} + +{ MapTarget } +{ GL_MAP1_COLOR_4 } +{ GL_MAP1_INDEX } +{ GL_MAP1_NORMAL } +{ GL_MAP1_TEXTURE_COORD_1 } +{ GL_MAP1_TEXTURE_COORD_2 } +{ GL_MAP1_TEXTURE_COORD_3 } +{ GL_MAP1_TEXTURE_COORD_4 } +{ GL_MAP1_VERTEX_3 } +{ GL_MAP1_VERTEX_4 } +{ GL_MAP2_COLOR_4 } +{ GL_MAP2_INDEX } +{ GL_MAP2_NORMAL } +{ GL_MAP2_TEXTURE_COORD_1 } +{ GL_MAP2_TEXTURE_COORD_2 } +{ GL_MAP2_TEXTURE_COORD_3 } +{ GL_MAP2_TEXTURE_COORD_4 } +{ GL_MAP2_VERTEX_3 } +{ GL_MAP2_VERTEX_4 } + +{ MaterialFace } +{ GL_FRONT } +{ GL_BACK } +{ GL_FRONT_AND_BACK } + +{ MaterialParameter } + GL_EMISSION = $1600; + {$EXTERNALSYM GL_EMISSION} + GL_SHININESS = $1601; + {$EXTERNALSYM GL_SHININESS} + GL_AMBIENT_AND_DIFFUSE = $1602; + {$EXTERNALSYM GL_AMBIENT_AND_DIFFUSE} + GL_COLOR_INDEXES = $1603; + {$EXTERNALSYM GL_COLOR_INDEXES} +{ GL_AMBIENT } +{ GL_DIFFUSE } +{ GL_SPECULAR } + +{ MatrixMode } + GL_MODELVIEW = $1700; + {$EXTERNALSYM GL_MODELVIEW} + GL_PROJECTION = $1701; + {$EXTERNALSYM GL_PROJECTION} + GL_TEXTURE = $1702; + {$EXTERNALSYM GL_TEXTURE} + +{ MeshMode1 } +{ GL_POINT } +{ GL_LINE } + +{ MeshMode2 } +{ GL_POINT } +{ GL_LINE } +{ GL_FILL } + +{ PixelCopyType } + GL_COLOR = $1800; + {$EXTERNALSYM GL_COLOR} + GL_DEPTH = $1801; + {$EXTERNALSYM GL_DEPTH} + GL_STENCIL = $1802; + {$EXTERNALSYM GL_STENCIL} + +{ PixelFormat } + GL_COLOR_INDEX = $1900; + {$EXTERNALSYM GL_COLOR_INDEX} + GL_STENCIL_INDEX = $1901; + {$EXTERNALSYM GL_STENCIL_INDEX} + GL_DEPTH_COMPONENT = $1902; + {$EXTERNALSYM GL_DEPTH_COMPONENT} + GL_RED = $1903; + {$EXTERNALSYM GL_RED} + GL_GREEN = $1904; + {$EXTERNALSYM GL_GREEN} + GL_BLUE = $1905; + {$EXTERNALSYM GL_BLUE} + GL_ALPHA = $1906; + {$EXTERNALSYM GL_ALPHA} + GL_RGB = $1907; + {$EXTERNALSYM GL_RGB} + GL_RGBA = $1908; + {$EXTERNALSYM GL_RGBA} + GL_LUMINANCE = $1909; + {$EXTERNALSYM GL_LUMINANCE} + GL_LUMINANCE_ALPHA = $190A; + {$EXTERNALSYM GL_LUMINANCE_ALPHA} + +{ PixelMap } +{ GL_PIXEL_MAP_I_TO_I } +{ GL_PIXEL_MAP_S_TO_S } +{ GL_PIXEL_MAP_I_TO_R } +{ GL_PIXEL_MAP_I_TO_G } +{ GL_PIXEL_MAP_I_TO_B } +{ GL_PIXEL_MAP_I_TO_A } +{ GL_PIXEL_MAP_R_TO_R } +{ GL_PIXEL_MAP_G_TO_G } +{ GL_PIXEL_MAP_B_TO_B } +{ GL_PIXEL_MAP_A_TO_A } + +{ PixelStore } +{ GL_UNPACK_SWAP_BYTES } +{ GL_UNPACK_LSB_FIRST } +{ GL_UNPACK_ROW_LENGTH } +{ GL_UNPACK_SKIP_ROWS } +{ GL_UNPACK_SKIP_PIXELS } +{ GL_UNPACK_ALIGNMENT } +{ GL_PACK_SWAP_BYTES } +{ GL_PACK_LSB_FIRST } +{ GL_PACK_ROW_LENGTH } +{ GL_PACK_SKIP_ROWS } +{ GL_PACK_SKIP_PIXELS } +{ GL_PACK_ALIGNMENT } + +{ PixelTransfer } +{ GL_MAP_COLOR } +{ GL_MAP_STENCIL } +{ GL_INDEX_SHIFT } +{ GL_INDEX_OFFSET } +{ GL_RED_SCALE } +{ GL_RED_BIAS } +{ GL_GREEN_SCALE } +{ GL_GREEN_BIAS } +{ GL_BLUE_SCALE } +{ GL_BLUE_BIAS } +{ GL_ALPHA_SCALE } +{ GL_ALPHA_BIAS } +{ GL_DEPTH_SCALE } +{ GL_DEPTH_BIAS } + +{ PixelType } + GL_BITMAP = $1A00; + {$EXTERNALSYM GL_BITMAP} +{ GL_BYTE } +{ GL_UNSIGNED_BYTE } +{ GL_SHORT } +{ GL_UNSIGNED_SHORT } +{ GL_INT } +{ GL_UNSIGNED_INT } +{ GL_FLOAT } + +{ PolygonMode } + GL_POINT = $1B00; + {$EXTERNALSYM GL_POINT} + GL_LINE = $1B01; + {$EXTERNALSYM GL_LINE} + GL_FILL = $1B02; + {$EXTERNALSYM GL_FILL} + +{ ReadBufferMode } +{ GL_FRONT_LEFT } +{ GL_FRONT_RIGHT } +{ GL_BACK_LEFT } +{ GL_BACK_RIGHT } +{ GL_FRONT } +{ GL_BACK } +{ GL_LEFT } +{ GL_RIGHT } +{ GL_AUX0 } +{ GL_AUX1 } +{ GL_AUX2 } +{ GL_AUX3 } + +{ RenderingMode } + GL_RENDER = $1C00; + {$EXTERNALSYM GL_RENDER} + GL_FEEDBACK = $1C01; + {$EXTERNALSYM GL_FEEDBACK} + GL_SELECT = $1C02; + {$EXTERNALSYM GL_SELECT} + +{ ShadingModel } + GL_FLAT = $1D00; + {$EXTERNALSYM GL_FLAT} + GL_SMOOTH = $1D01; + {$EXTERNALSYM GL_SMOOTH} + +{ StencilFunction } +{ GL_NEVER } +{ GL_LESS } +{ GL_EQUAL } +{ GL_LEQUAL } +{ GL_GREATER } +{ GL_NOTEQUAL } +{ GL_GEQUAL } +{ GL_ALWAYS } + +{ StencilOp } +{ GL_ZERO } + GL_KEEP = $1E00; + {$EXTERNALSYM GL_KEEP} + GL_REPLACE = $1E01; + {$EXTERNALSYM GL_REPLACE} + GL_INCR = $1E02; + {$EXTERNALSYM GL_INCR} + GL_DECR = $1E03; + {$EXTERNALSYM GL_DECR} +{ GL_INVERT } + +{ StringName } + GL_VENDOR = $1F00; + {$EXTERNALSYM GL_VENDOR} + GL_RENDERER = $1F01; + {$EXTERNALSYM GL_RENDERER} + GL_VERSION = $1F02; + {$EXTERNALSYM GL_VERSION} + GL_EXTENSIONS = $1F03; + {$EXTERNALSYM GL_EXTENSIONS} + +{ TextureCoordName } + GL_S = $2000; + {$EXTERNALSYM GL_S} + GL_T = $2001; + {$EXTERNALSYM GL_T} + GL_R = $2002; + {$EXTERNALSYM GL_R} + GL_Q = $2003; + {$EXTERNALSYM GL_Q} + +{ TextureEnvMode } + GL_MODULATE = $2100; + {$EXTERNALSYM GL_MODULATE} + GL_DECAL = $2101; + {$EXTERNALSYM GL_DECAL} +{ GL_BLEND } + +{ TextureEnvParameter } + GL_TEXTURE_ENV_MODE = $2200; + {$EXTERNALSYM GL_TEXTURE_ENV_MODE} + GL_TEXTURE_ENV_COLOR = $2201; + {$EXTERNALSYM GL_TEXTURE_ENV_COLOR} + +{ TextureEnvTarget } + GL_TEXTURE_ENV = $2300; + {$EXTERNALSYM GL_TEXTURE_ENV} + +{ TextureGenMode } + GL_EYE_LINEAR = $2400; + {$EXTERNALSYM GL_EYE_LINEAR} + GL_OBJECT_LINEAR = $2401; + {$EXTERNALSYM GL_OBJECT_LINEAR} + GL_SPHERE_MAP = $2402; + {$EXTERNALSYM GL_SPHERE_MAP} + +{ TextureGenParameter } + GL_TEXTURE_GEN_MODE = $2500; + {$EXTERNALSYM GL_TEXTURE_GEN_MODE} + GL_OBJECT_PLANE = $2501; + {$EXTERNALSYM GL_OBJECT_PLANE} + GL_EYE_PLANE = $2502; + {$EXTERNALSYM GL_EYE_PLANE} + +{ TextureMagFilter } + GL_NEAREST = $2600; + {$EXTERNALSYM GL_NEAREST} + GL_LINEAR = $2601; + {$EXTERNALSYM GL_LINEAR} + +{ TextureMinFilter } +{ GL_NEAREST } +{ GL_LINEAR } + GL_NEAREST_MIPMAP_NEAREST = $2700; + {$EXTERNALSYM GL_NEAREST_MIPMAP_NEAREST} + GL_LINEAR_MIPMAP_NEAREST = $2701; + {$EXTERNALSYM GL_LINEAR_MIPMAP_NEAREST} + GL_NEAREST_MIPMAP_LINEAR = $2702; + {$EXTERNALSYM GL_NEAREST_MIPMAP_LINEAR} + GL_LINEAR_MIPMAP_LINEAR = $2703; + {$EXTERNALSYM GL_LINEAR_MIPMAP_LINEAR} + +{ TextureParameterName } + GL_TEXTURE_MAG_FILTER = $2800; + {$EXTERNALSYM GL_TEXTURE_MAG_FILTER} + GL_TEXTURE_MIN_FILTER = $2801; + {$EXTERNALSYM GL_TEXTURE_MIN_FILTER} + GL_TEXTURE_WRAP_S = $2802; + {$EXTERNALSYM GL_TEXTURE_WRAP_S} + GL_TEXTURE_WRAP_T = $2803; + {$EXTERNALSYM GL_TEXTURE_WRAP_T} +{ GL_TEXTURE_BORDER_COLOR } + +{ TextureTarget } +{ GL_TEXTURE_1D } +{ GL_TEXTURE_2D } + +{ TextureWrapMode } + GL_CLAMP = $2900; + {$EXTERNALSYM GL_CLAMP} + GL_REPEAT = $2901; + {$EXTERNALSYM GL_REPEAT} + +{ ClipPlaneName } + GL_CLIP_PLANE0 = $3000; + {$EXTERNALSYM GL_CLIP_PLANE0} + GL_CLIP_PLANE1 = $3001; + {$EXTERNALSYM GL_CLIP_PLANE1} + GL_CLIP_PLANE2 = $3002; + {$EXTERNALSYM GL_CLIP_PLANE2} + GL_CLIP_PLANE3 = $3003; + {$EXTERNALSYM GL_CLIP_PLANE3} + GL_CLIP_PLANE4 = $3004; + {$EXTERNALSYM GL_CLIP_PLANE4} + GL_CLIP_PLANE5 = $3005; + {$EXTERNALSYM GL_CLIP_PLANE5} + +{ LightName } + GL_LIGHT0 = $4000; + {$EXTERNALSYM GL_LIGHT0} + GL_LIGHT1 = $4001; + {$EXTERNALSYM GL_LIGHT1} + GL_LIGHT2 = $4002; + {$EXTERNALSYM GL_LIGHT2} + GL_LIGHT3 = $4003; + {$EXTERNALSYM GL_LIGHT3} + GL_LIGHT4 = $4004; + {$EXTERNALSYM GL_LIGHT4} + GL_LIGHT5 = $4005; + {$EXTERNALSYM GL_LIGHT5} + GL_LIGHT6 = $4006; + {$EXTERNALSYM GL_LIGHT6} + GL_LIGHT7 = $4007; + {$EXTERNALSYM GL_LIGHT7} + +// Extensions + GL_EXT_vertex_array = 1; + {$EXTERNALSYM GL_EXT_vertex_array} + GL_WIN_swap_hint = 1; + {$EXTERNALSYM GL_WIN_swap_hint} + +// EXT_vertex_array + GL_VERTEX_ARRAY_EXT = $8074; + {$EXTERNALSYM GL_VERTEX_ARRAY_EXT} + GL_NORMAL_ARRAY_EXT = $8075; + {$EXTERNALSYM GL_NORMAL_ARRAY_EXT} + GL_COLOR_ARRAY_EXT = $8076; + {$EXTERNALSYM GL_COLOR_ARRAY_EXT} + GL_INDEX_ARRAY_EXT = $8077; + {$EXTERNALSYM GL_INDEX_ARRAY_EXT} + GL_TEXTURE_COORD_ARRAY_EXT = $8078; + {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_EXT} + GL_EDGE_FLAG_ARRAY_EXT = $8079; + {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_EXT} + GL_VERTEX_ARRAY_SIZE_EXT = $807A; + {$EXTERNALSYM GL_VERTEX_ARRAY_SIZE_EXT} + GL_VERTEX_ARRAY_TYPE_EXT = $807B; + {$EXTERNALSYM GL_VERTEX_ARRAY_TYPE_EXT} + GL_VERTEX_ARRAY_STRIDE_EXT = $807C; + {$EXTERNALSYM GL_VERTEX_ARRAY_STRIDE_EXT} + GL_VERTEX_ARRAY_COUNT_EXT = $807D; + {$EXTERNALSYM GL_VERTEX_ARRAY_COUNT_EXT} + GL_NORMAL_ARRAY_TYPE_EXT = $807E; + {$EXTERNALSYM GL_NORMAL_ARRAY_TYPE_EXT} + GL_NORMAL_ARRAY_STRIDE_EXT = $807F; + {$EXTERNALSYM GL_NORMAL_ARRAY_STRIDE_EXT} + GL_NORMAL_ARRAY_COUNT_EXT = $8080; + {$EXTERNALSYM GL_NORMAL_ARRAY_COUNT_EXT} + GL_COLOR_ARRAY_SIZE_EXT = $8081; + {$EXTERNALSYM GL_COLOR_ARRAY_SIZE_EXT} + GL_COLOR_ARRAY_TYPE_EXT = $8082; + {$EXTERNALSYM GL_COLOR_ARRAY_TYPE_EXT} + GL_COLOR_ARRAY_STRIDE_EXT = $8083; + {$EXTERNALSYM GL_COLOR_ARRAY_STRIDE_EXT} + GL_COLOR_ARRAY_COUNT_EXT = $8084; + {$EXTERNALSYM GL_COLOR_ARRAY_COUNT_EXT} + GL_INDEX_ARRAY_TYPE_EXT = $8085; + {$EXTERNALSYM GL_INDEX_ARRAY_TYPE_EXT} + GL_INDEX_ARRAY_STRIDE_EXT = $8086; + {$EXTERNALSYM GL_INDEX_ARRAY_STRIDE_EXT} + GL_INDEX_ARRAY_COUNT_EXT = $8087; + {$EXTERNALSYM GL_INDEX_ARRAY_COUNT_EXT} + GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088; + {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_SIZE_EXT} + GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089; + {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_TYPE_EXT} + GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A; + {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_STRIDE_EXT} + GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B; + {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_COUNT_EXT} + GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C; + {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_STRIDE_EXT} + GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D; + {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_COUNT_EXT} + GL_VERTEX_ARRAY_POINTER_EXT = $808E; + {$EXTERNALSYM GL_VERTEX_ARRAY_POINTER_EXT} + GL_NORMAL_ARRAY_POINTER_EXT = $808F; + {$EXTERNALSYM GL_NORMAL_ARRAY_POINTER_EXT} + GL_COLOR_ARRAY_POINTER_EXT = $8090; + {$EXTERNALSYM GL_COLOR_ARRAY_POINTER_EXT} + GL_INDEX_ARRAY_POINTER_EXT = $8091; + {$EXTERNALSYM GL_INDEX_ARRAY_POINTER_EXT} + GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092; + {$EXTERNALSYM GL_TEXTURE_COORD_ARRAY_POINTER_EXT} + GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093; + {$EXTERNALSYM GL_EDGE_FLAG_ARRAY_POINTER_EXT} + + PFD_MAIN_PLANE = 0; + PFD_TYPE_RGBA = 0; + + PFD_DOUBLEBUFFER = $00000001; + PFD_STEREO = $00000002; + PFD_DRAW_TO_WINDOW = $00000004; + PFD_DRAW_TO_BITMAP = $00000008; + PFD_SUPPORT_GDI = $00000010; + PFD_SUPPORT_OPENGL = $00000020; + PFD_GENERIC_FORMAT = $00000040; + PFD_NEED_PALETTE = $00000080; + PFD_NEED_SYSTEM_PALETTE = $00000100; + PFD_SWAP_EXCHANGE = $00000200; + PFD_SWAP_COPY = $00000400; + PFD_SWAP_LAYER_BUFFERS = $00000800; + PFD_GENERIC_ACCELERATED = $00001000; + PFD_DEPTH_DONTCARE = $20000000; + PFD_DOUBLEBUFFER_DONTCARE = $40000000; + +type + PPointFloat = ^TPointFloat; + {$EXTERNALSYM _POINTFLOAT} + _POINTFLOAT = record + X,Y: Single; + end; + TPointFloat = _POINTFLOAT; + {$EXTERNALSYM POINTFLOAT} + POINTFLOAT = _POINTFLOAT; + + PGlyphMetricsFloat = ^TGlyphMetricsFloat; + {$EXTERNALSYM _GLYPHMETRICSFLOAT} + _GLYPHMETRICSFLOAT = record + gmfBlackBoxX: Single; + gmfBlackBoxY: Single; + gmfptGlyphOrigin: TPointFloat; + gmfCellIncX: Single; + gmfCellIncY: Single; + end; + TGlyphMetricsFloat = _GLYPHMETRICSFLOAT; + {$EXTERNALSYM GLYPHMETRICSFLOAT} + GLYPHMETRICSFLOAT = _GLYPHMETRICSFLOAT; + +const + {$EXTERNALSYM WGL_FONT_LINES} + WGL_FONT_LINES = 0; + {$EXTERNALSYM WGL_FONT_POLYGONS} + WGL_FONT_POLYGONS = 1; + +{***********************************************************} + +procedure glAccum (op: GLenum; value: GLfloat); + {$EXTERNALSYM glAccum} +procedure glAlphaFunc (func: GLenum; ref: GLclampf); + {$EXTERNALSYM glAlphaFunc} +procedure glBegin (mode: GLenum); + {$EXTERNALSYM glBegin} +procedure glBitmap (width, height: GLsizei; xorig, yorig: GLfloat; + xmove, ymove: GLfloat; bitmap: Pointer); + {$EXTERNALSYM glBitmap} +procedure glBlendFunc (sfactor, dfactor: GLenum); + {$EXTERNALSYM glBlendFunc} +procedure glCallList (list: GLuint); + {$EXTERNALSYM glCallList} +procedure glCallLists (n: GLsizei; cltype: GLenum; lists: Pointer); + {$EXTERNALSYM glCallLists} +procedure glClear (mask: GLbitfield); + {$EXTERNALSYM glClear} +procedure glClearAccum (red, green, blue, alpha: GLfloat); + {$EXTERNALSYM glClearAccum} +procedure glClearColor (red, green, blue, alpha: GLclampf); + {$EXTERNALSYM glClearColor} +procedure glClearDepth (depth: GLclampd); + {$EXTERNALSYM glClearDepth} +procedure glClearIndex (c: GLfloat); + {$EXTERNALSYM glClearIndex} +procedure glClearStencil (s: GLint); + {$EXTERNALSYM glClearStencil} +procedure glClipPlane (plane: GLenum; equation: PGLDouble); + {$EXTERNALSYM glClipPlane} + +procedure glColor3b (red, green, blue: GLbyte); + {$EXTERNALSYM glColor3b} +procedure glColor3bv (v: PGLByte); + {$EXTERNALSYM glColor3bv} +procedure glColor3d (red, green, blue: GLdouble); + {$EXTERNALSYM glColor3d} +procedure glColor3dv (v: PGLdouble); + {$EXTERNALSYM glColor3dv} +procedure glColor3f (red, green, blue: GLfloat); + {$EXTERNALSYM glColor3f} +procedure glColor3fv (v: PGLfloat); + {$EXTERNALSYM glColor3fv} +procedure glColor3i (red, green, blue: GLint); + {$EXTERNALSYM glColor3i} +procedure glColor3iv (v: PGLint); + {$EXTERNALSYM glColor3iv} +procedure glColor3s (red, green, blue: GLshort); + {$EXTERNALSYM glColor3s} +procedure glColor3sv (v: PGLshort); + {$EXTERNALSYM glColor3sv} +procedure glColor3ub (red, green, blue: GLubyte); + {$EXTERNALSYM glColor3ub} +procedure glColor3ubv (v: PGLubyte); + {$EXTERNALSYM glColor3ubv} +procedure glColor3ui (red, green, blue: GLuint); + {$EXTERNALSYM glColor3ui} +procedure glColor3uiv (v: PGLuint); + {$EXTERNALSYM glColor3uiv} +procedure glColor3us (red, green, blue: GLushort); + {$EXTERNALSYM glColor3us} +procedure glColor3usv (v: PGLushort); + {$EXTERNALSYM glColor3usv} +procedure glColor4b (red, green, blue, alpha: GLbyte); + {$EXTERNALSYM glColor4b} +procedure glColor4bv (v: PGLbyte); + {$EXTERNALSYM glColor4bv} +procedure glColor4d (red, green, blue, alpha: GLdouble); + {$EXTERNALSYM glColor4d} +procedure glColor4dv (v: PGLdouble); + {$EXTERNALSYM glColor4dv} +procedure glColor4f (red, green, blue, alpha: GLfloat); + {$EXTERNALSYM glColor4f} +procedure glColor4fv (v: PGLfloat); + {$EXTERNALSYM glColor4fv} +procedure glColor4i (red, green, blue, alpha: GLint); + {$EXTERNALSYM glColor4i} +procedure glColor4iv (v: PGLint); + {$EXTERNALSYM glColor4iv} +procedure glColor4s (red, green, blue, alpha: GLshort); + {$EXTERNALSYM glColor4s} +procedure glColor4sv (v: PGLshort); + {$EXTERNALSYM glColor4sv} +procedure glColor4ub (red, green, blue, alpha: GLubyte); + {$EXTERNALSYM glColor4ub} +procedure glColor4ubv (v: PGLubyte); + {$EXTERNALSYM glColor4ubv} +procedure glColor4ui (red, green, blue, alpha: GLuint); + {$EXTERNALSYM glColor4ui} +procedure glColor4uiv (v: PGLuint); + {$EXTERNALSYM glColor4uiv} +procedure glColor4us (red, green, blue, alpha: GLushort); + {$EXTERNALSYM glColor4us} +procedure glColor4usv (v: PGLushort); + {$EXTERNALSYM glColor4usv} +procedure glColor(red, green, blue: GLbyte); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue: GLdouble); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue: GLfloat); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue: GLint); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue: GLshort); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue: GLubyte); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue: GLuint); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue: GLushort); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue, alpha: GLbyte); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue, alpha: GLdouble); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue, alpha: GLfloat); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue, alpha: GLint); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue, alpha: GLshort); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue, alpha: GLubyte); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue, alpha: GLuint); overload; + {$EXTERNALSYM glColor} +procedure glColor(red, green, blue, alpha: GLushort); overload; + {$EXTERNALSYM glColor} +procedure glColor3(v: PGLbyte); overload; + {$EXTERNALSYM glColor3} +procedure glColor3(v: PGLdouble); overload; + {$EXTERNALSYM glColor3} +procedure glColor3(v: PGLfloat); overload; + {$EXTERNALSYM glColor3} +procedure glColor3(v: PGLint); overload; + {$EXTERNALSYM glColor3} +procedure glColor3(v: PGLshort); overload; + {$EXTERNALSYM glColor3} +procedure glColor3(v: PGLubyte); overload; + {$EXTERNALSYM glColor3} +procedure glColor3(v: PGLuint); overload; + {$EXTERNALSYM glColor3} +procedure glColor3(v: PGLushort); overload; + {$EXTERNALSYM glColor3} +procedure glColor4(v: PGLbyte); overload; + {$EXTERNALSYM glColor4} +procedure glColor4(v: PGLdouble); overload; + {$EXTERNALSYM glColor4} +procedure glColor4(v: PGLfloat); overload; + {$EXTERNALSYM glColor4} +procedure glColor4(v: PGLint); overload; + {$EXTERNALSYM glColor4} +procedure glColor4(v: PGLshort); overload; + {$EXTERNALSYM glColor4} +procedure glColor4(v: PGLubyte); overload; + {$EXTERNALSYM glColor4} +procedure glColor4(v: PGLuint); overload; + {$EXTERNALSYM glColor4} +procedure glColor4(v: PGLushort); overload; + {$EXTERNALSYM glColor4} + +procedure glColorMask (red, green, blue, alpha: GLboolean); + {$EXTERNALSYM glColorMask} +procedure glColorMaterial (face, mode: GLenum); + {$EXTERNALSYM glColorMaterial} +procedure glCopyPixels (x,y: GLint; width, height: GLsizei; pixeltype: GLenum); + {$EXTERNALSYM glCopyPixels} +procedure glCullFace (mode: GLenum); + {$EXTERNALSYM glCullFace} +procedure glDeleteLists (list: GLuint; range: GLsizei); + {$EXTERNALSYM glDeleteLists} +procedure glDepthFunc (func: GLenum); + {$EXTERNALSYM glDepthFunc} +procedure glDepthMask (flag: GLboolean); + {$EXTERNALSYM glDepthMask} +procedure glDepthRange (zNear, zFar: GLclampd); + {$EXTERNALSYM glDepthRange} +procedure glDisable (cap: GLenum); + {$EXTERNALSYM glDisable} +procedure glDrawBuffer (mode: GLenum); + {$EXTERNALSYM glDrawBuffer} +procedure glDrawPixels (width, height: GLsizei; format, pixeltype: GLenum; + pixels: Pointer); + {$EXTERNALSYM glDrawPixels} +procedure glEdgeFlag (flag: GLboolean); + {$EXTERNALSYM glEdgeFlag} +procedure glEdgeFlagv (flag: PGLboolean); + {$EXTERNALSYM glEdgeFlagv} +procedure glEnable (cap: GLenum); + {$EXTERNALSYM glEnable} +procedure glEnd; + {$EXTERNALSYM glEnd} +procedure glEndList; + {$EXTERNALSYM glEndList} + +procedure glEvalCoord1d (u: GLdouble); + {$EXTERNALSYM glEvalCoord1d} +procedure glEvalCoord1dv (u: PGLdouble); + {$EXTERNALSYM glEvalCoord1dv} +procedure glEvalCoord1f (u: GLfloat); + {$EXTERNALSYM glEvalCoord1f} +procedure glEvalCoord1fv (u: PGLfloat); + {$EXTERNALSYM glEvalCoord1fv} +procedure glEvalCoord2d (u,v: GLdouble); + {$EXTERNALSYM glEvalCoord2d} +procedure glEvalCoord2dv (u: PGLdouble); + {$EXTERNALSYM glEvalCoord2dv} +procedure glEvalCoord2f (u,v: GLfloat); + {$EXTERNALSYM glEvalCoord2f} +procedure glEvalCoord2fv (u: PGLfloat); + {$EXTERNALSYM glEvalCoord2fv} +procedure glEvalCoord(u: GLdouble); overload; + {$EXTERNALSYM glEvalCoord} +procedure glEvalCoord(u: GLfloat); overload; + {$EXTERNALSYM glEvalCoord} +procedure glEvalCoord(u,v: GLdouble); overload; + {$EXTERNALSYM glEvalCoord} +procedure glEvalCoord(u,v: GLfloat); overload; + {$EXTERNALSYM glEvalCoord} +procedure glEvalCoord1(v: PGLdouble); overload; + {$EXTERNALSYM glEvalCoord1} +procedure glEvalCoord1(v: PGLfloat); overload; + {$EXTERNALSYM glEvalCoord1} +procedure glEvalCoord2(v: PGLdouble); overload; + {$EXTERNALSYM glEvalCoord2} +procedure glEvalCoord2(v: PGLfloat); overload; + {$EXTERNALSYM glEvalCoord2} + +procedure glEvalMesh1 (mode: GLenum; i1, i2: GLint); + {$EXTERNALSYM glEvalMesh1} +procedure glEvalMesh2 (mode: GLenum; i1, i2, j1, j2: GLint); + {$EXTERNALSYM glEvalMesh2} +procedure glEvalMesh(mode: GLenum; i1, i2: GLint); overload; + {$EXTERNALSYM glEvalMesh} +procedure glEvalMesh(mode: GLenum; i1, i2, j1, j2: GLint); overload; + {$EXTERNALSYM glEvalMesh} + +procedure glEvalPoint1 (i: GLint); + {$EXTERNALSYM glEvalPoint1} +procedure glEvalPoint2 (i,j: GLint); + {$EXTERNALSYM glEvalPoint2} +procedure glEvalPoint(i: GLint); overload; + {$EXTERNALSYM glEvalPoint} +procedure glEvalPoint(i,j: GLint); overload; + {$EXTERNALSYM glEvalPoint} + +procedure glFeedbackBuffer (size: GLsizei; buftype: GLenum; buffer: PGLFloat); + {$EXTERNALSYM glFeedbackBuffer} +procedure glFinish; + {$EXTERNALSYM glFinish} +procedure glFlush; + {$EXTERNALSYM glFlush} + +procedure glFogf (pname: GLenum; param: GLfloat); + {$EXTERNALSYM glFogf} +procedure glFogfv (pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glFogfv} +procedure glFogi (pname: GLenum; param: GLint); + {$EXTERNALSYM glFogi} +procedure glFogiv (pname: GLenum; prms: PGLint); + {$EXTERNALSYM glFogiv} +procedure glFog(pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glFog} +procedure glFog(pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glFog} +procedure glFog(pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glFog} +procedure glFog(pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glFog} + +procedure glFrontFace (mode: GLenum); + {$EXTERNALSYM glFrontFace} +procedure glFrustum (left, right, bottom, top, zNear, zFar: GLdouble); + {$EXTERNALSYM glFrustum} +function glGenLists (range: GLsizei): GLuint; + {$EXTERNALSYM glGenLists} +procedure glGetBooleanv (pname: GLenum; prms: PGLboolean); + {$EXTERNALSYM glGetBooleanv} +procedure glGetClipPlane (plane: GLenum; equation: PGLdouble); + {$EXTERNALSYM glGetClipPlane} +procedure glGetDoublev (pname: GLenum; prms: PGLdouble); + {$EXTERNALSYM glGetDoublev} +function glGetError: GLenum; + {$EXTERNALSYM glGetError} +procedure glGetFloatv (pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glGetFloatv} +procedure glGetIntegerv (pname: GLenum; prms: PGLint); + {$EXTERNALSYM glGetIntegerv} + +procedure glGetLightfv (light: GLenum; pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glGetLightfv} +procedure glGetLightiv (light: GLenum; pname: GLenum; prms: PGLint); + {$EXTERNALSYM glGetLightiv} +procedure glGetLight(light: GLenum; pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glGetLight} +procedure glGetLight(light: GLenum; pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glGetLight} + +procedure glGetMapdv (target: GLenum; query: GLenum; v: PGLdouble); + {$EXTERNALSYM glGetMapdv} +procedure glGetMapfv (target: GLenum; query: GLenum; v: PGLfloat); + {$EXTERNALSYM glGetMapfv} +procedure glGetMapiv (target: GLenum; query: GLenum; v: PGLint); + {$EXTERNALSYM glGetMapiv} +procedure glGetMap(target: GLenum; query: GLenum; v: PGLdouble); overload; + {$EXTERNALSYM glGetMap} +procedure glGetMap(target: GLenum; query: GLenum; v: PGLfloat); overload; + {$EXTERNALSYM glGetMap} +procedure glGetMap(target: GLenum; query: GLenum; v: PGLint); overload; + {$EXTERNALSYM glGetMap} + +procedure glGetMaterialfv (face: GLenum; pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glGetMaterialfv} +procedure glGetMaterialiv (face: GLenum; pname: GLenum; prms: PGLint); + {$EXTERNALSYM glGetMaterialiv} +procedure glGetMaterial(face: GLenum; pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glGetMaterial} +procedure glGetMaterial(face: GLenum; pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glGetMaterial} + +procedure glGetPixelMapfv (map: GLenum; values: PGLfloat); + {$EXTERNALSYM glGetPixelMapfv} +procedure glGetPixelMapuiv (map: GLenum; values: PGLuint); + {$EXTERNALSYM glGetPixelMapuiv} +procedure glGetPixelMapusv (map: GLenum; values: PGLushort); + {$EXTERNALSYM glGetPixelMapusv} +procedure glGetPixelMap(map: GLenum; values: PGLfloat); overload; + {$EXTERNALSYM glGetPixelMap} +procedure glGetPixelMap(map: GLenum; values: PGLuint); overload; + {$EXTERNALSYM glGetPixelMap} +procedure glGetPixelMap(map: GLenum; values: PGLushort); overload; + {$EXTERNALSYM glGetPixelMap} + +procedure glGetPolygonStipple (var mask: GLubyte); + {$EXTERNALSYM glGetPolygonStipple} +function glGetString (name: GLenum): PChar; + {$EXTERNALSYM glGetString} + +procedure glGetTexEnvfv (target: GLenum; pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glGetTexEnvfv} +procedure glGetTexEnviv (target: GLenum; pname: GLenum; prms: PGLint); + {$EXTERNALSYM glGetTexEnviv} +procedure glGetTexEnv(target: GLenum; pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glGetTexEnv} +procedure glGetTexEnv(target: GLenum; pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glGetTexEnv} + +procedure glGetTexGendv (coord: GLenum; pname: GLenum; prms: PGLdouble); + {$EXTERNALSYM glGetTexGendv} +procedure glGetTexGenfv (coord: GLenum; pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glGetTexGenfv} +procedure glGetTexGeniv (coord: GLenum; pname: GLenum; prms: PGLint); + {$EXTERNALSYM glGetTexGeniv} +procedure glGetTexGen(coord: GLenum; pname: GLenum; prms: PGLdouble); overload; + {$EXTERNALSYM glGetTexGen} +procedure glGetTexGen(coord: GLenum; pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glGetTexGen} +procedure glGetTexGen(coord: GLenum; pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glGetTexGen} + +procedure glGetTexImage (target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: pointer); + {$EXTERNALSYM glGetTexImage} + +procedure glGetTexLevelParameterfv (target: GLenum; level: GLint; pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glGetTexLevelParameterfv} +procedure glGetTexLevelParameteriv (target: GLenum; level: GLint; pname: GLenum; prms: PGLint); + {$EXTERNALSYM glGetTexLevelParameteriv} +procedure glGetTexLevelParameter(target: GLenum; level: GLint; pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glGetTexLevelParameter} +procedure glGetTexLevelParameter(target: GLenum; level: GLint; pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glGetTexLevelParameter} + +procedure glGetTexParameterfv (target, pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glGetTexParameterfv} +procedure glGetTexParameteriv (target, pname: GLenum; prms: PGLint); + {$EXTERNALSYM glGetTexParameteriv} +procedure glGetTexParameter(target, pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glGetTexParameter} +procedure glGetTexParameter(target, pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glGetTexParameter} + +procedure glHint (target, mode: GLenum); + {$EXTERNALSYM glHint} +procedure glIndexMask (mask: GLuint); + {$EXTERNALSYM glIndexMask} + +procedure glIndexd (c: GLdouble); + {$EXTERNALSYM glIndexd} +procedure glIndexdv (c: PGLdouble); + {$EXTERNALSYM glIndexdv} +procedure glIndexf (c: GLfloat); + {$EXTERNALSYM glIndexf} +procedure glIndexfv (c: PGLfloat); + {$EXTERNALSYM glIndexfv} +procedure glIndexi (c: GLint); + {$EXTERNALSYM glIndexi} +procedure glIndexiv (c: PGLint); + {$EXTERNALSYM glIndexiv} +procedure glIndexs (c: GLshort); + {$EXTERNALSYM glIndexs} +procedure glIndexsv (c: PGLshort); + {$EXTERNALSYM glIndexsv} +procedure glIndex(c: GLdouble); overload; + {$EXTERNALSYM glIndex} +procedure glIndex(c: PGLdouble); overload; + {$EXTERNALSYM glIndex} +procedure glIndex(c: GLfloat); overload; + {$EXTERNALSYM glIndex} +procedure glIndex(c: PGLfloat); overload; + {$EXTERNALSYM glIndex} +procedure glIndex(c: GLint); overload; + {$EXTERNALSYM glIndex} +procedure glIndex(c: PGLint); overload; + {$EXTERNALSYM glIndex} +procedure glIndex(c: GLshort); overload; + {$EXTERNALSYM glIndex} +procedure glIndex(c: PGLshort); overload; + {$EXTERNALSYM glIndex} + +procedure glInitNames; + {$EXTERNALSYM glInitNames} +function glIsEnabled (cap: GLenum): GLBoolean; + {$EXTERNALSYM glIsEnabled} +function glIsList (list: GLuint): GLBoolean; + {$EXTERNALSYM glIsList} + +procedure glLightModelf (pname: GLenum; param: GLfloat); + {$EXTERNALSYM glLightModelf} +procedure glLightModelfv (pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glLightModelfv} +procedure glLightModeli (pname: GLenum; param: GLint); + {$EXTERNALSYM glLightModeli} +procedure glLightModeliv (pname: GLenum; prms: PGLint); + {$EXTERNALSYM glLightModeliv} +procedure glLightModel(pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glLightModel} +procedure glLightModel(pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glLightModel} +procedure glLightModel(pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glLightModel} +procedure glLightModel(pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glLightModel} + +procedure glLightf (light, pname: GLenum; param: GLfloat); + {$EXTERNALSYM glLightf} +procedure glLightfv (light, pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glLightfv} +procedure glLighti (light, pname: GLenum; param: GLint); + {$EXTERNALSYM glLighti} +procedure glLightiv (light, pname: GLenum; prms: PGLint); + {$EXTERNALSYM glLightiv} +procedure glLight(light, pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glLight} +procedure glLight(light, pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glLight} +procedure glLight(light, pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glLight} +procedure glLight(light, pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glLight} + +procedure glLineStipple (factor: GLint; pattern: GLushort); + {$EXTERNALSYM glLineStipple} +procedure glLineWidth (width: GLfloat); + {$EXTERNALSYM glLineWidth} +procedure glListBase (base: GLuint); + {$EXTERNALSYM glListBase} +procedure glLoadIdentity; + {$EXTERNALSYM glLoadIdentity} + +procedure glLoadMatrixd (m: PGLdouble); + {$EXTERNALSYM glLoadMatrixd} +procedure glLoadMatrixf (m: PGLfloat); + {$EXTERNALSYM glLoadMatrixf} +procedure glLoadMatrix(m: PGLdouble); overload; + {$EXTERNALSYM glLoadMatrix} +procedure glLoadMatrix(m: PGLfloat); overload; + {$EXTERNALSYM glLoadMatrix} + +procedure glLoadName (name: GLuint); + {$EXTERNALSYM glLoadName} +procedure glLogicOp (opcode: GLenum); + {$EXTERNALSYM glLogicOp} + +procedure glMap1d (target: GLenum; u1,u2: GLdouble; stride, order: GLint; + Points: PGLdouble); + {$EXTERNALSYM glMap1d} +procedure glMap1f (target: GLenum; u1,u2: GLfloat; stride, order: GLint; + Points: PGLfloat); + {$EXTERNALSYM glMap1f} +procedure glMap2d (target: GLenum; + u1,u2: GLdouble; ustride, uorder: GLint; + v1,v2: GLdouble; vstride, vorder: GLint; Points: PGLdouble); + {$EXTERNALSYM glMap2d} +procedure glMap2f (target: GLenum; + u1,u2: GLfloat; ustride, uorder: GLint; + v1,v2: GLfloat; vstride, vorder: GLint; Points: PGLfloat); + {$EXTERNALSYM glMap2f} +procedure glMap(target: GLenum; u1,u2: GLdouble; stride, order: GLint; + Points: PGLdouble); overload; + {$EXTERNALSYM glMap} +procedure glMap(target: GLenum; u1,u2: GLfloat; stride, order: GLint; + Points: PGLfloat); overload; + {$EXTERNALSYM glMap} +procedure glMap(target: GLenum; + u1,u2: GLdouble; ustride, uorder: GLint; + v1,v2: GLdouble; vstride, vorder: GLint; Points: PGLdouble); overload; + {$EXTERNALSYM glMap} +procedure glMap(target: GLenum; + u1,u2: GLfloat; ustride, uorder: GLint; + v1,v2: GLfloat; vstride, vorder: GLint; Points: PGLfloat); overload; + {$EXTERNALSYM glMap} + +procedure glMapGrid1d (un: GLint; u1, u2: GLdouble); + {$EXTERNALSYM glMapGrid1d} +procedure glMapGrid1f (un: GLint; u1, u2: GLfloat); + {$EXTERNALSYM glMapGrid1f} +procedure glMapGrid2d (un: GLint; u1, u2: GLdouble; + vn: GLint; v1, v2: GLdouble); + {$EXTERNALSYM glMapGrid2d} +procedure glMapGrid2f (un: GLint; u1, u2: GLfloat; + vn: GLint; v1, v2: GLfloat); + {$EXTERNALSYM glMapGrid2f} +procedure glMapGrid(un: GLint; u1, u2: GLdouble); overload; + {$EXTERNALSYM glMapGrid} +procedure glMapGrid(un: GLint; u1, u2: GLfloat); overload; + {$EXTERNALSYM glMapGrid} +procedure glMapGrid(un: GLint; u1, u2: GLdouble; + vn: GLint; v1, v2: GLdouble); overload; + {$EXTERNALSYM glMapGrid} +procedure glMapGrid(un: GLint; u1, u2: GLfloat; + vn: GLint; v1, v2: GLfloat); overload; + {$EXTERNALSYM glMapGrid} + +procedure glMaterialf (face, pname: GLenum; param: GLfloat); + {$EXTERNALSYM glMaterialf} +procedure glMaterialfv (face, pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glMaterialfv} +procedure glMateriali (face, pname: GLenum; param: GLint); + {$EXTERNALSYM glMateriali} +procedure glMaterialiv (face, pname: GLenum; prms: PGLint); + {$EXTERNALSYM glMaterialiv} +procedure glMaterial(face, pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glMaterial} +procedure glMaterial(face, pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glMaterial} +procedure glMaterial(face, pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glMaterial} +procedure glMaterial(face, pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glMaterial} + +procedure glMatrixMode (mode: GLenum); + {$EXTERNALSYM glMatrixMode} + +procedure glMultMatrixd (m: PGLdouble); + {$EXTERNALSYM glMultMatrixd} +procedure glMultMatrixf (m: PGLfloat); + {$EXTERNALSYM glMultMatrixf} +procedure glMultMatrix(m: PGLdouble); overload; + {$EXTERNALSYM glMultMatrix} +procedure glMultMatrix(m: PGLfloat); overload; + {$EXTERNALSYM glMultMatrix} + +procedure glNewList (ListIndex: GLuint; mode: GLenum); + {$EXTERNALSYM glNewList} + +procedure glNormal3b (nx, ny, nz: GLbyte); + {$EXTERNALSYM glNormal3b} +procedure glNormal3bv (v: PGLbyte); + {$EXTERNALSYM glNormal3bv} +procedure glNormal3d (nx, ny, nz: GLdouble); + {$EXTERNALSYM glNormal3d} +procedure glNormal3dv (v: PGLdouble); + {$EXTERNALSYM glNormal3dv} +procedure glNormal3f (nx, ny, nz: GLFloat); + {$EXTERNALSYM glNormal3f} +procedure glNormal3fv (v: PGLfloat); + {$EXTERNALSYM glNormal3fv} +procedure glNormal3i (nx, ny, nz: GLint); + {$EXTERNALSYM glNormal3i} +procedure glNormal3iv (v: PGLint); + {$EXTERNALSYM glNormal3iv} +procedure glNormal3s (nx, ny, nz: GLshort); + {$EXTERNALSYM glNormal3s} +procedure glNormal3sv (v: PGLshort); + {$EXTERNALSYM glNormal3sv} +procedure glNormal(nx, ny, nz: GLbyte); overload; + {$EXTERNALSYM glNormal} +procedure glNormal3(v: PGLbyte); overload; + {$EXTERNALSYM glNormal3} +procedure glNormal(nx, ny, nz: GLdouble); overload; + {$EXTERNALSYM glNormal} +procedure glNormal3(v: PGLdouble); overload; + {$EXTERNALSYM glNormal3} +procedure glNormal(nx, ny, nz: GLFloat); overload; + {$EXTERNALSYM glNormal} +procedure glNormal3(v: PGLfloat); overload; + {$EXTERNALSYM glNormal3} +procedure glNormal(nx, ny, nz: GLint); overload; + {$EXTERNALSYM glNormal} +procedure glNormal3(v: PGLint); overload; + {$EXTERNALSYM glNormal3} +procedure glNormal(nx, ny, nz: GLshort); overload; + {$EXTERNALSYM glNormal} +procedure glNormal3(v: PGLshort); overload; + {$EXTERNALSYM glNormal3} + +procedure glOrtho (left, right, bottom, top, zNear, zFar: GLdouble); + {$EXTERNALSYM glOrtho} +procedure glPassThrough (token: GLfloat); + {$EXTERNALSYM glPassThrough} + +procedure glPixelMapfv (map: GLenum; mapsize: GLint; values: PGLfloat); + {$EXTERNALSYM glPixelMapfv} +procedure glPixelMapuiv (map: GLenum; mapsize: GLint; values: PGLuint); + {$EXTERNALSYM glPixelMapuiv} +procedure glPixelMapusv (map: GLenum; mapsize: GLint; values: PGLushort); + {$EXTERNALSYM glPixelMapusv} +procedure glPixelMap(map: GLenum; mapsize: GLint; values: PGLfloat); overload; + {$EXTERNALSYM glPixelMap} +procedure glPixelMap(map: GLenum; mapsize: GLint; values: PGLuint); overload; + {$EXTERNALSYM glPixelMap} +procedure glPixelMap(map: GLenum; mapsize: GLint; values: PGLushort); overload; + {$EXTERNALSYM glPixelMap} + +procedure glPixelStoref (pname: GLenum; param: GLfloat); + {$EXTERNALSYM glPixelStoref} +procedure glPixelStorei (pname: GLenum; param: GLint); + {$EXTERNALSYM glPixelStorei} +procedure glPixelStore(pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glPixelStore} +procedure glPixelStore(pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glPixelStore} + +procedure glPixelTransferf (pname: GLenum; param: GLfloat); + {$EXTERNALSYM glPixelTransferf} +procedure glPixelTransferi (pname: GLenum; param: GLint); + {$EXTERNALSYM glPixelTransferi} +procedure glPixelTransfer(pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glPixelTransfer} +procedure glPixelTransfer(pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glPixelTransfer} + +procedure glPixelZoom (xfactor, yfactor: GLfloat); + {$EXTERNALSYM glPixelZoom} +procedure glPointSize (size: GLfloat); + {$EXTERNALSYM glPointSize} +procedure glPolygonMode (face, mode: GLenum); + {$EXTERNALSYM glPolygonMode} +procedure glPolygonStipple (mask: PGLubyte); + {$EXTERNALSYM glPolygonStipple} +procedure glPopAttrib; + {$EXTERNALSYM glPopAttrib} +procedure glPopMatrix; + {$EXTERNALSYM glPopMatrix} +procedure glPopName; + {$EXTERNALSYM glPopName} +procedure glPushAttrib(mask: GLbitfield); + {$EXTERNALSYM glPushAttrib} +procedure glPushMatrix; + {$EXTERNALSYM glPushMatrix} +procedure glPushName(name: GLuint); + {$EXTERNALSYM glPushName} + +procedure glRasterPos2d (x,y: GLdouble); + {$EXTERNALSYM glRasterPos2d} +procedure glRasterPos2dv (v: PGLdouble); + {$EXTERNALSYM glRasterPos2dv} +procedure glRasterPos2f (x,y: GLfloat); + {$EXTERNALSYM glRasterPos2f} +procedure glRasterPos2fv (v: PGLfloat); + {$EXTERNALSYM glRasterPos2fv} +procedure glRasterPos2i (x,y: GLint); + {$EXTERNALSYM glRasterPos2i} +procedure glRasterPos2iv (v: PGLint); + {$EXTERNALSYM glRasterPos2iv} +procedure glRasterPos2s (x,y: GLshort); + {$EXTERNALSYM glRasterPos2s} +procedure glRasterPos2sv (v: PGLshort); + {$EXTERNALSYM glRasterPos2sv} +procedure glRasterPos3d (x,y,z: GLdouble); + {$EXTERNALSYM glRasterPos3d} +procedure glRasterPos3dv (v: PGLdouble); + {$EXTERNALSYM glRasterPos3dv} +procedure glRasterPos3f (x,y,z: GLfloat); + {$EXTERNALSYM glRasterPos3f} +procedure glRasterPos3fv (v: PGLfloat); + {$EXTERNALSYM glRasterPos3fv} +procedure glRasterPos3i (x,y,z: GLint); + {$EXTERNALSYM glRasterPos3i} +procedure glRasterPos3iv (v: PGLint); + {$EXTERNALSYM glRasterPos3iv} +procedure glRasterPos3s (x,y,z: GLshort); + {$EXTERNALSYM glRasterPos3s} +procedure glRasterPos3sv (v: PGLshort); + {$EXTERNALSYM glRasterPos3sv} +procedure glRasterPos4d (x,y,z,w: GLdouble); + {$EXTERNALSYM glRasterPos4d} +procedure glRasterPos4dv (v: PGLdouble); + {$EXTERNALSYM glRasterPos4dv} +procedure glRasterPos4f (x,y,z,w: GLfloat); + {$EXTERNALSYM glRasterPos4f} +procedure glRasterPos4fv (v: PGLfloat); + {$EXTERNALSYM glRasterPos4fv} +procedure glRasterPos4i (x,y,z,w: GLint); + {$EXTERNALSYM glRasterPos4i} +procedure glRasterPos4iv (v: PGLint); + {$EXTERNALSYM glRasterPos4iv} +procedure glRasterPos4s (x,y,z,w: GLshort); + {$EXTERNALSYM glRasterPos4s} +procedure glRasterPos4sv (v: PGLshort); + {$EXTERNALSYM glRasterPos4sv} +procedure glRasterPos(x,y: GLdouble); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos2(v: PGLdouble); overload; + {$EXTERNALSYM glRasterPos2} +procedure glRasterPos(x,y: GLfloat); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos2(v: PGLfloat); overload; + {$EXTERNALSYM glRasterPos2} +procedure glRasterPos(x,y: GLint); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos2(v: PGLint); overload; + {$EXTERNALSYM glRasterPos2} +procedure glRasterPos(x,y: GLshort); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos2(v: PGLshort); overload; + {$EXTERNALSYM glRasterPos2} +procedure glRasterPos(x,y,z: GLdouble); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos3(v: PGLdouble); overload; + {$EXTERNALSYM glRasterPos3} +procedure glRasterPos(x,y,z: GLfloat); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos3(v: PGLfloat); overload; + {$EXTERNALSYM glRasterPos3} +procedure glRasterPos(x,y,z: GLint); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos3(v: PGLint); overload; + {$EXTERNALSYM glRasterPos3} +procedure glRasterPos(x,y,z: GLshort); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos3(v: PGLshort); overload; + {$EXTERNALSYM glRasterPos3} +procedure glRasterPos(x,y,z,w: GLdouble); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos4(v: PGLdouble); overload; + {$EXTERNALSYM glRasterPos4} +procedure glRasterPos(x,y,z,w: GLfloat); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos4(v: PGLfloat); overload; + {$EXTERNALSYM glRasterPos4} +procedure glRasterPos(x,y,z,w: GLint); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos4(v: PGLint); overload; + {$EXTERNALSYM glRasterPos4} +procedure glRasterPos(x,y,z,w: GLshort); overload; + {$EXTERNALSYM glRasterPos} +procedure glRasterPos4(v: PGLshort); overload; + {$EXTERNALSYM glRasterPos4} + +procedure glReadBuffer (mode: GLenum); + {$EXTERNALSYM glReadBuffer} +procedure glReadPixels (x,y: GLint; width, height: GLsizei; + format, _type: GLenum; pixels: Pointer); + {$EXTERNALSYM glReadPixels} + +procedure glRectd (x1, y1, x2, y2: GLdouble); + {$EXTERNALSYM glRectd} +procedure glRectdv (v1, v2: PGLdouble); + {$EXTERNALSYM glRectdv} +procedure glRectf (x1, y1, x2, y2: GLfloat); + {$EXTERNALSYM glRectf} +procedure glRectfv (v1, v2: PGLfloat); + {$EXTERNALSYM glRectfv} +procedure glRecti (x1, y1, x2, y2: GLint); + {$EXTERNALSYM glRecti} +procedure glRectiv (v1, v2: PGLint); + {$EXTERNALSYM glRectiv} +procedure glRects (x1, y1, x2, y2: GLshort); + {$EXTERNALSYM glRects} +procedure glRectsv (v1, v2: PGLshort); + {$EXTERNALSYM glRectsv} +procedure glRect(x1, y1, x2, y2: GLdouble); overload; + {$EXTERNALSYM glRect} +procedure glRect(v1, v2: PGLdouble); overload; + {$EXTERNALSYM glRect} +procedure glRect(x1, y1, x2, y2: GLfloat); overload; + {$EXTERNALSYM glRect} +procedure glRect(v1, v2: PGLfloat); overload; + {$EXTERNALSYM glRect} +procedure glRect(x1, y1, x2, y2: GLint); overload; + {$EXTERNALSYM glRect} +procedure glRect(v1, v2: PGLint); overload; + {$EXTERNALSYM glRect} +procedure glRect(x1, y1, x2, y2: GLshort); overload; + {$EXTERNALSYM glRect} +procedure glRect(v1, v2: PGLshort); overload; + {$EXTERNALSYM glRect} + +function glRenderMode (mode: GLenum): GLint; + {$EXTERNALSYM glRenderMode} + +procedure glRotated (angle, x,y,z: GLdouble); + {$EXTERNALSYM glRotated} +procedure glRotatef (angle, x,y,z: GLfloat); + {$EXTERNALSYM glRotatef} +procedure glRotate(angle, x,y,z: GLdouble); overload; + {$EXTERNALSYM glRotate} +procedure glRotate(angle, x,y,z: GLfloat); overload; + {$EXTERNALSYM glRotate} + +procedure glScaled (x,y,z: GLdouble); + {$EXTERNALSYM glScaled} +procedure glScalef (x,y,z: GLfloat); + {$EXTERNALSYM glScalef} +procedure glScale(x,y,z: GLdouble); overload; + {$EXTERNALSYM glScale} +procedure glScale(x,y,z: GLfloat); overload; + {$EXTERNALSYM glScale} + +procedure glScissor (x,y: GLint; width, height: GLsizei); + {$EXTERNALSYM glScissor} +procedure glSelectBuffer (size: GLsizei; buffer: PGLuint); + {$EXTERNALSYM glSelectBuffer} +procedure glShadeModel (mode: GLenum); + {$EXTERNALSYM glShadeModel} +procedure glStencilFunc (func: GLenum; ref: GLint; mask: GLuint); + {$EXTERNALSYM glStencilFunc} +procedure glStencilMask (mask: GLuint); + {$EXTERNALSYM glStencilMask} +procedure glStencilOp (fail, zfail, zpass: GLenum); + {$EXTERNALSYM glStencilOp} + +procedure glTexCoord1d (s: GLdouble); + {$EXTERNALSYM glTexCoord1d} +procedure glTexCoord1dv (v: PGLdouble); + {$EXTERNALSYM glTexCoord1dv} +procedure glTexCoord1f (s: GLfloat); + {$EXTERNALSYM glTexCoord1f} +procedure glTexCoord1fv (v: PGLfloat); + {$EXTERNALSYM glTexCoord1fv} +procedure glTexCoord1i (s: GLint); + {$EXTERNALSYM glTexCoord1i} +procedure glTexCoord1iv (v: PGLint); + {$EXTERNALSYM glTexCoord1iv} +procedure glTexCoord1s (s: GLshort); + {$EXTERNALSYM glTexCoord1s} +procedure glTexCoord1sv (v: PGLshort); + {$EXTERNALSYM glTexCoord1sv} +procedure glTexCoord2d (s,t: GLdouble); + {$EXTERNALSYM glTexCoord2d} +procedure glTexCoord2dv (v: PGLdouble); + {$EXTERNALSYM glTexCoord2dv} +procedure glTexCoord2f (s,t: GLfloat); + {$EXTERNALSYM glTexCoord2f} +procedure glTexCoord2fv (v: PGLfloat); + {$EXTERNALSYM glTexCoord2fv} +procedure glTexCoord2i (s,t: GLint); + {$EXTERNALSYM glTexCoord2i} +procedure glTexCoord2iv (v: PGLint); + {$EXTERNALSYM glTexCoord2iv} +procedure glTexCoord2s (s,t: GLshort); + {$EXTERNALSYM glTexCoord2s} +procedure glTexCoord2sv (v: PGLshort); + {$EXTERNALSYM glTexCoord2sv} +procedure glTexCoord3d (s,t,r: GLdouble); + {$EXTERNALSYM glTexCoord3d} +procedure glTexCoord3dv (v: PGLdouble); + {$EXTERNALSYM glTexCoord3dv} +procedure glTexCoord3f (s,t,r: GLfloat); + {$EXTERNALSYM glTexCoord3f} +procedure glTexCoord3fv (v: PGLfloat); + {$EXTERNALSYM glTexCoord3fv} +procedure glTexCoord3i (s,t,r: GLint); + {$EXTERNALSYM glTexCoord3i} +procedure glTexCoord3iv (v: PGLint); + {$EXTERNALSYM glTexCoord3iv} +procedure glTexCoord3s (s,t,r: GLshort); + {$EXTERNALSYM glTexCoord3s} +procedure glTexCoord3sv (v: PGLshort); + {$EXTERNALSYM glTexCoord3sv} +procedure glTexCoord4d (s,t,r,q: GLdouble); + {$EXTERNALSYM glTexCoord4d} +procedure glTexCoord4dv (v: PGLdouble); + {$EXTERNALSYM glTexCoord4dv} +procedure glTexCoord4f (s,t,r,q: GLfloat); + {$EXTERNALSYM glTexCoord4f} +procedure glTexCoord4fv (v: PGLfloat); + {$EXTERNALSYM glTexCoord4fv} +procedure glTexCoord4i (s,t,r,q: GLint); + {$EXTERNALSYM glTexCoord4i} +procedure glTexCoord4iv (v: PGLint); + {$EXTERNALSYM glTexCoord4iv} +procedure glTexCoord4s (s,t,r,q: GLshort); + {$EXTERNALSYM glTexCoord4s} +procedure glTexCoord4sv (v: PGLshort); + {$EXTERNALSYM glTexCoord4sv} +procedure glTexCoord(s: GLdouble); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord1(v: PGLdouble); overload; + {$EXTERNALSYM glTexCoord1} +procedure glTexCoord(s: GLfloat); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord1(v: PGLfloat); overload; + {$EXTERNALSYM glTexCoord1} +procedure glTexCoord(s: GLint); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord1(v: PGLint); overload; + {$EXTERNALSYM glTexCoord1} +procedure glTexCoord(s: GLshort); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord1(v: PGLshort); overload; + {$EXTERNALSYM glTexCoord1} +procedure glTexCoord(s,t: GLdouble); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord2(v: PGLdouble); overload; + {$EXTERNALSYM glTexCoord2} +procedure glTexCoord(s,t: GLfloat); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord2(v: PGLfloat); overload; + {$EXTERNALSYM glTexCoord2} +procedure glTexCoord(s,t: GLint); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord2(v: PGLint); overload; + {$EXTERNALSYM glTexCoord2} +procedure glTexCoord(s,t: GLshort); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord2(v: PGLshort); overload; + {$EXTERNALSYM glTexCoord2} +procedure glTexCoord(s,t,r: GLdouble); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord3(v: PGLdouble); overload; + {$EXTERNALSYM glTexCoord3} +procedure glTexCoord(s,t,r: GLfloat); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord3(v: PGLfloat); overload; + {$EXTERNALSYM glTexCoord3} +procedure glTexCoord(s,t,r: GLint); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord3(v: PGLint); overload; + {$EXTERNALSYM glTexCoord3} +procedure glTexCoord(s,t,r: GLshort); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord3(v: PGLshort); overload; + {$EXTERNALSYM glTexCoord3} +procedure glTexCoord(s,t,r,q: GLdouble); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord4(v: PGLdouble); overload; + {$EXTERNALSYM glTexCoord4} +procedure glTexCoord(s,t,r,q: GLfloat); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord4(v: PGLfloat); overload; + {$EXTERNALSYM glTexCoord4} +procedure glTexCoord(s,t,r,q: GLint); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord4(v: PGLint); overload; + {$EXTERNALSYM glTexCoord4} +procedure glTexCoord(s,t,r,q: GLshort); overload; + {$EXTERNALSYM glTexCoord} +procedure glTexCoord4(v: PGLshort); overload; + {$EXTERNALSYM glTexCoord4} + +procedure glTexEnvf (target, pname: GLenum; param: GLfloat); + {$EXTERNALSYM glTexEnvf} +procedure glTexEnvfv (target, pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glTexEnvfv} +procedure glTexEnvi (target, pname: GLenum; param: GLint); + {$EXTERNALSYM glTexEnvi} +procedure glTexEnviv (target, pname: GLenum; prms: PGLint); + {$EXTERNALSYM glTexEnviv} +procedure glTexEnv(target, pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glTexEnv} +procedure glTexEnv(target, pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glTexEnv} +procedure glTexEnv(target, pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glTexEnv} +procedure glTexEnv(target, pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glTexEnv} + +procedure glTexGend (coord, pname: GLenum; param: GLdouble); + {$EXTERNALSYM glTexGend} +procedure glTexGendv (coord, pname: GLenum; prms: PGLdouble); + {$EXTERNALSYM glTexGendv} +procedure glTexGenf (coord, pname: GLenum; param: GLfloat); + {$EXTERNALSYM glTexGenf} +procedure glTexGenfv (coord, pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glTexGenfv} +procedure glTexGeni (coord, pname: GLenum; param: GLint); + {$EXTERNALSYM glTexGeni} +procedure glTexGeniv (coord, pname: GLenum; prms: PGLint); + {$EXTERNALSYM glTexGeniv} +procedure glTexGen(coord, pname: GLenum; param: GLdouble); overload; + {$EXTERNALSYM glTexGen} +procedure glTexGen(coord, pname: GLenum; prms: PGLdouble); overload; + {$EXTERNALSYM glTexGen} +procedure glTexGen(coord, pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glTexGen} +procedure glTexGen(coord, pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glTexGen} +procedure glTexGen(coord, pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glTexGen} +procedure glTexGen(coord, pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glTexGen} + +procedure glTexImage1D (target: GLenum; level, components: GLint; + width: GLsizei; border: GLint; format, _type: GLenum; pixels: Pointer); + {$EXTERNALSYM glTexImage1D} +procedure glTexImage2D (target: GLenum; level, components: GLint; + width, height: GLsizei; border: GLint; format, _type: GLenum; pixels: Pointer); + {$EXTERNALSYM glTexImage2D} + +procedure glTexParameterf (target, pname: GLenum; param: GLfloat); + {$EXTERNALSYM glTexParameterf} +procedure glTexParameterfv (target, pname: GLenum; prms: PGLfloat); + {$EXTERNALSYM glTexParameterfv} +procedure glTexParameteri (target, pname: GLenum; param: GLint); + {$EXTERNALSYM glTexParameteri} +procedure glTexParameteriv (target, pname: GLenum; prms: PGLint); + {$EXTERNALSYM glTexParameteriv} +procedure glTexParameter(target, pname: GLenum; param: GLfloat); overload; + {$EXTERNALSYM glTexParameter} +procedure glTexParameter(target, pname: GLenum; prms: PGLfloat); overload; + {$EXTERNALSYM glTexParameter} +procedure glTexParameter(target, pname: GLenum; param: GLint); overload; + {$EXTERNALSYM glTexParameter} +procedure glTexParameter(target, pname: GLenum; prms: PGLint); overload; + {$EXTERNALSYM glTexParameter} + +procedure glTranslated (x,y,z: GLdouble); + {$EXTERNALSYM glTranslated} +procedure glTranslatef (x,y,z: GLfloat); + {$EXTERNALSYM glTranslatef} +procedure glTranslate(x,y,z: GLdouble); overload; + {$EXTERNALSYM glTranslate} +procedure glTranslate(x,y,z: GLfloat); overload; + {$EXTERNALSYM glTranslate} + +procedure glVertex2d (x,y: GLdouble); + {$EXTERNALSYM glVertex2d} +procedure glVertex2dv (v: PGLdouble); + {$EXTERNALSYM glVertex2dv} +procedure glVertex2f (x,y: GLfloat); + {$EXTERNALSYM glVertex2f} +procedure glVertex2fv (v: PGLfloat); + {$EXTERNALSYM glVertex2fv} +procedure glVertex2i (x,y: GLint); + {$EXTERNALSYM glVertex2i} +procedure glVertex2iv (v: PGLint); + {$EXTERNALSYM glVertex2iv} +procedure glVertex2s (x,y: GLshort); + {$EXTERNALSYM glVertex2s} +procedure glVertex2sv (v: PGLshort); + {$EXTERNALSYM glVertex2sv} +procedure glVertex3d (x,y,z: GLdouble); + {$EXTERNALSYM glVertex3d} +procedure glVertex3dv (v: PGLdouble); + {$EXTERNALSYM glVertex3dv} +procedure glVertex3f (x,y,z: GLfloat); + {$EXTERNALSYM glVertex3f} +procedure glVertex3fv (v: PGLfloat); + {$EXTERNALSYM glVertex3fv} +procedure glVertex3i (x,y,z: GLint); + {$EXTERNALSYM glVertex3i} +procedure glVertex3iv (v: PGLint); + {$EXTERNALSYM glVertex3iv} +procedure glVertex3s (x,y,z: GLshort); + {$EXTERNALSYM glVertex3s} +procedure glVertex3sv (v: PGLshort); + {$EXTERNALSYM glVertex3sv} +procedure glVertex4d (x,y,z,w: GLdouble); + {$EXTERNALSYM glVertex4d} +procedure glVertex4dv (v: PGLdouble); + {$EXTERNALSYM glVertex4dv} +procedure glVertex4f (x,y,z,w: GLfloat); + {$EXTERNALSYM glVertex4f} +procedure glVertex4fv (v: PGLfloat); + {$EXTERNALSYM glVertex4fv} +procedure glVertex4i (x,y,z,w: GLint); + {$EXTERNALSYM glVertex4i} +procedure glVertex4iv (v: PGLint); + {$EXTERNALSYM glVertex4iv} +procedure glVertex4s (x,y,z,w: GLshort); + {$EXTERNALSYM glVertex4s} +procedure glVertex4sv (v: PGLshort); + {$EXTERNALSYM glVertex4sv} +procedure glVertex(x,y: GLdouble); overload; + {$EXTERNALSYM glVertex} +procedure glVertex2(v: PGLdouble); overload; + {$EXTERNALSYM glVertex2} +procedure glVertex(x,y: GLfloat); overload; + {$EXTERNALSYM glVertex} +procedure glVertex2(v: PGLfloat); overload; + {$EXTERNALSYM glVertex2} +procedure glVertex(x,y: GLint); overload; + {$EXTERNALSYM glVertex} +procedure glVertex2(v: PGLint); overload; + {$EXTERNALSYM glVertex2} +procedure glVertex(x,y: GLshort); overload; + {$EXTERNALSYM glVertex} +procedure glVertex2(v: PGLshort); overload; + {$EXTERNALSYM glVertex2} +procedure glVertex(x,y,z: GLdouble); overload; + {$EXTERNALSYM glVertex} +procedure glVertex3(v: PGLdouble); overload; + {$EXTERNALSYM glVertex3} +procedure glVertex(x,y,z: GLfloat); overload; + {$EXTERNALSYM glVertex} +procedure glVertex3(v: PGLfloat); overload; + {$EXTERNALSYM glVertex3} +procedure glVertex(x,y,z: GLint); overload; + {$EXTERNALSYM glVertex} +procedure glVertex3(v: PGLint); overload; + {$EXTERNALSYM glVertex3} +procedure glVertex(x,y,z: GLshort); overload; + {$EXTERNALSYM glVertex} +procedure glVertex3(v: PGLshort); overload; + {$EXTERNALSYM glVertex3} +procedure glVertex(x,y,z,w: GLdouble); overload; + {$EXTERNALSYM glVertex} +procedure glVertex4(v: PGLdouble); overload; + {$EXTERNALSYM glVertex4} +procedure glVertex(x,y,z,w: GLfloat); overload; + {$EXTERNALSYM glVertex} +procedure glVertex4(v: PGLfloat); overload; + {$EXTERNALSYM glVertex4} +procedure glVertex(x,y,z,w: GLint); overload; + {$EXTERNALSYM glVertex} +procedure glVertex4(v: PGLint); overload; + {$EXTERNALSYM glVertex4} +procedure glVertex(x,y,z,w: GLshort); overload; + {$EXTERNALSYM glVertex} +procedure glVertex4(v: PGLshort); overload; + {$EXTERNALSYM glVertex4} + +procedure glViewport (x,y: GLint; width, height: GLsizei); + {$EXTERNALSYM glViewport} + +type + +// EXT_vertex_array + PFNGLARRAYELEMENTEXTPROC = procedure (i: GLint); + {$EXTERNALSYM PFNGLARRAYELEMENTEXTPROC} + TGLARRAYELEMENTEXTPROC = PFNGLARRAYELEMENTEXTPROC; + PFNGLDRAWARRAYSEXTPROC = procedure (mode: GLenum; first: GLint; count: GLsizei); + {$EXTERNALSYM PFNGLDRAWARRAYSEXTPROC} + TGLDRAWARRAYSEXTPROC = PFNGLDRAWARRAYSEXTPROC; + PFNGLVERTEXPOINTEREXTPROC = procedure (size: GLint; type_: GLenum; + stride, count: GLsizei; P: Pointer); + {$EXTERNALSYM PFNGLVERTEXPOINTEREXTPROC} + TGLVERTEXPOINTEREXTPROC = PFNGLVERTEXPOINTEREXTPROC; + PFNGLNORMALPOINTEREXTPROC = procedure (type_: GLenum; stride, count: GLsizei; + P: Pointer); + {$EXTERNALSYM PFNGLNORMALPOINTEREXTPROC} + TGLNORMALPOINTEREXTPROC = PFNGLNORMALPOINTEREXTPROC; + PFNGLCOLORPOINTEREXTPROC = procedure (size: GLint; type_: GLenum; + stride, count: GLsizei; P: Pointer); + {$EXTERNALSYM PFNGLCOLORPOINTEREXTPROC} + TGLCOLORPOINTEREXTPROC = PFNGLCOLORPOINTEREXTPROC; + PFNGLINDEXPOINTEREXTPROC = procedure (type_: GLenum; stride, count: GLsizei; + P: Pointer); + {$EXTERNALSYM PFNGLINDEXPOINTEREXTPROC} + TGLINDEXPOINTEREXTPROC = PFNGLINDEXPOINTEREXTPROC; + PFNGLTEXCOORDPOINTEREXTPROC = procedure (size: GLint; type_: GLenum; + stride, count: GLsizei; P: Pointer); + {$EXTERNALSYM PFNGLTEXCOORDPOINTEREXTPROC} + TGLTEXCOORDPOINTEREXTPROC = PFNGLTEXCOORDPOINTEREXTPROC; + PFNGLEDGEFLAGPOINTEREXTPROC = procedure (stride, count: GLsizei; + P: PGLboolean); + {$EXTERNALSYM PFNGLEDGEFLAGPOINTEREXTPROC} + TGLEDGEFLAGPOINTEREXTPROC = PFNGLEDGEFLAGPOINTEREXTPROC; + PFNGLGETPOINTERVEXTPROC = procedure (pname: GLenum; var prms : pointer); + {$EXTERNALSYM PFNGLGETPOINTERVEXTPROC} + TGLGETPOINTERVEXTPROC = PFNGLGETPOINTERVEXTPROC; + +// WIN_swap_hint + + PFNGLADDSWAPHINTRECTWINPROC = procedure (x, y: GLint; width, height: GLsizei); + {$EXTERNALSYM PFNGLADDSWAPHINTRECTWINPROC} + TGLADDSWAPHINTRECTWINPROC = PFNGLADDSWAPHINTRECTWINPROC; + +{ OpenGL Utility routines (glu.h) =======================================} + +function gluErrorString (errCode: GLenum): PChar; + {$EXTERNALSYM gluErrorString} +function gluErrorUnicodeStringEXT (errCode: GLenum): PWChar; + {$EXTERNALSYM gluErrorUnicodeStringEXT} +function gluGetString (name: GLenum): PChar; + {$EXTERNALSYM gluGetString} + +procedure gluLookAt(eyex, eyey, eyez, + centerx, centery, centerz, + upx, upy, upz: GLdouble); + {$EXTERNALSYM gluLookAt} +procedure gluOrtho2D(left, right, bottom, top: GLdouble); + {$EXTERNALSYM gluOrtho2D} +procedure gluPerspective(fovy, aspect, zNear, zFar: GLdouble); + {$EXTERNALSYM gluPerspective} +procedure gluPickMatrix (x, y, width, height: GLdouble; viewport: PGLint); + {$EXTERNALSYM gluPickMatrix} +function gluProject (objx, objy, obyz: GLdouble; + modelMatrix: PGLdouble; + projMatrix: PGLdouble; + viewport: PGLint; + var winx, winy, winz: GLDouble): Integer; + {$EXTERNALSYM gluProject} +function gluUnProject(winx, winy, winz: GLdouble; + modelMatrix: PGLdouble; + projMatrix: PGLdouble; + viewport: PGLint; + var objx, objy, objz: GLdouble): Integer; + {$EXTERNALSYM gluUnProject} +function gluScaleImage(format: GLenum; + widthin, heightin: GLint; typein: GLenum; datain: Pointer; + widthout, heightout: GLint; typeout: GLenum; dataout: Pointer): Integer; + {$EXTERNALSYM gluScaleImage} + +function gluBuild1DMipmaps (target: GLenum; components, width: GLint; + format, atype: GLenum; data: Pointer): Integer; + {$EXTERNALSYM gluBuild1DMipmaps} +function gluBuild2DMipmaps (target: GLenum; components, width, height: GLint; + format, atype: GLenum; data: Pointer): Integer; + {$EXTERNALSYM gluBuild2DMipmaps} + +type + _GLUquadricObj = record end; + GLUquadricObj = ^_GLUquadricObj; + {$EXTERNALSYM GLUquadricObj} + + GLUquadricErrorProc = procedure (error: GLenum); + TGLUquadricErrorProc = GLUquadricErrorProc; + {$EXTERNALSYM GLUquadricErrorProc} + +function gluNewQuadric: GLUquadricObj; + {$EXTERNALSYM gluNewQuadric} +procedure gluDeleteQuadric (state: GLUquadricObj); + {$EXTERNALSYM gluDeleteQuadric} +procedure gluQuadricNormals (quadObject: GLUquadricObj; normals: GLenum); + {$EXTERNALSYM gluQuadricNormals} +procedure gluQuadricTexture (quadObject: GLUquadricObj; textureCoords: GLboolean ); + {$EXTERNALSYM gluQuadricTexture} +procedure gluQuadricOrientation (quadObject: GLUquadricObj; orientation: GLenum); + {$EXTERNALSYM gluQuadricOrientation} +procedure gluQuadricDrawStyle (quadObject: GLUquadricObj; drawStyle: GLenum); + {$EXTERNALSYM gluQuadricDrawStyle} +procedure gluCylinder (quadObject: GLUquadricObj; + baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); + {$EXTERNALSYM gluCylinder} +procedure gluDisk (quadObject: GLUquadricObj; + innerRadius, outerRadius: GLdouble; slices, loops: GLint); + {$EXTERNALSYM gluDisk} +procedure gluPartialDisk (quadObject: GLUquadricObj; + innerRadius, outerRadius: GLdouble; slices, loops: GLint; + startAngle, sweepAngle: GLdouble); + {$EXTERNALSYM gluPartialDisk} +procedure gluSphere (quadObject: GLUquadricObj; radius: GLdouble; slices, loops: GLint); +procedure gluQuadricCallback (quadObject: GLUquadricObj; which: GLenum; + callback: Pointer); + {$EXTERNALSYM gluSphere} + +type + _GLUtesselator = record end; + GLUtesselator = ^_GLUtesselator; + {$EXTERNALSYM GLUtesselator} + + // tesselator callback procedure types + GLUtessBeginProc = procedure (a: GLenum); + {$EXTERNALSYM GLUtessBeginProc} + TGLUtessBeginProc = GLUtessBeginProc; + GLUtessEdgeFlagProc = procedure (flag: GLboolean); + {$EXTERNALSYM GLUtessEdgeFlagProc} + TGLUtessEdgeFlagProc = GLUtessEdgeFlagProc; + GLUtessVertexProc = procedure (p: Pointer); + {$EXTERNALSYM GLUtessVertexProc} + TGLUtessVertexProc = GLUtessVertexProc; + GLUtessEndProc = procedure; + {$EXTERNALSYM GLUtessEndProc} + TGLUtessEndProc = GLUtessEndProc; + GLUtessErrorProc = TGLUquadricErrorProc; + {$EXTERNALSYM GLUtessErrorProc} + GLUtessCombineProc = procedure (a: PGLdouble; b: Pointer; + c: PGLfloat; var d: Pointer); + {$EXTERNALSYM GLUtessCombineProc} + TGLUtessCombineProc = GLUtessCombineProc; + +function gluNewTess: GLUtesselator; + {$EXTERNALSYM gluNewTess} +procedure gluDeleteTess( tess: GLUtesselator ); + {$EXTERNALSYM gluDeleteTess} +procedure gluTessBeginPolygon( tess: GLUtesselator; gon_data: Pointer ); + {$EXTERNALSYM gluTessBeginPolygon} +procedure gluTessBeginContour( tess: GLUtesselator ); + {$EXTERNALSYM gluTessBeginContour} +procedure gluTessVertex( tess: GLUtesselator; coords: PGLdouble; data: Pointer ); + {$EXTERNALSYM gluTessVertex} +procedure gluTessEndContour( tess: GLUtesselator ); + {$EXTERNALSYM gluTessEndContour} +procedure gluTessEndPolygon( tess: GLUtesselator ); + {$EXTERNALSYM gluTessEndPolygon} +procedure gluTessProperty( tess: GLUtesselator; which: GLenum; value: GLdouble); + {$EXTERNALSYM gluTessProperty} +procedure gluTessNormal( tess: GLUtesselator; x,y,z: GLdouble); + {$EXTERNALSYM gluTessNormal} +procedure gluTessCallback( tess: GLUtesselator; which: GLenum; callback: pointer); + {$EXTERNALSYM gluTessCallback} + +type + TGLUnurbsObj = record end; + GLUnurbsObj = ^TGLUnurbsObj; + {$EXTERNALSYM GLUnurbsObj} + + GLUnurbsErrorProc = GLUquadricErrorProc; + {$EXTERNALSYM GLUnurbsErrorProc} + TGLUnurbsErrorProc = GLUnurbsErrorProc; + +function gluNewNurbsRenderer: GLUnurbsObj; + {$EXTERNALSYM gluNewNurbsRenderer} +procedure gluDeleteNurbsRenderer (nobj: GLUnurbsObj); + {$EXTERNALSYM gluDeleteNurbsRenderer} +procedure gluBeginSurface (nobj: GLUnurbsObj); + {$EXTERNALSYM gluBeginSurface} +procedure gluBeginCurve (nobj: GLUnurbsObj); + {$EXTERNALSYM gluBeginCurve} +procedure gluEndCurve (nobj: GLUnurbsObj); + {$EXTERNALSYM gluEndCurve} +procedure gluEndSurface (nobj: GLUnurbsObj); + {$EXTERNALSYM gluEndSurface} +procedure gluBeginTrim (nobj: GLUnurbsObj); + {$EXTERNALSYM gluBeginTrim} +procedure gluEndTrim (nobj: GLUnurbsObj); + {$EXTERNALSYM gluEndTrim} +procedure gluPwlCurve (nobj: GLUnurbsObj; count: GLint; points: PGLfloat; + stride: GLint; _type: GLenum); + {$EXTERNALSYM gluPwlCurve} +procedure gluNurbsCurve (nobj: GLUnurbsObj; nknots: GLint; knot: PGLfloat; + stride: GLint; ctlpts: PGLfloat; order: GLint; _type: GLenum); + {$EXTERNALSYM gluNurbsCurve} +procedure gluNurbsSurface (nobj: GLUnurbsObj; + sknot_count: GLint; sknot: PGLfloat; + tknot_count: GLint; tknot: PGLfloat; + s_stride, t_stride: GLint; + ctlpts: PGLfloat; sorder, torder: GLint; _type: GLenum); + {$EXTERNALSYM gluNurbsSurface} +procedure gluLoadSamplingMatrices (nobj: GLUnurbsObj; + modelMatrix: PGLdouble; projMatrix: PGLdouble; viewport: PGLint); + {$EXTERNALSYM gluLoadSamplingMatrices} +procedure gluNurbsProperty (nobj: GLUnurbsObj; prop: GLenum; value: GLfloat); + {$EXTERNALSYM gluNurbsProperty} +procedure gluGetNurbsProperty (nobj: GLUnurbsObj; prop: GLenum; var value: GLfloat); + {$EXTERNALSYM gluGetNurbsProperty} +procedure gluNurbsCallback (nobj: GLUnurbsObj; which: GLenum; callback: pointer); + {$EXTERNALSYM gluNurbsCallback} + +{**** Generic constants ****} +const + GLU_VERSION_1_1 = 1; + {$EXTERNALSYM GLU_VERSION_1_1} + +{ Errors: (return value 0 = no error) } + GLU_INVALID_ENUM = 100900; + {$EXTERNALSYM GLU_INVALID_ENUM} + GLU_INVALID_VALUE = 100901; + {$EXTERNALSYM GLU_INVALID_VALUE} + GLU_OUT_OF_MEMORY = 100902; + {$EXTERNALSYM GLU_OUT_OF_MEMORY} + GLU_INCOMPATIBLE_GL_VERSION = 100903; + {$EXTERNALSYM GLU_INCOMPATIBLE_GL_VERSION} + +{ gets } + GLU_VERSION = 100800; + {$EXTERNALSYM GLU_VERSION} + GLU_EXTENSIONS = 100801; + {$EXTERNALSYM GLU_EXTENSIONS} + +{ For laughs: } + GLU_TRUE = GL_TRUE; + {$EXTERNALSYM GLU_TRUE} + GLU_FALSE = GL_FALSE; + {$EXTERNALSYM GLU_FALSE} + +{*** Quadric constants ***} + +{ Types of normals: } + GLU_SMOOTH = 100000; + {$EXTERNALSYM GLU_SMOOTH} + GLU_FLAT = 100001; + {$EXTERNALSYM GLU_FLAT} + GLU_NONE = 100002; + {$EXTERNALSYM GLU_NONE} + +{ DrawStyle types: } + GLU_POINT = 100010; + {$EXTERNALSYM GLU_POINT} + GLU_LINE = 100011; + {$EXTERNALSYM GLU_LINE} + GLU_FILL = 100012; + {$EXTERNALSYM GLU_FILL} + GLU_SILHOUETTE = 100013; + {$EXTERNALSYM GLU_SILHOUETTE} + +{ Orientation types: } + GLU_OUTSIDE = 100020; + {$EXTERNALSYM GLU_OUTSIDE} + GLU_INSIDE = 100021; + {$EXTERNALSYM GLU_INSIDE} + +{ Callback types: } +{ GLU_ERROR 100103 } + + +{*** Tesselation constants ***} + + GLU_TESS_MAX_COORD = 1.0e150; + {$EXTERNALSYM GLU_TESS_MAX_COORD} + +{ Property types: } + GLU_TESS_WINDING_RULE = 100110; + {$EXTERNALSYM GLU_TESS_WINDING_RULE} + GLU_TESS_BOUNDARY_ONLY = 100111; + {$EXTERNALSYM GLU_TESS_BOUNDARY_ONLY} + GLU_TESS_TOLERANCE = 100112; + {$EXTERNALSYM GLU_TESS_TOLERANCE} + +{ Possible winding rules: } + GLU_TESS_WINDING_ODD = 100130; + {$EXTERNALSYM GLU_TESS_WINDING_ODD} + GLU_TESS_WINDING_NONZERO = 100131; + {$EXTERNALSYM GLU_TESS_WINDING_NONZERO} + GLU_TESS_WINDING_POSITIVE = 100132; + {$EXTERNALSYM GLU_TESS_WINDING_POSITIVE} + GLU_TESS_WINDING_NEGATIVE = 100133; + {$EXTERNALSYM GLU_TESS_WINDING_NEGATIVE} + GLU_TESS_WINDING_ABS_GEQ_TWO = 100134; + {$EXTERNALSYM GLU_TESS_WINDING_ABS_GEQ_TWO} + +{ Callback types: } + GLU_TESS_BEGIN = 100100 ; { void (*)(GLenum type) } + {$EXTERNALSYM GLU_TESS_BEGIN} + GLU_TESS_VERTEX = 100101 ; { void (*)(void *data) } + {$EXTERNALSYM GLU_TESS_VERTEX} + GLU_TESS_END = 100102 ; { void (*)(void) } + {$EXTERNALSYM GLU_TESS_END} + GLU_TESS_ERROR = 100103 ; { void (*)(GLenum errno) } + {$EXTERNALSYM GLU_TESS_ERROR} + GLU_TESS_EDGE_FLAG = 100104 ; { void (*)(GLboolean boundaryEdge) } + {$EXTERNALSYM GLU_TESS_EDGE_FLAG} + GLU_TESS_COMBINE = 100105 ; { void (*)(GLdouble coords[3],; + void *data[4],; + GLfloat weight[4],; + void **dataOut) } + {$EXTERNALSYM GLU_TESS_COMBINE} + +{ Errors: } + GLU_TESS_ERROR1 = 100151; + {$EXTERNALSYM GLU_TESS_ERROR1} + GLU_TESS_ERROR2 = 100152; + {$EXTERNALSYM GLU_TESS_ERROR2} + GLU_TESS_ERROR3 = 100153; + {$EXTERNALSYM GLU_TESS_ERROR3} + GLU_TESS_ERROR4 = 100154; + {$EXTERNALSYM GLU_TESS_ERROR4} + GLU_TESS_ERROR5 = 100155; + {$EXTERNALSYM GLU_TESS_ERROR5} + GLU_TESS_ERROR6 = 100156; + {$EXTERNALSYM GLU_TESS_ERROR6} + GLU_TESS_ERROR7 = 100157; + {$EXTERNALSYM GLU_TESS_ERROR7} + GLU_TESS_ERROR8 = 100158; + {$EXTERNALSYM GLU_TESS_ERROR8} + + GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1; + {$EXTERNALSYM GLU_TESS_MISSING_BEGIN_POLYGON} + GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2; + {$EXTERNALSYM GLU_TESS_MISSING_BEGIN_CONTOUR} + GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3; + {$EXTERNALSYM GLU_TESS_MISSING_END_POLYGON} + GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4; + {$EXTERNALSYM GLU_TESS_MISSING_END_CONTOUR} + GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5; + {$EXTERNALSYM GLU_TESS_COORD_TOO_LARGE} + GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6; + {$EXTERNALSYM GLU_TESS_NEED_COMBINE_CALLBACK} + +{*** NURBS constants ***} + +{ Properties: } + GLU_AUTO_LOAD_MATRIX = 100200; + {$EXTERNALSYM GLU_AUTO_LOAD_MATRIX} + GLU_CULLING = 100201; + {$EXTERNALSYM GLU_CULLING} + GLU_SAMPLING_TOLERANCE = 100203; + {$EXTERNALSYM GLU_SAMPLING_TOLERANCE} + GLU_DISPLAY_MODE = 100204; + {$EXTERNALSYM GLU_DISPLAY_MODE} + GLU_PARAMETRIC_TOLERANCE = 100202; + {$EXTERNALSYM GLU_PARAMETRIC_TOLERANCE} + GLU_SAMPLING_METHOD = 100205; + {$EXTERNALSYM GLU_SAMPLING_METHOD} + GLU_U_STEP = 100206; + {$EXTERNALSYM GLU_U_STEP} + GLU_V_STEP = 100207; + {$EXTERNALSYM GLU_V_STEP} + +{ Sampling methods: } + GLU_PATH_LENGTH = 100215; + {$EXTERNALSYM GLU_PATH_LENGTH} + GLU_PARAMETRIC_ERROR = 100216; + {$EXTERNALSYM GLU_PARAMETRIC_ERROR} + GLU_DOMAIN_DISTANCE = 100217; + {$EXTERNALSYM GLU_DOMAIN_DISTANCE} + +{ Trimming curve types } + GLU_MAP1_TRIM_2 = 100210; + {$EXTERNALSYM GLU_MAP1_TRIM_2} + GLU_MAP1_TRIM_3 = 100211; + {$EXTERNALSYM GLU_MAP1_TRIM_3} + +{ Display modes: } +{ GLU_FILL 100012 } + GLU_OUTLINE_POLYGON = 100240; + {$EXTERNALSYM GLU_OUTLINE_POLYGON} + GLU_OUTLINE_PATCH = 100241; + {$EXTERNALSYM GLU_OUTLINE_PATCH} + +{ Callbacks: } +{ GLU_ERROR 100103 } + +{ Errors: } + GLU_NURBS_ERROR1 = 100251; + {$EXTERNALSYM GLU_NURBS_ERROR1} + GLU_NURBS_ERROR2 = 100252; + {$EXTERNALSYM GLU_NURBS_ERROR2} + GLU_NURBS_ERROR3 = 100253; + {$EXTERNALSYM GLU_NURBS_ERROR3} + GLU_NURBS_ERROR4 = 100254; + {$EXTERNALSYM GLU_NURBS_ERROR4} + GLU_NURBS_ERROR5 = 100255; + {$EXTERNALSYM GLU_NURBS_ERROR5} + GLU_NURBS_ERROR6 = 100256; + {$EXTERNALSYM GLU_NURBS_ERROR6} + GLU_NURBS_ERROR7 = 100257; + {$EXTERNALSYM GLU_NURBS_ERROR7} + GLU_NURBS_ERROR8 = 100258; + {$EXTERNALSYM GLU_NURBS_ERROR8} + GLU_NURBS_ERROR9 = 100259; + {$EXTERNALSYM GLU_NURBS_ERROR9} + GLU_NURBS_ERROR10 = 100260; + {$EXTERNALSYM GLU_NURBS_ERROR10} + GLU_NURBS_ERROR11 = 100261; + {$EXTERNALSYM GLU_NURBS_ERROR11} + GLU_NURBS_ERROR12 = 100262; + {$EXTERNALSYM GLU_NURBS_ERROR12} + GLU_NURBS_ERROR13 = 100263; + {$EXTERNALSYM GLU_NURBS_ERROR13} + GLU_NURBS_ERROR14 = 100264; + {$EXTERNALSYM GLU_NURBS_ERROR14} + GLU_NURBS_ERROR15 = 100265; + {$EXTERNALSYM GLU_NURBS_ERROR15} + GLU_NURBS_ERROR16 = 100266; + {$EXTERNALSYM GLU_NURBS_ERROR16} + GLU_NURBS_ERROR17 = 100267; + {$EXTERNALSYM GLU_NURBS_ERROR17} + GLU_NURBS_ERROR18 = 100268; + {$EXTERNALSYM GLU_NURBS_ERROR18} + GLU_NURBS_ERROR19 = 100269; + {$EXTERNALSYM GLU_NURBS_ERROR19} + GLU_NURBS_ERROR20 = 100270; + {$EXTERNALSYM GLU_NURBS_ERROR20} + GLU_NURBS_ERROR21 = 100271; + {$EXTERNALSYM GLU_NURBS_ERROR21} + GLU_NURBS_ERROR22 = 100272; + {$EXTERNALSYM GLU_NURBS_ERROR22} + GLU_NURBS_ERROR23 = 100273; + {$EXTERNALSYM GLU_NURBS_ERROR23} + GLU_NURBS_ERROR24 = 100274; + {$EXTERNALSYM GLU_NURBS_ERROR24} + GLU_NURBS_ERROR25 = 100275; + {$EXTERNALSYM GLU_NURBS_ERROR25} + GLU_NURBS_ERROR26 = 100276; + {$EXTERNALSYM GLU_NURBS_ERROR26} + GLU_NURBS_ERROR27 = 100277; + {$EXTERNALSYM GLU_NURBS_ERROR27} + GLU_NURBS_ERROR28 = 100278; + {$EXTERNALSYM GLU_NURBS_ERROR28} + GLU_NURBS_ERROR29 = 100279; + {$EXTERNALSYM GLU_NURBS_ERROR29} + GLU_NURBS_ERROR30 = 100280; + {$EXTERNALSYM GLU_NURBS_ERROR30} + GLU_NURBS_ERROR31 = 100281; + {$EXTERNALSYM GLU_NURBS_ERROR31} + GLU_NURBS_ERROR32 = 100282; + {$EXTERNALSYM GLU_NURBS_ERROR32} + GLU_NURBS_ERROR33 = 100283; + {$EXTERNALSYM GLU_NURBS_ERROR33} + GLU_NURBS_ERROR34 = 100284; + {$EXTERNALSYM GLU_NURBS_ERROR34} + GLU_NURBS_ERROR35 = 100285; + {$EXTERNALSYM GLU_NURBS_ERROR35} + GLU_NURBS_ERROR36 = 100286; + {$EXTERNALSYM GLU_NURBS_ERROR36} + GLU_NURBS_ERROR37 = 100287; + {$EXTERNALSYM GLU_NURBS_ERROR37} + +{ +/**** Backwards compatibility for old tesselator ****/ + +typedef GLUtesselator GLUtriangulatorObj; + +procedure gluBeginPolygon( tess: GLUtesselator ); + +procedure gluNextContour( tess: GLUtesselator, + GLenum type ); + +procedure gluEndPolygon( tess: GLUtesselator ); + +/* Contours types -- obsolete! */ +#define GLU_CW 100120 +#define GLU_CCW 100121 +#define GLU_INTERIOR 100122 +#define GLU_EXTERIOR 100123 +#define GLU_UNKNOWN 100124 + +/* Names without "TESS_" prefix */ +#define GLU_BEGIN GLU_TESS_BEGIN +#define GLU_VERTEX GLU_TESS_VERTEX +#define GLU_END GLU_TESS_END +#define GLU_ERROR GLU_TESS_ERROR +#define GLU_EDGE_FLAG GLU_TESS_EDGE_FLAG +} + +{ GDI support routines for OpenGL ==========================================} + +function wglGetProcAddress(ProcName: PChar): Pointer; + {$EXTERNALSYM wglGetProcAddress} + +function wglMakeCurrent(_hdc : HDC; _hglrc : HGLRC) : BOOL; +function wglCreateContext(_hdc : HDC) : HGLRC; +function GetDC(_hwnd : HWND) : HDC; +function SetPixelFormat(_hdc: HDC; iPixelFormat : integer; ppfd : ^PIXELFORMATDESCRIPTOR): BOOL; +function ChoosePixelFormat(_hdc: HDC; ppfd : ^PIXELFORMATDESCRIPTOR): integer; +function SwapBuffers(_hdc : HDC) : BOOL; +function wglDeleteContext(_hgrlc : HGLRC) :BOOL; + +procedure OpenGLInit(Handle : IntPtr); +procedure OpenGLUninit(Handle : IntPtr); + +const + glu32 = 'glu32.dll'; + opengl32 = 'opengl32.dll'; + +implementation + +procedure glAccum (op: GLenum; value: GLfloat); external opengl32 name 'glAccum'; +procedure glAlphaFunc (func: GLenum; ref: GLclampf); external opengl32 name 'glAlphaFunc'; +procedure glBegin (mode: GLenum); external opengl32 name 'glBegin'; +procedure glBitmap (width, height: GLsizei; xorig, yorig: GLfloat; + xmove, ymove: GLfloat; bitmap: Pointer); external opengl32 name 'glBitmap'; +procedure glBlendFunc (sfactor, dfactor: GLenum); external opengl32 name 'glBlendFunc'; +procedure glCallList (list: GLuint); external opengl32 name 'glCallList'; +procedure glCallLists (n: GLsizei; cltype: GLenum; lists: Pointer); external opengl32 name 'glCallLists'; +procedure glClear (mask: GLbitfield); external opengl32 name 'glClear'; +procedure glClearAccum (red, green, blue, alpha: GLfloat); external opengl32 name 'glClearAccum'; +procedure glClearColor (red, green, blue, alpha: GLclampf); external opengl32 name 'glClearColor'; +procedure glClearDepth (depth: GLclampd); external opengl32 name 'glClearDepth'; +procedure glClearIndex (c: GLfloat); external opengl32 name 'glClearIndex'; +procedure glClearStencil (s: GLint); external opengl32 name 'glClearStencil'; +procedure glClipPlane (plane: GLenum; equation: PGLDouble); external opengl32 name 'glClipPlane'; +procedure glColor3b (red, green, blue: GLbyte); external opengl32 name 'glColor3b'; +procedure glColor3bv (v: PGLByte); external opengl32 name 'glColor3bv'; +procedure glColor3d (red, green, blue: GLdouble); external opengl32 name 'glColor3d'; +procedure glColor3dv (v: PGLdouble); external opengl32 name 'glColor3dv'; +procedure glColor3f (red, green, blue: GLfloat); external opengl32 name 'glColor3f'; +procedure glColor3fv (v: PGLfloat); external opengl32 name 'glColor3fv'; +procedure glColor3i (red, green, blue: GLint); external opengl32 name 'glColor3i'; +procedure glColor3iv (v: PGLint); external opengl32 name 'glColor3iv'; +procedure glColor3s (red, green, blue: GLshort); external opengl32 name 'glColor3s'; +procedure glColor3sv (v: PGLshort); external opengl32 name 'glColor3sv'; +procedure glColor3ub (red, green, blue: GLubyte); external opengl32 name 'glColor3ub'; +procedure glColor3ubv (v: PGLubyte); external opengl32 name 'glColor3ubv'; +procedure glColor3ui (red, green, blue: GLuint); external opengl32 name 'glColor3ui'; +procedure glColor3uiv (v: PGLuint); external opengl32 name 'glColor3uiv'; +procedure glColor3us (red, green, blue: GLushort); external opengl32 name 'glColor3us'; +procedure glColor3usv (v: PGLushort); external opengl32 name 'glColor3usv'; +procedure glColor4b (red, green, blue, alpha: GLbyte); external opengl32 name 'glColor4b'; +procedure glColor4bv (v: PGLbyte); external opengl32 name 'glColor4bv'; +procedure glColor4d (red, green, blue, alpha: GLdouble); external opengl32 name 'glColor4d'; +procedure glColor4dv (v: PGLdouble); external opengl32 name 'glColor4dv'; +procedure glColor4f (red, green, blue, alpha: GLfloat); external opengl32 name 'glColor4f'; +procedure glColor4fv (v: PGLfloat); external opengl32 name 'glColor4fv'; +procedure glColor4i (red, green, blue, alpha: GLint); external opengl32 name 'glColor4i'; +procedure glColor4iv (v: PGLint); external opengl32 name 'glColor4iv'; +procedure glColor4s (red, green, blue, alpha: GLshort); external opengl32 name 'glColor4s'; +procedure glColor4sv (v: PGLshort); external opengl32 name 'glColor4sv'; +procedure glColor4ub (red, green, blue, alpha: GLubyte); external opengl32 name 'glColor4ub'; +procedure glColor4ubv (v: PGLubyte); external opengl32 name 'glColor4ubv'; +procedure glColor4ui (red, green, blue, alpha: GLuint); external opengl32 name 'glColor4ui'; +procedure glColor4uiv (v: PGLuint); external opengl32 name 'glColor4uiv'; +procedure glColor4us (red, green, blue, alpha: GLushort); external opengl32 name 'glColor4us'; +procedure glColor4usv (v: PGLushort); external opengl32 name 'glColor4usv'; +procedure glColor(red, green, blue: GLbyte); external opengl32 name 'glColor3b'; +procedure glColor(red, green, blue: GLdouble); external opengl32 name 'glColor3d'; +procedure glColor(red, green, blue: GLfloat); external opengl32 name 'glColor3f'; +procedure glColor(red, green, blue: GLint); external opengl32 name 'glColor3i'; +procedure glColor(red, green, blue: GLshort); external opengl32 name 'glColor3s'; +procedure glColor(red, green, blue: GLubyte); external opengl32 name 'glColor3ub'; +procedure glColor(red, green, blue: GLuint); external opengl32 name 'glColor3ui'; +procedure glColor(red, green, blue: GLushort); external opengl32 name 'glColor3us'; +procedure glColor(red, green, blue, alpha: GLbyte); external opengl32 name 'glColor4b'; +procedure glColor(red, green, blue, alpha: GLdouble); external opengl32 name 'glColor4d'; +procedure glColor(red, green, blue, alpha: GLfloat); external opengl32 name 'glColor4f'; +procedure glColor(red, green, blue, alpha: GLint); external opengl32 name 'glColor4i'; +procedure glColor(red, green, blue, alpha: GLshort); external opengl32 name 'glColor4s'; +procedure glColor(red, green, blue, alpha: GLubyte); external opengl32 name 'glColor4ub'; +procedure glColor(red, green, blue, alpha: GLuint); external opengl32 name 'glColor4ui'; +procedure glColor(red, green, blue, alpha: GLushort); external opengl32 name 'glColor4us'; +procedure glColor3(v: PGLbyte); external opengl32 name 'glColor3bv'; +procedure glColor3(v: PGLdouble); external opengl32 name 'glColor3dv'; +procedure glColor3(v: PGLfloat); external opengl32 name 'glColor3fv'; +procedure glColor3(v: PGLint); external opengl32 name 'glColor3iv'; +procedure glColor3(v: PGLshort); external opengl32 name 'glColor3sv'; +procedure glColor3(v: PGLubyte); external opengl32 name 'glColor3ubv'; +procedure glColor3(v: PGLuint); external opengl32 name 'glColor3uiv'; +procedure glColor3(v: PGLushort); external opengl32 name 'glColor3usv'; +procedure glColor4(v: PGLbyte); external opengl32 name 'glColor4bv'; +procedure glColor4(v: PGLdouble); external opengl32 name 'glColor4dv'; +procedure glColor4(v: PGLfloat); external opengl32 name 'glColor4fv'; +procedure glColor4(v: PGLint); external opengl32 name 'glColor4iv'; +procedure glColor4(v: PGLshort); external opengl32 name 'glColor4sv'; +procedure glColor4(v: PGLubyte); external opengl32 name 'glColor4ubv'; +procedure glColor4(v: PGLuint); external opengl32 name 'glColor4uiv'; +procedure glColor4(v: PGLushort); external opengl32 name 'glColor4usv'; +procedure glColorMask (red, green, blue, alpha: GLboolean); external opengl32 name 'glColorMask'; +procedure glColorMaterial (face, mode: GLenum); external opengl32 name 'glColorMaterial'; +procedure glCopyPixels (x,y: GLint; width, height: GLsizei; pixeltype: GLenum); external opengl32 name 'glCopyPixels'; +procedure glCullFace (mode: GLenum); external opengl32 name 'glCullFace'; +procedure glDeleteLists (list: GLuint; range: GLsizei); external opengl32 name 'glDeleteLists'; +procedure glDepthFunc (func: GLenum); external opengl32 name 'glDepthFunc'; +procedure glDepthMask (flag: GLboolean); external opengl32 name 'glDepthMask'; +procedure glDepthRange (zNear, zFar: GLclampd); external opengl32 name 'glDepthRange'; +procedure glDisable (cap: GLenum); external opengl32 name 'glDisable'; +procedure glDrawBuffer (mode: GLenum); external opengl32 name 'glDrawBuffer'; +procedure glDrawPixels (width, height: GLsizei; format, pixeltype: GLenum; + pixels: Pointer); external opengl32 name 'glDrawPixels'; +procedure glEdgeFlag (flag: GLboolean); external opengl32 name 'glEdgeFlag'; +procedure glEdgeFlagv (flag: PGLboolean); external opengl32 name 'glEdgeFlagv'; +procedure glEnable (cap: GLenum); external opengl32 name 'glEnable'; +procedure glEnd; external opengl32 name 'glEnd'; +procedure glEndList; external opengl32 name 'glEndList'; +procedure glEvalCoord1d (u: GLdouble); external opengl32 name 'glEvalCoord1d'; +procedure glEvalCoord1dv (u: PGLdouble); external opengl32 name 'glEvalCoord1dv'; +procedure glEvalCoord1f (u: GLfloat); external opengl32 name 'glEvalCoord1f'; +procedure glEvalCoord1fv (u: PGLfloat); external opengl32 name 'glEvalCoord1fv'; +procedure glEvalCoord2d (u,v: GLdouble); external opengl32 name 'glEvalCoord2d'; +procedure glEvalCoord2dv (u: PGLdouble); external opengl32 name 'glEvalCoord2dv'; +procedure glEvalCoord2f (u,v: GLfloat); external opengl32 name 'glEvalCoord2f'; +procedure glEvalCoord2fv (u: PGLfloat); external opengl32 name 'glEvalCoord2fv'; +procedure glEvalCoord(u: GLdouble); external opengl32 name 'glEvalCoord1d'; +procedure glEvalCoord(u: GLfloat); external opengl32 name 'glEvalCoord1f'; +procedure glEvalCoord(u,v: GLdouble); external opengl32 name 'glEvalCoord2d'; +procedure glEvalCoord(u,v: GLfloat); external opengl32 name 'glEvalCoord2f'; +procedure glEvalCoord1(v: PGLdouble); external opengl32 name 'glEvalCoord1dv'; +procedure glEvalCoord1(v: PGLfloat); external opengl32 name 'glEvalCoord1fv'; +procedure glEvalCoord2(v: PGLdouble); external opengl32 name 'glEvalCoord2dv'; +procedure glEvalCoord2(v: PGLfloat); external opengl32 name 'glEvalCoord2fv'; +procedure glEvalMesh1 (mode: GLenum; i1, i2: GLint); external opengl32 name 'glEvalMesh1'; +procedure glEvalMesh2 (mode: GLenum; i1, i2, j1, j2: GLint); external opengl32 name 'glEvalMesh2'; +procedure glEvalMesh(mode: GLenum; i1, i2: GLint); external opengl32 name 'glEvalMesh1'; +procedure glEvalMesh(mode: GLenum; i1, i2, j1, j2: GLint); external opengl32 name 'glEvalMesh2'; +procedure glEvalPoint1 (i: GLint); external opengl32 name 'glEvalPoint1'; +procedure glEvalPoint2 (i,j: GLint); external opengl32 name 'glEvalPoint2'; +procedure glEvalPoint(i: GLint); external opengl32 name 'glEvalPoint1'; +procedure glEvalPoint(i,j: GLint); external opengl32 name 'glEvalPoint2'; +procedure glFeedbackBuffer (size: GLsizei; buftype: GLenum; buffer: PGLFloat); external opengl32 name 'glFeedbackBuffer'; +procedure glFinish; external opengl32 name 'glFinish'; +procedure glFlush; external opengl32 name 'glFlush'; +procedure glFogf (pname: GLenum; param: GLfloat); external opengl32 name 'glFogf'; +procedure glFogfv (pname: GLenum; prms: PGLfloat); external opengl32 name 'glFogfv'; +procedure glFogi (pname: GLenum; param: GLint); external opengl32 name 'glFogi'; +procedure glFogiv (pname: GLenum; prms: PGLint); external opengl32 name 'glFogiv'; +procedure glFog(pname: GLenum; param: GLfloat); external opengl32 name 'glFogf'; +procedure glFog(pname: GLenum; prms: PGLfloat); external opengl32 name 'glFogfv'; +procedure glFog(pname: GLenum; param: GLint); external opengl32 name 'glFogi'; +procedure glFog(pname: GLenum; prms: PGLint); external opengl32 name 'glFogiv'; +procedure glFrontFace (mode: GLenum); external opengl32 name 'glFrontFace'; +procedure glFrustum (left, right, bottom, top, zNear, zFar: GLdouble); external opengl32 name 'glFrustum'; +function glGenLists (range: GLsizei): GLuint; external opengl32 name 'glGenLists'; +procedure glGetBooleanv (pname: GLenum; prms: PGLboolean); external opengl32 name 'glGetBooleanv'; +procedure glGetClipPlane (plane: GLenum; equation: PGLdouble); external opengl32 name 'glGetClipPlane'; +procedure glGetDoublev (pname: GLenum; prms: PGLdouble); external opengl32 name 'glGetDoublev'; +function glGetError: GLenum; external opengl32 name 'glGetError'; +procedure glGetFloatv (pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetFloatv'; +procedure glGetIntegerv (pname: GLenum; prms: PGLint); external opengl32 name 'glGetIntegerv'; +procedure glGetLightfv (light: GLenum; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetLightfv'; +procedure glGetLightiv (light: GLenum; pname: GLenum; prms: PGLint); external opengl32 name 'glGetLightiv'; +procedure glGetLight(light: GLenum; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetLightfv'; +procedure glGetLight(light: GLenum; pname: GLenum; prms: PGLint); external opengl32 name 'glGetLightiv'; +procedure glGetMapdv (target: GLenum; query: GLenum; v: PGLdouble); external opengl32 name 'glGetMapdv'; +procedure glGetMapfv (target: GLenum; query: GLenum; v: PGLfloat); external opengl32 name 'glGetMapfv'; +procedure glGetMapiv (target: GLenum; query: GLenum; v: PGLint); external opengl32 name 'glGetMapiv'; +procedure glGetMap(target: GLenum; query: GLenum; v: PGLdouble); external opengl32 name 'glGetMapdv'; +procedure glGetMap(target: GLenum; query: GLenum; v: PGLfloat); external opengl32 name 'glGetMapfv'; +procedure glGetMap(target: GLenum; query: GLenum; v: PGLint); external opengl32 name 'glGetMapiv'; +procedure glGetMaterialfv (face: GLenum; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetMaterialfv'; +procedure glGetMaterialiv (face: GLenum; pname: GLenum; prms: PGLint); external opengl32 name 'glGetMaterialiv'; +procedure glGetMaterial(face: GLenum; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetMaterialfv'; +procedure glGetMaterial(face: GLenum; pname: GLenum; prms: PGLint); external opengl32 name 'glGetMaterialiv'; +procedure glGetPixelMapfv (map: GLenum; values: PGLfloat); external opengl32 name 'glGetPixelMapfv'; +procedure glGetPixelMapuiv (map: GLenum; values: PGLuint); external opengl32 name 'glGetPixelMapuiv'; +procedure glGetPixelMapusv (map: GLenum; values: PGLushort); external opengl32 name 'glGetPixelMapusv'; +procedure glGetPixelMap(map: GLenum; values: PGLfloat); external opengl32 name 'glGetPixelMapfv'; +procedure glGetPixelMap(map: GLenum; values: PGLuint); external opengl32 name 'glGetPixelMapuiv'; +procedure glGetPixelMap(map: GLenum; values: PGLushort); external opengl32 name 'glGetPixelMapusv'; +procedure glGetPolygonStipple (var mask: GLubyte); external opengl32 name 'glGetPolygonStipple'; +function glGetString (name: GLenum): PChar; external opengl32 name 'glGetString'; +procedure glGetTexEnvfv (target: GLenum; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetTexEnvfv'; +procedure glGetTexEnviv (target: GLenum; pname: GLenum; prms: PGLint); external opengl32 name 'glGetTexEnviv'; +procedure glGetTexEnv(target: GLenum; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetTexEnvfv'; +procedure glGetTexEnv(target: GLenum; pname: GLenum; prms: PGLint); external opengl32 name 'glGetTexEnviv'; +procedure glGetTexGendv (coord: GLenum; pname: GLenum; prms: PGLdouble); external opengl32 name 'glGetTexGendv'; +procedure glGetTexGenfv (coord: GLenum; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetTexGenfv'; +procedure glGetTexGeniv (coord: GLenum; pname: GLenum; prms: PGLint); external opengl32 name 'glGetTexGeniv'; +procedure glGetTexGen(coord: GLenum; pname: GLenum; prms: PGLdouble); external opengl32 name 'glGetTexGendv'; +procedure glGetTexGen(coord: GLenum; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetTexGenfv'; +procedure glGetTexGen(coord: GLenum; pname: GLenum; prms: PGLint); external opengl32 name 'glGetTexGeniv'; +procedure glGetTexImage (target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: pointer); external opengl32 name 'glGetTexImage'; +procedure glGetTexLevelParameterfv (target: GLenum; level: GLint; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetTexLevelParameterfv'; +procedure glGetTexLevelParameteriv (target: GLenum; level: GLint; pname: GLenum; prms: PGLint); external opengl32; +procedure glGetTexLevelParameter(target: GLenum; level: GLint; pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetTexLevelParameterfv'; +procedure glGetTexLevelParameter(target: GLenum; level: GLint; pname: GLenum; prms: PGLint); external opengl32 name 'glGetTexLevelParameteriv'; +procedure glGetTexParameterfv (target, pname: GLenum; prms: PGLfloat); external opengl32; +procedure glGetTexParameteriv (target, pname: GLenum; prms: PGLint); external opengl32; +procedure glGetTexParameter(target, pname: GLenum; prms: PGLfloat); external opengl32 name 'glGetTexParameterfv'; +procedure glGetTexParameter(target, pname: GLenum; prms: PGLint); external opengl32 name 'glGetTexParameteriv'; +procedure glHint (target, mode: GLenum); external opengl32; +procedure glIndexMask (mask: GLuint); external opengl32; +procedure glIndexd (c: GLdouble); external opengl32; +procedure glIndexdv (c: PGLdouble); external opengl32; +procedure glIndexf (c: GLfloat); external opengl32; +procedure glIndexfv (c: PGLfloat); external opengl32; +procedure glIndexi (c: GLint); external opengl32; +procedure glIndexiv (c: PGLint); external opengl32; +procedure glIndexs (c: GLshort); external opengl32; +procedure glIndexsv (c: PGLshort); external opengl32; +procedure glIndex(c: GLdouble); external opengl32 name 'glIndexd'; +procedure glIndex(c: PGLdouble); external opengl32 name 'glIndexdv'; +procedure glIndex(c: GLfloat); external opengl32 name 'glIndexf'; +procedure glIndex(c: PGLfloat); external opengl32 name 'glIndexfv'; +procedure glIndex(c: GLint); external opengl32 name 'glIndexi'; +procedure glIndex(c: PGLint); external opengl32 name 'glIndexiv'; +procedure glIndex(c: GLshort); external opengl32 name 'glIndexs'; +procedure glIndex(c: PGLshort); external opengl32 name 'glIndexsv'; +procedure glInitNames; external opengl32; +function glIsEnabled (cap: GLenum): GLBoolean; external opengl32; +function glIsList (list: GLuint): GLBoolean; external opengl32; +procedure glLightModelf (pname: GLenum; param: GLfloat); external opengl32; +procedure glLightModelfv (pname: GLenum; prms: PGLfloat); external opengl32; +procedure glLightModeli (pname: GLenum; param: GLint); external opengl32; +procedure glLightModeliv (pname: GLenum; prms: PGLint); external opengl32; +procedure glLightModel(pname: GLenum; param: GLfloat); external opengl32 name 'glLightModelf'; +procedure glLightModel(pname: GLenum; prms: PGLfloat); external opengl32 name 'glLightModelfv'; +procedure glLightModel(pname: GLenum; param: GLint); external opengl32 name 'glLightModeli'; +procedure glLightModel(pname: GLenum; prms: PGLint); external opengl32 name 'glLightModeliv'; +procedure glLightf (light, pname: GLenum; param: GLfloat); external opengl32; +procedure glLightfv (light, pname: GLenum; prms: PGLfloat); external opengl32; +procedure glLighti (light, pname: GLenum; param: GLint); external opengl32; +procedure glLightiv (light, pname: GLenum; prms: PGLint); external opengl32; +procedure glLight(light, pname: GLenum; param: GLfloat); external opengl32 name 'glLightf'; +procedure glLight(light, pname: GLenum; prms: PGLfloat); external opengl32 name 'glLightfv'; +procedure glLight(light, pname: GLenum; param: GLint); external opengl32 name 'glLighti'; +procedure glLight(light, pname: GLenum; prms: PGLint); external opengl32 name 'glLightiv'; +procedure glLineStipple (factor: GLint; pattern: GLushort); external opengl32; +procedure glLineWidth (width: GLfloat); external opengl32; +procedure glListBase (base: GLuint); external opengl32; +procedure glLoadIdentity; external opengl32; +procedure glLoadMatrixd (m: PGLdouble); external opengl32; +procedure glLoadMatrixf (m: PGLfloat); external opengl32; +procedure glLoadMatrix(m: PGLdouble); external opengl32 name 'glLoadMatrixd'; +procedure glLoadMatrix(m: PGLfloat); external opengl32 name 'glLoadMatrixf'; +procedure glLoadName (name: GLuint); external opengl32; +procedure glLogicOp (opcode: GLenum); external opengl32; +procedure glMap1d (target: GLenum; u1,u2: GLdouble; stride, order: GLint; + Points: PGLdouble); external opengl32; +procedure glMap1f (target: GLenum; u1,u2: GLfloat; stride, order: GLint; + Points: PGLfloat); external opengl32; +procedure glMap2d (target: GLenum; + u1,u2: GLdouble; ustride, uorder: GLint; + v1,v2: GLdouble; vstride, vorder: GLint; Points: PGLdouble); external opengl32; +procedure glMap2f (target: GLenum; + u1,u2: GLfloat; ustride, uorder: GLint; + v1,v2: GLfloat; vstride, vorder: GLint; Points: PGLfloat); external opengl32; +procedure glMap(target: GLenum; u1,u2: GLdouble; stride, order: GLint; + Points: PGLdouble); external opengl32 name 'glMap1d'; +procedure glMap(target: GLenum; u1,u2: GLfloat; stride, order: GLint; + Points: PGLfloat); external opengl32 name 'glMap1f'; +procedure glMap(target: GLenum; + u1,u2: GLdouble; ustride, uorder: GLint; + v1,v2: GLdouble; vstride, vorder: GLint; Points: PGLdouble); external opengl32 name 'glMap2d'; +procedure glMap(target: GLenum; + u1,u2: GLfloat; ustride, uorder: GLint; + v1,v2: GLfloat; vstride, vorder: GLint; Points: PGLfloat); external opengl32 name 'glMap2f'; +procedure glMapGrid1d (un: GLint; u1, u2: GLdouble); external opengl32; +procedure glMapGrid1f (un: GLint; u1, u2: GLfloat); external opengl32; +procedure glMapGrid2d (un: GLint; u1, u2: GLdouble; + vn: GLint; v1, v2: GLdouble); external opengl32; +procedure glMapGrid2f (un: GLint; u1, u2: GLfloat; + vn: GLint; v1, v2: GLfloat); external opengl32; +procedure glMapGrid(un: GLint; u1, u2: GLdouble); external opengl32 name 'glMapGrid1d'; +procedure glMapGrid(un: GLint; u1, u2: GLfloat); external opengl32 name 'glMapGrid1f'; +procedure glMapGrid(un: GLint; u1, u2: GLdouble; + vn: GLint; v1, v2: GLdouble); external opengl32 name 'glMapGrid2d'; +procedure glMapGrid(un: GLint; u1, u2: GLfloat; + vn: GLint; v1, v2: GLfloat); external opengl32 name 'glMapGrid2f'; +procedure glMaterialf (face, pname: GLenum; param: GLfloat); external opengl32; +procedure glMaterialfv (face, pname: GLenum; prms: PGLfloat); external opengl32; +procedure glMateriali (face, pname: GLenum; param: GLint); external opengl32; +procedure glMaterialiv (face, pname: GLenum; prms: PGLint); external opengl32; +procedure glMaterial(face, pname: GLenum; param: GLfloat); external opengl32 name 'glMaterialf'; +procedure glMaterial(face, pname: GLenum; prms: PGLfloat); external opengl32 name 'glMaterialfv'; +procedure glMaterial(face, pname: GLenum; param: GLint); external opengl32 name 'glMateriali'; +procedure glMaterial(face, pname: GLenum; prms: PGLint); external opengl32 name 'glMaterialiv'; +procedure glMatrixMode (mode: GLenum); external opengl32; +procedure glMultMatrixd (m: PGLdouble); external opengl32; +procedure glMultMatrixf (m: PGLfloat); external opengl32; +procedure glMultMatrix(m: PGLdouble); external opengl32 name 'glMultMatrixd'; +procedure glMultMatrix(m: PGLfloat); external opengl32 name 'glMultMatrixf'; +procedure glNewList (ListIndex: GLuint; mode: GLenum); external opengl32; +procedure glNormal3b (nx, ny, nz: GLbyte); external opengl32; +procedure glNormal3bv (v: PGLbyte); external opengl32; +procedure glNormal3d (nx, ny, nz: GLdouble); external opengl32; +procedure glNormal3dv (v: PGLdouble); external opengl32; +procedure glNormal3f (nx, ny, nz: GLFloat); external opengl32; +procedure glNormal3fv (v: PGLfloat); external opengl32; +procedure glNormal3i (nx, ny, nz: GLint); external opengl32; +procedure glNormal3iv (v: PGLint); external opengl32; +procedure glNormal3s (nx, ny, nz: GLshort); external opengl32; +procedure glNormal3sv (v: PGLshort); external opengl32; +procedure glNormal(nx, ny, nz: GLbyte); external opengl32 name 'glNormal3b'; +procedure glNormal3(v: PGLbyte); external opengl32 name 'glNormal3bv'; +procedure glNormal(nx, ny, nz: GLdouble); external opengl32 name 'glNormal3d'; +procedure glNormal3(v: PGLdouble); external opengl32 name 'glNormal3dv'; +procedure glNormal(nx, ny, nz: GLFloat); external opengl32 name 'glNormal3f'; +procedure glNormal3(v: PGLfloat); external opengl32 name 'glNormal3fv'; +procedure glNormal(nx, ny, nz: GLint); external opengl32 name 'glNormal3i'; +procedure glNormal3(v: PGLint); external opengl32 name 'glNormal3iv'; +procedure glNormal(nx, ny, nz: GLshort); external opengl32 name 'glNormal3s'; +procedure glNormal3(v: PGLshort); external opengl32 name 'glNormal3sv'; +procedure glOrtho (left, right, bottom, top, zNear, zFar: GLdouble); external opengl32; +procedure glPassThrough (token: GLfloat); external opengl32; +procedure glPixelMapfv (map: GLenum; mapsize: GLint; values: PGLfloat); external opengl32; +procedure glPixelMapuiv (map: GLenum; mapsize: GLint; values: PGLuint); external opengl32; +procedure glPixelMapusv (map: GLenum; mapsize: GLint; values: PGLushort); external opengl32; +procedure glPixelMap(map: GLenum; mapsize: GLint; values: PGLfloat); external opengl32 name 'glPixelMapfv'; +procedure glPixelMap(map: GLenum; mapsize: GLint; values: PGLuint); external opengl32 name 'glPixelMapuiv'; +procedure glPixelMap(map: GLenum; mapsize: GLint; values: PGLushort); external opengl32 name 'glPixelMapusv'; +procedure glPixelStoref (pname: GLenum; param: GLfloat); external opengl32; +procedure glPixelStorei (pname: GLenum; param: GLint); external opengl32; +procedure glPixelStore(pname: GLenum; param: GLfloat); external opengl32 name 'glPixelStoref'; +procedure glPixelStore(pname: GLenum; param: GLint); external opengl32 name 'glPixelStorei'; +procedure glPixelTransferf (pname: GLenum; param: GLfloat); external opengl32; +procedure glPixelTransferi (pname: GLenum; param: GLint); external opengl32; +procedure glPixelTransfer(pname: GLenum; param: GLfloat); external opengl32 name 'glPixelTransferf'; +procedure glPixelTransfer(pname: GLenum; param: GLint); external opengl32 name 'glPixelTransferi'; +procedure glPixelZoom (xfactor, yfactor: GLfloat); external opengl32; +procedure glPointSize (size: GLfloat); external opengl32; +procedure glPolygonMode (face, mode: GLenum); external opengl32; +procedure glPolygonStipple (mask: PGLubyte); external opengl32; +procedure glPopAttrib; external opengl32; +procedure glPopMatrix; external opengl32; +procedure glPopName; external opengl32; +procedure glPushAttrib(mask: GLbitfield); external opengl32; +procedure glPushMatrix; external opengl32; +procedure glPushName(name: GLuint); external opengl32; +procedure glRasterPos2d (x,y: GLdouble); external opengl32; +procedure glRasterPos2dv (v: PGLdouble); external opengl32; +procedure glRasterPos2f (x,y: GLfloat); external opengl32; +procedure glRasterPos2fv (v: PGLfloat); external opengl32; +procedure glRasterPos2i (x,y: GLint); external opengl32; +procedure glRasterPos2iv (v: PGLint); external opengl32; +procedure glRasterPos2s (x,y: GLshort); external opengl32; +procedure glRasterPos2sv (v: PGLshort); external opengl32; +procedure glRasterPos3d (x,y,z: GLdouble); external opengl32; +procedure glRasterPos3dv (v: PGLdouble); external opengl32; +procedure glRasterPos3f (x,y,z: GLfloat); external opengl32; +procedure glRasterPos3fv (v: PGLfloat); external opengl32; +procedure glRasterPos3i (x,y,z: GLint); external opengl32; +procedure glRasterPos3iv (v: PGLint); external opengl32; +procedure glRasterPos3s (x,y,z: GLshort); external opengl32; +procedure glRasterPos3sv (v: PGLshort); external opengl32; +procedure glRasterPos4d (x,y,z,w: GLdouble); external opengl32; +procedure glRasterPos4dv (v: PGLdouble); external opengl32; +procedure glRasterPos4f (x,y,z,w: GLfloat); external opengl32; +procedure glRasterPos4fv (v: PGLfloat); external opengl32; +procedure glRasterPos4i (x,y,z,w: GLint); external opengl32; +procedure glRasterPos4iv (v: PGLint); external opengl32; +procedure glRasterPos4s (x,y,z,w: GLshort); external opengl32; +procedure glRasterPos4sv (v: PGLshort); external opengl32; +procedure glRasterPos(x,y: GLdouble); external opengl32 name 'glRasterPos2d'; +procedure glRasterPos2(v: PGLdouble); external opengl32 name 'glRasterPos2dv'; +procedure glRasterPos(x,y: GLfloat); external opengl32 name 'glRasterPos2f'; +procedure glRasterPos2(v: PGLfloat); external opengl32 name 'glRasterPos2fv'; +procedure glRasterPos(x,y: GLint); external opengl32 name 'glRasterPos2i'; +procedure glRasterPos2(v: PGLint); external opengl32 name 'glRasterPos2iv'; +procedure glRasterPos(x,y: GLshort); external opengl32 name 'glRasterPos2s'; +procedure glRasterPos2(v: PGLshort); external opengl32 name 'glRasterPos2sv'; +procedure glRasterPos(x,y,z: GLdouble); external opengl32 name 'glRasterPos3d'; +procedure glRasterPos3(v: PGLdouble); external opengl32 name 'glRasterPos3dv'; +procedure glRasterPos(x,y,z: GLfloat); external opengl32 name 'glRasterPos3f'; +procedure glRasterPos3(v: PGLfloat); external opengl32 name 'glRasterPos3fv'; +procedure glRasterPos(x,y,z: GLint); external opengl32 name 'glRasterPos3i'; +procedure glRasterPos3(v: PGLint); external opengl32 name 'glRasterPos3iv'; +procedure glRasterPos(x,y,z: GLshort); external opengl32 name 'glRasterPos3s'; +procedure glRasterPos3(v: PGLshort); external opengl32 name 'glRasterPos3sv'; +procedure glRasterPos(x,y,z,w: GLdouble); external opengl32 name 'glRasterPos4d'; +procedure glRasterPos4(v: PGLdouble); external opengl32 name 'glRasterPos4dv'; +procedure glRasterPos(x,y,z,w: GLfloat); external opengl32 name 'glRasterPos4f'; +procedure glRasterPos4(v: PGLfloat); external opengl32 name 'glRasterPos4fv'; +procedure glRasterPos(x,y,z,w: GLint); external opengl32 name 'glRasterPos4i'; +procedure glRasterPos4(v: PGLint); external opengl32 name 'glRasterPos4iv'; +procedure glRasterPos(x,y,z,w: GLshort); external opengl32 name 'glRasterPos4s'; +procedure glRasterPos4(v: PGLshort); external opengl32 name 'glRasterPos4sv'; +procedure glReadBuffer (mode: GLenum); external opengl32; +procedure glReadPixels (x,y: GLint; width, height: GLsizei; + format, _type: GLenum; pixels: Pointer); external opengl32; +procedure glRectd (x1, y1, x2, y2: GLdouble); external opengl32; +procedure glRectdv (v1, v2: PGLdouble); external opengl32; +procedure glRectf (x1, y1, x2, y2: GLfloat); external opengl32; +procedure glRectfv (v1, v2: PGLfloat); external opengl32; +procedure glRecti (x1, y1, x2, y2: GLint); external opengl32; +procedure glRectiv (v1, v2: PGLint); external opengl32; +procedure glRects (x1, y1, x2, y2: GLshort); external opengl32; +procedure glRectsv (v1, v2: PGLshort); external opengl32; +procedure glRect(x1, y1, x2, y2: GLdouble); external opengl32 name 'glRectd'; +procedure glRect(v1, v2: PGLdouble); external opengl32 name 'glRectdv'; +procedure glRect(x1, y1, x2, y2: GLfloat); external opengl32 name 'glRectf'; +procedure glRect(v1, v2: PGLfloat); external opengl32 name 'glRectfv'; +procedure glRect(x1, y1, x2, y2: GLint); external opengl32 name 'glRecti'; +procedure glRect(v1, v2: PGLint); external opengl32 name 'glRectiv'; +procedure glRect(x1, y1, x2, y2: GLshort); external opengl32 name 'glRects'; +procedure glRect(v1, v2: PGLshort); external opengl32 name 'glRectsv'; +function glRenderMode (mode: GLenum): GLint; external opengl32; +procedure glRotated (angle, x,y,z: GLdouble); external opengl32; +procedure glRotatef (angle, x,y,z: GLfloat); external opengl32; +procedure glRotate(angle, x,y,z: GLdouble); external opengl32 name 'glRotated'; +procedure glRotate(angle, x,y,z: GLfloat); external opengl32 name 'glRotatef'; +procedure glScaled (x,y,z: GLdouble); external opengl32; +procedure glScalef (x,y,z: GLfloat); external opengl32; +procedure glScale(x,y,z: GLdouble); external opengl32 name 'glScaled'; +procedure glScale(x,y,z: GLfloat); external opengl32 name 'glScalef'; +procedure glScissor (x,y: GLint; width, height: GLsizei); external opengl32; +procedure glSelectBuffer (size: GLsizei; buffer: PGLuint); external opengl32; +procedure glShadeModel (mode: GLenum); external opengl32; +procedure glStencilFunc (func: GLenum; ref: GLint; mask: GLuint); external opengl32; +procedure glStencilMask (mask: GLuint); external opengl32; +procedure glStencilOp (fail, zfail, zpass: GLenum); external opengl32; +procedure glTexCoord1d (s: GLdouble); external opengl32; +procedure glTexCoord1dv (v: PGLdouble); external opengl32; +procedure glTexCoord1f (s: GLfloat); external opengl32; +procedure glTexCoord1fv (v: PGLfloat); external opengl32; +procedure glTexCoord1i (s: GLint); external opengl32; +procedure glTexCoord1iv (v: PGLint); external opengl32; +procedure glTexCoord1s (s: GLshort); external opengl32; +procedure glTexCoord1sv (v: PGLshort); external opengl32; +procedure glTexCoord2d (s,t: GLdouble); external opengl32; +procedure glTexCoord2dv (v: PGLdouble); external opengl32; +procedure glTexCoord2f (s,t: GLfloat); external opengl32; +procedure glTexCoord2fv (v: PGLfloat); external opengl32; +procedure glTexCoord2i (s,t: GLint); external opengl32; +procedure glTexCoord2iv (v: PGLint); external opengl32; +procedure glTexCoord2s (s,t: GLshort); external opengl32; +procedure glTexCoord2sv (v: PGLshort); external opengl32; +procedure glTexCoord3d (s,t,r: GLdouble); external opengl32; +procedure glTexCoord3dv (v: PGLdouble); external opengl32; +procedure glTexCoord3f (s,t,r: GLfloat); external opengl32; +procedure glTexCoord3fv (v: PGLfloat); external opengl32; +procedure glTexCoord3i (s,t,r: GLint); external opengl32; +procedure glTexCoord3iv (v: PGLint); external opengl32; +procedure glTexCoord3s (s,t,r: GLshort); external opengl32; +procedure glTexCoord3sv (v: PGLshort); external opengl32; +procedure glTexCoord4d (s,t,r,q: GLdouble); external opengl32; +procedure glTexCoord4dv (v: PGLdouble); external opengl32; +procedure glTexCoord4f (s,t,r,q: GLfloat); external opengl32; +procedure glTexCoord4fv (v: PGLfloat); external opengl32; +procedure glTexCoord4i (s,t,r,q: GLint); external opengl32; +procedure glTexCoord4iv (v: PGLint); external opengl32; +procedure glTexCoord4s (s,t,r,q: GLshort); external opengl32; +procedure glTexCoord4sv (v: PGLshort); external opengl32; +procedure glTexCoord(s: GLdouble); external opengl32 name 'glTexCoord1d'; +procedure glTexCoord1(v: PGLdouble); external opengl32 name 'glTexCoord1dv'; +procedure glTexCoord(s: GLfloat); external opengl32 name 'glTexCoord1f'; +procedure glTexCoord1(v: PGLfloat); external opengl32 name 'glTexCoord1fv'; +procedure glTexCoord(s: GLint); external opengl32 name 'glTexCoord1i'; +procedure glTexCoord1(v: PGLint); external opengl32 name 'glTexCoord1iv'; +procedure glTexCoord(s: GLshort); external opengl32 name 'glTexCoord1s'; +procedure glTexCoord1(v: PGLshort); external opengl32 name 'glTexCoord1sv'; +procedure glTexCoord(s,t: GLdouble); external opengl32 name 'glTexCoord2d'; +procedure glTexCoord2(v: PGLdouble); external opengl32 name 'glTexCoord2dv'; +procedure glTexCoord(s,t: GLfloat); external opengl32 name 'glTexCoord2f'; +procedure glTexCoord2(v: PGLfloat); external opengl32 name 'glTexCoord2fv'; +procedure glTexCoord(s,t: GLint); external opengl32 name 'glTexCoord2i'; +procedure glTexCoord2(v: PGLint); external opengl32 name 'glTexCoord2iv'; +procedure glTexCoord(s,t: GLshort); external opengl32 name 'glTexCoord2s'; +procedure glTexCoord2(v: PGLshort); external opengl32 name 'glTexCoord2sv'; +procedure glTexCoord(s,t,r: GLdouble); external opengl32 name 'glTexCoord3d'; +procedure glTexCoord3(v: PGLdouble); external opengl32 name 'glTexCoord3dv'; +procedure glTexCoord(s,t,r: GLfloat); external opengl32 name 'glTexCoord3f'; +procedure glTexCoord3(v: PGLfloat); external opengl32 name 'glTexCoord3fv'; +procedure glTexCoord(s,t,r: GLint); external opengl32 name 'glTexCoord3i'; +procedure glTexCoord3(v: PGLint); external opengl32 name 'glTexCoord3iv'; +procedure glTexCoord(s,t,r: GLshort); external opengl32 name 'glTexCoord3s'; +procedure glTexCoord3(v: PGLshort); external opengl32 name 'glTexCoord3sv'; +procedure glTexCoord(s,t,r,q: GLdouble); external opengl32 name 'glTexCoord4d'; +procedure glTexCoord4(v: PGLdouble); external opengl32 name 'glTexCoord4dv'; +procedure glTexCoord(s,t,r,q: GLfloat); external opengl32 name 'glTexCoord4f'; +procedure glTexCoord4(v: PGLfloat); external opengl32 name 'glTexCoord4fv'; +procedure glTexCoord(s,t,r,q: GLint); external opengl32 name 'glTexCoord4i'; +procedure glTexCoord4(v: PGLint); external opengl32 name 'glTexCoord4iv'; +procedure glTexCoord(s,t,r,q: GLshort); external opengl32 name 'glTexCoord4s'; +procedure glTexCoord4(v: PGLshort); external opengl32 name 'glTexCoord4sv'; +procedure glTexEnvf (target, pname: GLenum; param: GLfloat); external opengl32; +procedure glTexEnvfv (target, pname: GLenum; prms: PGLfloat); external opengl32; +procedure glTexEnvi (target, pname: GLenum; param: GLint); external opengl32; +procedure glTexEnviv (target, pname: GLenum; prms: PGLint); external opengl32; +procedure glTexEnv(target, pname: GLenum; param: GLfloat); external opengl32 name 'glTexEnvf'; +procedure glTexEnv(target, pname: GLenum; prms: PGLfloat); external opengl32 name 'glTexEnvfv'; +procedure glTexEnv(target, pname: GLenum; param: GLint); external opengl32 name 'glTexEnvi'; +procedure glTexEnv(target, pname: GLenum; prms: PGLint); external opengl32 name 'glTexEnviv'; +procedure glTexGend (coord, pname: GLenum; param: GLdouble); external opengl32; +procedure glTexGendv (coord, pname: GLenum; prms: PGLdouble); external opengl32; +procedure glTexGenf (coord, pname: GLenum; param: GLfloat); external opengl32; +procedure glTexGenfv (coord, pname: GLenum; prms: PGLfloat); external opengl32; +procedure glTexGeni (coord, pname: GLenum; param: GLint); external opengl32; +procedure glTexGeniv (coord, pname: GLenum; prms: PGLint); external opengl32; +procedure glTexGen(coord, pname: GLenum; param: GLdouble); external opengl32 name 'glTexGend'; +procedure glTexGen(coord, pname: GLenum; prms: PGLdouble); external opengl32 name 'glTexGendv'; +procedure glTexGen(coord, pname: GLenum; param: GLfloat); external opengl32 name 'glTexGenf'; +procedure glTexGen(coord, pname: GLenum; prms: PGLfloat); external opengl32 name 'glTexGenfv'; +procedure glTexGen(coord, pname: GLenum; param: GLint); external opengl32 name 'glTexGeni'; +procedure glTexGen(coord, pname: GLenum; prms: PGLint); external opengl32 name 'glTexGeniv'; +procedure glTexImage1D (target: GLenum; level, components: GLint; + width: GLsizei; border: GLint; format, _type: GLenum; pixels: Pointer); external opengl32; +procedure glTexImage2D (target: GLenum; level, components: GLint; + width, height: GLsizei; border: GLint; format, _type: GLenum; pixels: Pointer); external opengl32; +procedure glTexParameterf (target, pname: GLenum; param: GLfloat); external opengl32; +procedure glTexParameterfv (target, pname: GLenum; prms: PGLfloat); external opengl32; +procedure glTexParameteri (target, pname: GLenum; param: GLint); external opengl32; +procedure glTexParameteriv (target, pname: GLenum; prms: PGLint); external opengl32; +procedure glTexParameter(target, pname: GLenum; param: GLfloat); external opengl32 name 'glTexParameterf'; +procedure glTexParameter(target, pname: GLenum; prms: PGLfloat); external opengl32 name 'glTexParameterfv'; +procedure glTexParameter(target, pname: GLenum; param: GLint); external opengl32 name 'glTexParameteri'; +procedure glTexParameter(target, pname: GLenum; prms: PGLint); external opengl32 name 'glTexParameteriv'; +procedure glTranslated (x,y,z: GLdouble); external opengl32; +procedure glTranslatef (x,y,z: GLfloat); external opengl32; +procedure glTranslate(x,y,z: GLdouble); external opengl32 name 'glTranslated'; +procedure glTranslate(x,y,z: GLfloat); external opengl32 name 'glTranslatef'; +procedure glVertex2d (x,y: GLdouble); external opengl32; +procedure glVertex2dv (v: PGLdouble); external opengl32; +procedure glVertex2f (x,y: GLfloat); external opengl32; +procedure glVertex2fv (v: PGLfloat); external opengl32; +procedure glVertex2i (x,y: GLint); external opengl32; +procedure glVertex2iv (v: PGLint); external opengl32; +procedure glVertex2s (x,y: GLshort); external opengl32; +procedure glVertex2sv (v: PGLshort); external opengl32; +procedure glVertex3d (x,y,z: GLdouble); external opengl32; +procedure glVertex3dv (v: PGLdouble); external opengl32; +procedure glVertex3f (x,y,z: GLfloat); external opengl32; +procedure glVertex3fv (v: PGLfloat); external opengl32; +procedure glVertex3i (x,y,z: GLint); external opengl32; +procedure glVertex3iv (v: PGLint); external opengl32; +procedure glVertex3s (x,y,z: GLshort); external opengl32; +procedure glVertex3sv (v: PGLshort); external opengl32; +procedure glVertex4d (x,y,z,w: GLdouble); external opengl32; +procedure glVertex4dv (v: PGLdouble); external opengl32; +procedure glVertex4f (x,y,z,w: GLfloat); external opengl32; +procedure glVertex4fv (v: PGLfloat); external opengl32; +procedure glVertex4i (x,y,z,w: GLint); external opengl32; +procedure glVertex4iv (v: PGLint); external opengl32; +procedure glVertex4s (x,y,z,w: GLshort); external opengl32; +procedure glVertex4sv (v: PGLshort); external opengl32; +procedure glVertex(x,y: GLdouble); external opengl32 name 'glVertex2d'; +procedure glVertex2(v: PGLdouble); external opengl32 name 'glVertex2dv'; +procedure glVertex(x,y: GLfloat); external opengl32 name 'glVertex2f'; +procedure glVertex2(v: PGLfloat); external opengl32 name 'glVertex2fv'; +procedure glVertex(x,y: GLint); external opengl32 name 'glVertex2i'; +procedure glVertex2(v: PGLint); external opengl32 name 'glVertex2iv'; +procedure glVertex(x,y: GLshort); external opengl32 name 'glVertex2s'; +procedure glVertex2(v: PGLshort); external opengl32 name 'glVertex2sv'; +procedure glVertex(x,y,z: GLdouble); external opengl32 name 'glVertex3d'; +procedure glVertex3(v: PGLdouble); external opengl32 name 'glVertex3dv'; +procedure glVertex(x,y,z: GLfloat); external opengl32 name 'glVertex3f'; +procedure glVertex3(v: PGLfloat); external opengl32 name 'glVertex3fv'; +procedure glVertex(x,y,z: GLint); external opengl32 name 'glVertex3i'; +procedure glVertex3(v: PGLint); external opengl32 name 'glVertex3iv'; +procedure glVertex(x,y,z: GLshort); external opengl32 name 'glVertex3s'; +procedure glVertex3(v: PGLshort); external opengl32 name 'glVertex3sv'; +procedure glVertex(x,y,z,w: GLdouble); external opengl32 name 'glVertex4d'; +procedure glVertex4(v: PGLdouble); external opengl32 name 'glVertex4dv'; +procedure glVertex(x,y,z,w: GLfloat); external opengl32 name 'glVertex4f'; +procedure glVertex4(v: PGLfloat); external opengl32 name 'glVertex4fv'; +procedure glVertex(x,y,z,w: GLint); external opengl32 name 'glVertex4i'; +procedure glVertex4(v: PGLint); external opengl32 name 'glVertex4iv'; +procedure glVertex(x,y,z,w: GLshort); external opengl32 name 'glVertex4s'; +procedure glVertex4(v: PGLshort); external opengl32 name 'glVertex4sv'; +procedure glViewport (x,y: GLint; width, height: GLsizei); external opengl32; + +function wglGetProcAddress(ProcName: PChar): Pointer; external opengl32; + + +function gluErrorString (errCode: GLenum): PChar; external glu32; +function gluErrorUnicodeStringEXT (errCode: GLenum): PWChar; external glu32; +function gluGetString (name: GLenum): PChar; external glu32; +procedure gluLookAt(eyex, eyey, eyez, + centerx, centery, centerz, + upx, upy, upz: GLdouble); external glu32; +procedure gluOrtho2D(left, right, bottom, top: GLdouble); external glu32; +procedure gluPerspective(fovy, aspect, zNear, zFar: GLdouble); external glu32; +procedure gluPickMatrix (x, y, width, height: GLdouble; viewport: PGLint); external glu32; +function gluProject (objx, objy, obyz: GLdouble; + modelMatrix: PGLdouble; + projMatrix: PGLdouble; + viewport: PGLint; + var winx, winy, winz: GLDouble): Integer; external glu32; +function gluUnProject(winx, winy, winz: GLdouble; + modelMatrix: PGLdouble; + projMatrix: PGLdouble; + viewport: PGLint; + var objx, objy, objz: GLdouble): Integer; external glu32; +function gluScaleImage(format: GLenum; + widthin, heightin: GLint; typein: GLenum; datain: Pointer; + widthout, heightout: GLint; typeout: GLenum; dataout: Pointer): Integer; external glu32; +function gluBuild1DMipmaps (target: GLenum; components, width: GLint; + format, atype: GLenum; data: Pointer): Integer; external glu32; +function gluBuild2DMipmaps (target: GLenum; components, width, height: GLint; + format, atype: GLenum; data: Pointer): Integer; external glu32; +function gluNewQuadric: GLUquadricObj; external glu32; +procedure gluDeleteQuadric (state: GLUquadricObj); external glu32; +procedure gluQuadricNormals (quadObject: GLUquadricObj; normals: GLenum); external glu32; +procedure gluQuadricTexture (quadObject: GLUquadricObj; textureCoords: GLboolean ); external glu32; +procedure gluQuadricOrientation (quadObject: GLUquadricObj; orientation: GLenum); external glu32; +procedure gluQuadricDrawStyle (quadObject: GLUquadricObj; drawStyle: GLenum); external glu32; +procedure gluCylinder (quadObject: GLUquadricObj; + baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); external glu32; +procedure gluDisk (quadObject: GLUquadricObj; + innerRadius, outerRadius: GLdouble; slices, loops: GLint); external glu32; +procedure gluPartialDisk (quadObject: GLUquadricObj; + innerRadius, outerRadius: GLdouble; slices, loops: GLint; + startAngle, sweepAngle: GLdouble); external glu32; +procedure gluSphere (quadObject: GLUquadricObj; radius: GLdouble; slices, loops: GLint); external glu32; +procedure gluQuadricCallback (quadObject: GLUquadricObj; which: GLenum; + callback: Pointer); external glu32; + +function gluNewTess: GLUtesselator ;external glu32; +procedure gluDeleteTess( tess: GLUtesselator ) ;external glu32; +procedure gluTessBeginPolygon( tess: GLUtesselator; gon_data: Pointer ) ;external glu32; +procedure gluTessBeginContour( tess: GLUtesselator ) ;external glu32; +procedure gluTessVertex( tess: GLUtesselator; coords: PGLdouble; data: Pointer ) ;external glu32; +procedure gluTessEndContour( tess: GLUtesselator ) ;external glu32; +procedure gluTessEndPolygon( tess: GLUtesselator ) ;external glu32; +procedure gluTessProperty( tess: GLUtesselator; which: GLenum; value: GLdouble) ;external glu32; +procedure gluTessNormal( tess: GLUtesselator; x,y,z: GLdouble) ;external glu32; +procedure gluTessCallback( tess: GLUtesselator; which: GLenum; callback: pointer) ;external glu32; + +function gluNewNurbsRenderer: GLUnurbsObj ;external glu32; +procedure gluDeleteNurbsRenderer (nobj: GLUnurbsObj) ;external glu32; +procedure gluBeginSurface (nobj: GLUnurbsObj) ;external glu32; +procedure gluBeginCurve (nobj: GLUnurbsObj) ;external glu32; +procedure gluEndCurve (nobj: GLUnurbsObj) ;external glu32; +procedure gluEndSurface (nobj: GLUnurbsObj) ;external glu32; +procedure gluBeginTrim (nobj: GLUnurbsObj) ;external glu32; +procedure gluEndTrim (nobj: GLUnurbsObj) ;external glu32; +procedure gluPwlCurve (nobj: GLUnurbsObj; count: GLint; points: PGLfloat; + stride: GLint; _type: GLenum) ;external glu32; +procedure gluNurbsCurve (nobj: GLUnurbsObj; nknots: GLint; knot: PGLfloat; + stride: GLint; ctlpts: PGLfloat; order: GLint; _type: GLenum) ;external glu32; +procedure gluNurbsSurface (nobj: GLUnurbsObj; + sknot_count: GLint; sknot: PGLfloat; + tknot_count: GLint; tknot: PGLfloat; + s_stride, t_stride: GLint; + ctlpts: PGLfloat; sorder, torder: GLint; _type: GLenum) ;external glu32; +procedure gluLoadSamplingMatrices (nobj: GLUnurbsObj; + modelMatrix: PGLdouble; projMatrix: PGLdouble; viewport: PGLint) ;external glu32; +procedure gluNurbsProperty (nobj: GLUnurbsObj; prop: GLenum; value: GLfloat) ;external glu32; +procedure gluGetNurbsProperty (nobj: GLUnurbsObj; prop: GLenum; var value: GLfloat) ;external glu32; +procedure gluNurbsCallback (nobj: GLUnurbsObj; which: GLenum; callback: pointer) ;external glu32; + +function wglMakeCurrent(_hdc : HDC; _hglrc : HGLRC) : BOOL; external opengl32; +function wglCreateContext(_hdc : HDC) : HGLRC; external opengl32; +function GetDC(_hwnd : HWND) : HDC; external 'user32.dll'; +function _SetPixelFormat(_hdc: HDC; iPixelFormat : integer; ppfd : ^PIXELFORMATDESCRIPTOR): BOOL; external 'gdi32.dll' name 'SetPixelFormat'; +function LoadLibrary(s : string) : BOOL; external 'kernel32.dll'; +function SetPixelFormat(_hdc: HDC; iPixelFormat : integer; ppfd : ^PIXELFORMATDESCRIPTOR): BOOL; +begin + LoadLibrary('opengl32.dll'); + Result := _SetPixelFormat(_hdc,iPixelFormat,ppfd); +end; +function ChoosePixelFormat(_hdc: HDC; ppfd : ^PIXELFORMATDESCRIPTOR): integer; external 'gdi32.dll'; + +function wglDeleteContext(_hgrlc : HGLRC) :BOOL; external opengl32; + +function SwapBuffers(_hdc : HDC) : BOOL; external 'gdi32.dll'; + +type HandleInfo = record +_hdc : HDC; +_hgrlc : HGLRC; +end; + +var contexts : System.Collections.Generic.Dictionary := new System.Collections.Generic.Dictionary; + +procedure OpenGLInit(Handle : IntPtr); +begin + var pfd : PIXELFORMATDESCRIPTOR; + var iformat : integer; + var _hdc := GetDC(Handle.ToInt32()); + pfd.nSize := sizeof( PIXELFORMATDESCRIPTOR ); + pfd.nVersion := 1; + pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or + PFD_DOUBLEBUFFER; + pfd.iPixelType := PFD_TYPE_RGBA; + pfd.cColorBits := 24; + pfd.cDepthBits := 16; + pfd.iLayerType := PFD_MAIN_PLANE; + iFormat := ChoosePixelFormat( _hDC, @pfd ); + SetPixelFormat( _hdc, iFormat, @pfd ); + var _hgrlc := wglCreateContext(_hdc); + wglMakeCurrent(_hdc,_hgrlc); + var hi : HandleInfo; + hi._hdc := _hdc; + hi._hgrlc := _hgrlc; + contexts.Add(Handle,hi); +end; + +procedure OpenGLUninit(Handle : IntPtr); +begin + wglDeleteContext(contexts[Handle]._hgrlc); +end; + +begin + //Set8087CW($133F); +end.