unit gl;
{
$Id: gl.pas,v 1.5 2007/05/20 20:28:31 savage Exp $
Adaption of the delphi3d.net OpenGL units to FreePascal
Sebastian Guenther (sg@freepascal.org) in 2002
These units are free to use
}
(*++ BUILD Version: 0004 // Increment this if a change has global effects
Copyright (c) 1985-96, Microsoft Corporation
Module Name:
gl.h
Abstract:
Procedure declarations, constant definitions and macros for the OpenGL
component.
--*)
(*
** Copyright 1996 Silicon Graphics, Inc.
** All Rights Reserved.
**
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
** the contents of this file may not be disclosed to third parties, copied or
** duplicated in any form, in whole or in part, without the prior written
** permission of Silicon Graphics, Inc.
**
** RESTRICTED RIGHTS LEGEND:
** Use, duplication or disclosure by the Government is subject to restrictions
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
** rights reserved under the Copyright Laws of the United States.
*)
{******************************************************************************}
{ }
{ Converted to Delphi by Tom Nuydens (tom@delphi3d.net) }
{ For the latest updates, visit Delphi3D: http://www.delphi3d.net }
{ }
{ Modified for Delphi/Kylix and FreePascal }
{ by Dominique Louis ( Dominique@Savagesoftware.com.au) }
{ For the latest updates, visit JEDI-SDL : http://www.sf.net/projects/jedi-sdl }
{ }
{******************************************************************************}
{
$Log: gl.pas,v $
Revision 1.5 2007/05/20 20:28:31 savage
Initial Changes to Handle 64 Bits
Revision 1.4 2006/11/20 21:20:59 savage
Updated to work in MacOS X
Revision 1.3 2005/05/22 18:52:09 savage
Changes as suggested by Michalis Kamburelis. Thanks again.
Revision 1.2 2004/08/14 22:54:30 savage
Updated so that Library name defines are correctly defined for MacOS X.
Revision 1.1 2004/03/30 21:53:54 savage
Moved to it's own folder.
Revision 1.4 2004/02/20 17:09:55 savage
Code tidied up in gl, glu and glut, while extensions in glext.pas are now loaded using SDL_GL_GetProcAddress, thus making it more cross-platform compatible, but now more tied to SDL.
Revision 1.3 2004/02/14 00:23:39 savage
As UNIX is defined in jedi-sdl.inc this will be used to check linux compatability as well. Units have been changed to reflect this change.
Revision 1.2 2004/02/14 00:09:18 savage
Changed uses to now make use of moduleloader.pas rather than dllfuncs.pas
Revision 1.1 2004/02/05 00:08:19 savage
Module 1.0 release
Revision 1.6 2003/06/02 12:32:12 savage
Modified Sources to avoid warnings with Delphi by moving CVS Logging to the top of the header files. Hopefully CVS Logging still works.
}
interface
{$I jedi-sdl.inc}
uses
{$IFDEF __GPC__}
system,
gpc,
{$ENDIF}
{$IFDEF WINDOWS}
Windows,
{$ENDIF}
moduleloader;
var
LibGL: TModuleHandle;
type
GLenum = Cardinal; PGLenum = ^GLenum;
GLboolean = Byte; PGLboolean = ^GLboolean;
GLbitfield = Cardinal; PGLbitfield = ^GLbitfield;
GLbyte = ShortInt; PGLbyte = ^GLbyte;
GLshort = SmallInt; PGLshort = ^GLshort;
GLint = Integer; PGLint = ^GLint;
GLsizei = Integer; PGLsizei = ^GLsizei;
GLubyte = Byte; PGLubyte = ^GLubyte;
GLushort = Word; PGLushort = ^GLushort;
GLuint = Cardinal; PGLuint = ^GLuint;
GLfloat = Single; PGLfloat = ^GLfloat;
GLclampf = Single; PGLclampf = ^GLclampf;
GLdouble = Double; PGLdouble = ^GLdouble;
GLclampd = Double; PGLclampd = ^GLclampd;
{ GLvoid = void; } PGLvoid = Pointer;
{******************************************************************************}
const
{$IFDEF WINDOWS}
GLLibName = 'OpenGL32.dll';
{$ENDIF}
{$IFDEF UNIX}
{$IFDEF DARWIN}
GLLibName = '/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib';
{$ELSE}
GLLibName = 'libGL.so.1';
{$ENDIF}
{$ENDIF}
// Version
GL_VERSION_1_1 = 1;
// AccumOp
GL_ACCUM = $0100;
GL_LOAD = $0101;
GL_RETURN = $0102;
GL_MULT = $0103;
GL_ADD = $0104;
// AlphaFunction
GL_NEVER = $0200;
GL_LESS = $0201;
GL_EQUAL = $0202;
GL_LEQUAL = $0203;
GL_GREATER = $0204;
GL_NOTEQUAL = $0205;
GL_GEQUAL = $0206;
GL_ALWAYS = $0207;
// AttribMask
GL_CURRENT_BIT = $00000001;
GL_POINT_BIT = $00000002;
GL_LINE_BIT = $00000004;
GL_POLYGON_BIT = $00000008;
GL_POLYGON_STIPPLE_BIT = $00000010;
GL_PIXEL_MODE_BIT = $00000020;
GL_LIGHTING_BIT = $00000040;
GL_FOG_BIT = $00000080;
GL_DEPTH_BUFFER_BIT = $00000100;
GL_ACCUM_BUFFER_BIT = $00000200;
GL_STENCIL_BUFFER_BIT = $00000400;
GL_VIEWPORT_BIT = $00000800;
GL_TRANSFORM_BIT = $00001000;
GL_ENABLE_BIT = $00002000;
GL_COLOR_BUFFER_BIT = $00004000;
GL_HINT_BIT = $00008000;
GL_EVAL_BIT = $00010000;
GL_LIST_BIT = $00020000;
GL_TEXTURE_BIT = $00040000;
GL_SCISSOR_BIT = $00080000;
GL_ALL_ATTRIB_BITS = $000FFFFF;
// BeginMode
GL_POINTS = $0000;
GL_LINES = $0001;
GL_LINE_LOOP = $0002;
GL_LINE_STRIP = $0003;
GL_TRIANGLES = $0004;
GL_TRIANGLE_STRIP = $0005;
GL_TRIANGLE_FAN = $0006;
GL_QUADS = $0007;
GL_QUAD_STRIP = $0008;
GL_POLYGON = $0009;
// BlendingFactorDest
GL_ZERO = 0;
GL_ONE = 1;
GL_SRC_COLOR = $0300;
GL_ONE_MINUS_SRC_COLOR = $0301;
GL_SRC_ALPHA = $0302;
GL_ONE_MINUS_SRC_ALPHA = $0303;
GL_DST_ALPHA = $0304;
GL_ONE_MINUS_DST_ALPHA = $0305;
// BlendingFactorSrc
// GL_ZERO
// GL_ONE
GL_DST_COLOR = $0306;
GL_ONE_MINUS_DST_COLOR = $0307;
GL_SRC_ALPHA_SATURATE = $0308;
// GL_SRC_ALPHA
// GL_ONE_MINUS_SRC_ALPHA
// GL_DST_ALPHA
// GL_ONE_MINUS_DST_ALPHA
// Boolean
GL_TRUE = 1;
GL_FALSE = 0;
// ClearBufferMask
// GL_COLOR_BUFFER_BIT
// GL_ACCUM_BUFFER_BIT
// GL_STENCIL_BUFFER_BIT
// GL_DEPTH_BUFFER_BIT
// ClientArrayType
// GL_VERTEX_ARRAY
// GL_NORMAL_ARRAY
// GL_COLOR_ARRAY
// GL_INDEX_ARRAY
// GL_TEXTURE_COORD_ARRAY
// GL_EDGE_FLAG_ARRAY
// ClipPlaneName
GL_CLIP_PLANE0 = $3000;
GL_CLIP_PLANE1 = $3001;
GL_CLIP_PLANE2 = $3002;
GL_CLIP_PLANE3 = $3003;
GL_CLIP_PLANE4 = $3004;
GL_CLIP_PLANE5 = $3005;
// ColorMaterialFace
// GL_FRONT
// GL_BACK
// GL_FRONT_AND_BACK
// ColorMaterialParameter
// GL_AMBIENT
// GL_DIFFUSE
// GL_SPECULAR
// GL_EMISSION
// GL_AMBIENT_AND_DIFFUSE
// ColorPointerType
// GL_BYTE
// GL_UNSIGNED_BYTE
// GL_SHORT
// GL_UNSIGNED_SHORT
// GL_INT
// GL_UNSIGNED_INT
// GL_FLOAT
// GL_DOUBLE
// CullFaceMode
// GL_FRONT
// GL_BACK
// GL_FRONT_AND_BACK
// DataType
GL_BYTE = $1400;
GL_UNSIGNED_BYTE = $1401;
GL_SHORT = $1402;
GL_UNSIGNED_SHORT = $1403;
GL_INT = $1404;
GL_UNSIGNED_INT = $1405;
GL_FLOAT = $1406;
GL_2_BYTES = $1407;
GL_3_BYTES = $1408;
GL_4_BYTES = $1409;
GL_DOUBLE = $140A;
// DepthFunction
// GL_NEVER
// GL_LESS
// GL_EQUAL
// GL_LEQUAL
// GL_GREATER
// GL_NOTEQUAL
// GL_GEQUAL
// GL_ALWAYS
// DrawBufferMode
GL_NONE = 0;
GL_FRONT_LEFT = $0400;
GL_FRONT_RIGHT = $0401;
GL_BACK_LEFT = $0402;
GL_BACK_RIGHT = $0403;
GL_FRONT = $0404;
GL_BACK = $0405;
GL_LEFT = $0406;
GL_RIGHT = $0407;
GL_FRONT_AND_BACK = $0408;
GL_AUX0 = $0409;
GL_AUX1 = $040A;
GL_AUX2 = $040B;
GL_AUX3 = $040C;
// Enable
// GL_FOG
// GL_LIGHTING
// GL_TEXTURE_1D
// GL_TEXTURE_2D
// GL_LINE_STIPPLE
// GL_POLYGON_STIPPLE
// GL_CULL_FACE
// GL_ALPHA_TEST
// GL_BLEND
// GL_INDEX_LOGIC_OP
// GL_COLOR_LOGIC_OP
// GL_DITHER
// GL_STENCIL_TEST
// GL_DEPTH_TEST
// GL_CLIP_PLANE0
// GL_CLIP_PLANE1
// GL_CLIP_PLANE2
// GL_CLIP_PLANE3
// GL_CLIP_PLANE4
// GL_CLIP_PLANE5
// GL_LIGHT0
// GL_LIGHT1
// GL_LIGHT2
// GL_LIGHT3
// GL_LIGHT4
// GL_LIGHT5
// GL_LIGHT6
// GL_LIGHT7
// GL_TEXTURE_GEN_S
// GL_TEXTURE_GEN_T
// GL_TEXTURE_GEN_R
// GL_TEXTURE_GEN_Q
// GL_MAP1_VERTEX_3
// GL_MAP1_VERTEX_4
// 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_MAP2_VERTEX_3
// GL_MAP2_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_POINT_SMOOTH
// GL_LINE_SMOOTH
// GL_POLYGON_SMOOTH
// GL_SCISSOR_TEST
// GL_COLOR_MATERIAL
// GL_NORMALIZE
// GL_AUTO_NORMAL
// GL_VERTEX_ARRAY
// GL_NORMAL_ARRAY
// GL_COLOR_ARRAY
// GL_INDEX_ARRAY
// GL_TEXTURE_COORD_ARRAY
// GL_EDGE_FLAG_ARRAY
// GL_POLYGON_OFFSET_POINT
// GL_POLYGON_OFFSET_LINE
// GL_POLYGON_OFFSET_FILL
// ErrorCode
GL_NO_ERROR = 0;
GL_INVALID_ENUM = $0500;
GL_INVALID_VALUE = $0501;
GL_INVALID_OPERATION = $0502;
GL_STACK_OVERFLOW = $0503;
GL_STACK_UNDERFLOW = $0504;
GL_OUT_OF_MEMORY = $0505;
// FeedBackMode
GL_2D = $0600;
GL_3D = $0601;
GL_3D_COLOR = $0602;
GL_3D_COLOR_TEXTURE = $0603;
GL_4D_COLOR_TEXTURE = $0604;
// FeedBackToken
GL_PASS_THROUGH_TOKEN = $0700;
GL_POINT_TOKEN = $0701;
GL_LINE_TOKEN = $0702;
GL_POLYGON_TOKEN = $0703;
GL_BITMAP_TOKEN = $0704;
GL_DRAW_PIXEL_TOKEN = $0705;
GL_COPY_PIXEL_TOKEN = $0706;
GL_LINE_RESET_TOKEN = $0707;
// FogMode
// GL_LINEAR
GL_EXP = $0800;
GL_EXP2 = $0801;
// FogParameter
// GL_FOG_COLOR
// GL_FOG_DENSITY
// GL_FOG_END
// GL_FOG_INDEX
// GL_FOG_MODE
// GL_FOG_START
// FrontFaceDirection
GL_CW = $0900;
GL_CCW = $0901;
// GetMapTarget
GL_COEFF = $0A00;
GL_ORDER = $0A01;
GL_DOMAIN = $0A02;
// GetPixelMap
// 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
// GetPointerTarget
// GL_VERTEX_ARRAY_POINTER
// GL_NORMAL_ARRAY_POINTER
// GL_COLOR_ARRAY_POINTER
// GL_INDEX_ARRAY_POINTER
// GL_TEXTURE_COORD_ARRAY_POINTER
// GL_EDGE_FLAG_ARRAY_POINTER
// GetTarget
GL_CURRENT_COLOR = $0B00;
GL_CURRENT_INDEX = $0B01;
GL_CURRENT_NORMAL = $0B02;
GL_CURRENT_TEXTURE_COORDS = $0B03;
GL_CURRENT_RASTER_COLOR = $0B04;
GL_CURRENT_RASTER_INDEX = $0B05;
GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
GL_CURRENT_RASTER_POSITION = $0B07;
GL_CURRENT_RASTER_POSITION_VALID = $0B08;
GL_CURRENT_RASTER_DISTANCE = $0B09;
GL_POINT_SMOOTH = $0B10;
GL_POINT_SIZE = $0B11;
GL_POINT_SIZE_RANGE = $0B12;
GL_POINT_SIZE_GRANULARITY = $0B13;
GL_LINE_SMOOTH = $0B20;
GL_LINE_WIDTH = $0B21;
GL_LINE_WIDTH_RANGE = $0B22;
GL_LINE_WIDTH_GRANULARITY = $0B23;
GL_LINE_STIPPLE = $0B24;
GL_LINE_STIPPLE_PATTERN = $0B25;
GL_LINE_STIPPLE_REPEAT = $0B26;
GL_LIST_MODE = $0B30;
GL_MAX_LIST_NESTING = $0B31;
GL_LIST_BASE = $0B32;
GL_LIST_INDEX = $0B33;
GL_POLYGON_MODE = $0B40;
GL_POLYGON_SMOOTH = $0B41;
GL_POLYGON_STIPPLE = $0B42;
GL_EDGE_FLAG = $0B43;
GL_CULL_FACE = $0B44;
GL_CULL_FACE_MODE = $0B45;
GL_FRONT_FACE = $0B46;
GL_LIGHTING = $0B50;
GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
GL_LIGHT_MODEL_TWO_SIDE = $0B52;
GL_LIGHT_MODEL_AMBIENT = $0B53;
GL_SHADE_MODEL = $0B54;
GL_COLOR_MATERIAL_FACE = $0B55;
GL_COLOR_MATERIAL_PARAMETER = $0B56;
GL_COLOR_MATERIAL = $0B57;
GL_FOG = $0B60;
GL_FOG_INDEX = $0B61;
GL_FOG_DENSITY = $0B62;
GL_FOG_START = $0B63;
GL_FOG_END = $0B64;
GL_FOG_MODE = $0B65;
GL_FOG_COLOR = $0B66;
GL_DEPTH_RANGE = $0B70;
GL_DEPTH_TEST = $0B71;
GL_DEPTH_WRITEMASK = $0B72;
GL_DEPTH_CLEAR_VALUE = $0B73;
GL_DEPTH_FUNC = $0B74;
GL_ACCUM_CLEAR_VALUE = $0B80;
GL_STENCIL_TEST = $0B90;
GL_STENCIL_CLEAR_VALUE = $0B91;
GL_STENCIL_FUNC = $0B92;
GL_STENCIL_VALUE_MASK = $0B93;
GL_STENCIL_FAIL = $0B94;
GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
GL_STENCIL_PASS_DEPTH_PASS = $0B96;
GL_STENCIL_REF = $0B97;
GL_STENCIL_WRITEMASK = $0B98;
GL_MATRIX_MODE = $0BA0;
GL_NORMALIZE = $0BA1;
GL_VIEWPORT = $0BA2;
GL_MODELVIEW_STACK_DEPTH = $0BA3;
GL_PROJECTION_STACK_DEPTH = $0BA4;
GL_TEXTURE_STACK_DEPTH = $0BA5;
GL_MODELVIEW_MATRIX = $0BA6;
GL_PROJECTION_MATRIX = $0BA7;
GL_TEXTURE_MATRIX = $0BA8;
GL_ATTRIB_STACK_DEPTH = $0BB0;
GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
GL_ALPHA_TEST = $0BC0;
GL_ALPHA_TEST_FUNC = $0BC1;
GL_ALPHA_TEST_REF = $0BC2;
GL_DITHER = $0BD0;
GL_BLEND_DST = $0BE0;
GL_BLEND_SRC = $0BE1;
GL_BLEND = $0BE2;
GL_LOGIC_OP_MODE = $0BF0;
GL_INDEX_LOGIC_OP = $0BF1;
GL_COLOR_LOGIC_OP = $0BF2;
GL_AUX_BUFFERS = $0C00;
GL_DRAW_BUFFER = $0C01;
GL_READ_BUFFER = $0C02;
GL_SCISSOR_BOX = $0C10;
GL_SCISSOR_TEST = $0C11;
GL_INDEX_CLEAR_VALUE = $0C20;
GL_INDEX_WRITEMASK = $0C21;
GL_COLOR_CLEAR_VALUE = $0C22;
GL_COLOR_WRITEMASK = $0C23;
GL_INDEX_MODE = $0C30;
GL_RGBA_MODE = $0C31;
GL_DOUBLEBUFFER = $0C32;
GL_STEREO = $0C33;
GL_RENDER_MODE = $0C40;
GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
GL_POINT_SMOOTH_HINT = $0C51;
GL_LINE_SMOOTH_HINT = $0C52;
GL_POLYGON_SMOOTH_HINT = $0C53;
GL_FOG_HINT = $0C54;
GL_TEXTURE_GEN_S = $0C60;
GL_TEXTURE_GEN_T = $0C61;
GL_TEXTURE_GEN_R = $0C62;
GL_TEXTURE_GEN_Q = $0C63;
GL_PIXEL_MAP_I_TO_I = $0C70;
GL_PIXEL_MAP_S_TO_S = $0C71;
GL_PIXEL_MAP_I_TO_R = $0C72;
GL_PIXEL_MAP_I_TO_G = $0C73;
GL_PIXEL_MAP_I_TO_B = $0C74;
GL_PIXEL_MAP_I_TO_A = $0C75;
GL_PIXEL_MAP_R_TO_R = $0C76;
GL_PIXEL_MAP_G_TO_G = $0C77;
GL_PIXEL_MAP_B_TO_B = $0C78;
GL_PIXEL_MAP_A_TO_A = $0C79;
GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
GL_UNPACK_SWAP_BYTES = $0CF0;
GL_UNPACK_LSB_FIRST = $0CF1;
GL_UNPACK_ROW_LENGTH = $0CF2;
GL_UNPACK_SKIP_ROWS = $0CF3;
GL_UNPACK_SKIP_PIXELS = $0CF4;
GL_UNPACK_ALIGNMENT = $0CF5;
GL_PACK_SWAP_BYTES = $0D00;
GL_PACK_LSB_FIRST = $0D01;
GL_PACK_ROW_LENGTH = $0D02;
GL_PACK_SKIP_ROWS = $0D03;
GL_PACK_SKIP_PIXELS = $0D04;
GL_PACK_ALIGNMENT = $0D05;
GL_MAP_COLOR = $0D10;
GL_MAP_STENCIL = $0D11;
GL_INDEX_SHIFT = $0D12;
GL_INDEX_OFFSET = $0D13;
GL_RED_SCALE = $0D14;
GL_RED_BIAS = $0D15;
GL_ZOOM_X = $0D16;
GL_ZOOM_Y = $0D17;
GL_GREEN_SCALE = $0D18;
GL_GREEN_BIAS = $0D19;
GL_BLUE_SCALE = $0D1A;
GL_BLUE_BIAS = $0D1B;
GL_ALPHA_SCALE = $0D1C;
GL_ALPHA_BIAS = $0D1D;
GL_DEPTH_SCALE = $0D1E;
GL_DEPTH_BIAS = $0D1F;
GL_MAX_EVAL_ORDER = $0D30;
GL_MAX_LIGHTS = $0D31;
GL_MAX_CLIP_PLANES = $0D32;
GL_MAX_TEXTURE_SIZE = $0D33;
GL_MAX_PIXEL_MAP_TABLE = $0D34;
GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
GL_MAX_NAME_STACK_DEPTH = $0D37;
GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
GL_MAX_VIEWPORT_DIMS = $0D3A;
GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
GL_SUBPIXEL_BITS = $0D50;
GL_INDEX_BITS = $0D51;
GL_RED_BITS = $0D52;
GL_GREEN_BITS = $0D53;
GL_BLUE_BITS = $0D54;
GL_ALPHA_BITS = $0D55;
GL_DEPTH_BITS = $0D56;
GL_STENCIL_BITS = $0D57;
GL_ACCUM_RED_BITS = $0D58;
GL_ACCUM_GREEN_BITS = $0D59;
GL_ACCUM_BLUE_BITS = $0D5A;
GL_ACCUM_ALPHA_BITS = $0D5B;
GL_NAME_STACK_DEPTH = $0D70;
GL_AUTO_NORMAL = $0D80;
GL_MAP1_COLOR_4 = $0D90;
GL_MAP1_INDEX = $0D91;
GL_MAP1_NORMAL = $0D92;
GL_MAP1_TEXTURE_COORD_1 = $0D93;
GL_MAP1_TEXTURE_COORD_2 = $0D94;
GL_MAP1_TEXTURE_COORD_3 = $0D95;
GL_MAP1_TEXTURE_COORD_4 = $0D96;
GL_MAP1_VERTEX_3 = $0D97;
GL_MAP1_VERTEX_4 = $0D98;
GL_MAP2_COLOR_4 = $0DB0;
GL_MAP2_INDEX = $0DB1;
GL_MAP2_NORMAL = $0DB2;
GL_MAP2_TEXTURE_COORD_1 = $0DB3;
GL_MAP2_TEXTURE_COORD_2 = $0DB4;
GL_MAP2_TEXTURE_COORD_3 = $0DB5;
GL_MAP2_TEXTURE_COORD_4 = $0DB6;
GL_MAP2_VERTEX_3 = $0DB7;
GL_MAP2_VERTEX_4 = $0DB8;
GL_MAP1_GRID_DOMAIN = $0DD0;
GL_MAP1_GRID_SEGMENTS = $0DD1;
GL_MAP2_GRID_DOMAIN = $0DD2;
GL_MAP2_GRID_SEGMENTS = $0DD3;
GL_TEXTURE_1D = $0DE0;
GL_TEXTURE_2D = $0DE1;
GL_FEEDBACK_BUFFER_POINTER = $0DF0;
GL_FEEDBACK_BUFFER_SIZE = $0DF1;
GL_FEEDBACK_BUFFER_TYPE = $0DF2;
GL_SELECTION_BUFFER_POINTER = $0DF3;
GL_SELECTION_BUFFER_SIZE = $0DF4;
// GL_TEXTURE_BINDING_1D
// GL_TEXTURE_BINDING_2D
// GL_VERTEX_ARRAY
// GL_NORMAL_ARRAY
// GL_COLOR_ARRAY
// GL_INDEX_ARRAY
// GL_TEXTURE_COORD_ARRAY
// GL_EDGE_FLAG_ARRAY
// GL_VERTEX_ARRAY_SIZE
// GL_VERTEX_ARRAY_TYPE
// GL_VERTEX_ARRAY_STRIDE
// GL_NORMAL_ARRAY_TYPE
// GL_NORMAL_ARRAY_STRIDE
// GL_COLOR_ARRAY_SIZE
// GL_COLOR_ARRAY_TYPE
// GL_COLOR_ARRAY_STRIDE
// GL_INDEX_ARRAY_TYPE
// GL_INDEX_ARRAY_STRIDE
// GL_TEXTURE_COORD_ARRAY_SIZE
// GL_TEXTURE_COORD_ARRAY_TYPE
// GL_TEXTURE_COORD_ARRAY_STRIDE
// GL_EDGE_FLAG_ARRAY_STRIDE
// GL_POLYGON_OFFSET_FACTOR
// GL_POLYGON_OFFSET_UNITS
// GetTextureParameter
// GL_TEXTURE_MAG_FILTER
// GL_TEXTURE_MIN_FILTER
// GL_TEXTURE_WRAP_S
// GL_TEXTURE_WRAP_T
GL_TEXTURE_WIDTH = $1000;
GL_TEXTURE_HEIGHT = $1001;
GL_TEXTURE_INTERNAL_FORMAT = $1003;
GL_TEXTURE_BORDER_COLOR = $1004;
GL_TEXTURE_BORDER = $1005;
// GL_TEXTURE_RED_SIZE
// GL_TEXTURE_GREEN_SIZE
// GL_TEXTURE_BLUE_SIZE
// GL_TEXTURE_ALPHA_SIZE
// GL_TEXTURE_LUMINANCE_SIZE
// GL_TEXTURE_INTENSITY_SIZE
// GL_TEXTURE_PRIORITY
// GL_TEXTURE_RESIDENT
// HintMode
GL_DONT_CARE = $1100;
GL_FASTEST = $1101;
GL_NICEST = $1102;
// HintTarget
// GL_PERSPECTIVE_CORRECTION_HINT
// GL_POINT_SMOOTH_HINT
// GL_LINE_SMOOTH_HINT
// GL_POLYGON_SMOOTH_HINT
// GL_FOG_HINT
// IndexPointerType
// GL_SHORT
// GL_INT
// GL_FLOAT
// GL_DOUBLE
// LightModelParameter
// GL_LIGHT_MODEL_AMBIENT
// GL_LIGHT_MODEL_LOCAL_VIEWER
// GL_LIGHT_MODEL_TWO_SIDE
// LightName
GL_LIGHT0 = $4000;
GL_LIGHT1 = $4001;
GL_LIGHT2 = $4002;
GL_LIGHT3 = $4003;
GL_LIGHT4 = $4004;
GL_LIGHT5 = $4005;
GL_LIGHT6 = $4006;
GL_LIGHT7 = $4007;
// LightParameter
GL_AMBIENT = $1200;
GL_DIFFUSE = $1201;
GL_SPECULAR = $1202;
GL_POSITION = $1203;
GL_SPOT_DIRECTION = $1204;
GL_SPOT_EXPONENT = $1205;
GL_SPOT_CUTOFF = $1206;
GL_CONSTANT_ATTENUATION = $1207;
GL_LINEAR_ATTENUATION = $1208;
GL_QUADRATIC_ATTENUATION = $1209;
// InterleavedArrays
// GL_V2F
// GL_V3F
// GL_C4UB_V2F
// GL_C4UB_V3F
// GL_C3F_V3F
// GL_N3F_V3F
// GL_C4F_N3F_V3F
// GL_T2F_V3F
// GL_T4F_V4F
// GL_T2F_C4UB_V3F
// GL_T2F_C3F_V3F
// GL_T2F_N3F_V3F
// GL_T2F_C4F_N3F_V3F
// GL_T4F_C4F_N3F_V4F
// ListMode
GL_COMPILE = $1300;
GL_COMPILE_AND_EXECUTE = $1301;
// ListNameType
// GL_BYTE
// GL_UNSIGNED_BYTE
// GL_SHORT
// GL_UNSIGNED_SHORT
// GL_INT
// GL_UNSIGNED_INT
// GL_FLOAT
// GL_2_BYTES
// GL_3_BYTES
// GL_4_BYTES
// LogicOp
GL_CLEAR = $1500;
GL_AND = $1501;
GL_AND_REVERSE = $1502;
GL_COPY = $1503;
GL_AND_INVERTED = $1504;
GL_NOOP = $1505;
GL_XOR = $1506;
GL_OR = $1507;
GL_NOR = $1508;
GL_EQUIV = $1509;
GL_INVERT = $150A;
GL_OR_REVERSE = $150B;
GL_COPY_INVERTED = $150C;
GL_OR_INVERTED = $150D;
GL_NAND = $150E;
GL_SET = $150F;
// 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;
GL_SHININESS = $1601;
GL_AMBIENT_AND_DIFFUSE = $1602;
GL_COLOR_INDEXES = $1603;
// GL_AMBIENT
// GL_DIFFUSE
// GL_SPECULAR
// MatrixMode
GL_MODELVIEW = $1700;
GL_PROJECTION = $1701;
GL_TEXTURE = $1702;
// MeshMode1
// GL_POINT
// GL_LINE
// MeshMode2
// GL_POINT
// GL_LINE
// GL_FILL
// NormalPointerType
// GL_BYTE
// GL_SHORT
// GL_INT
// GL_FLOAT
// GL_DOUBLE
// PixelCopyType
GL_COLOR = $1800;
GL_DEPTH = $1801;
GL_STENCIL = $1802;
// PixelFormat
GL_COLOR_INDEX = $1900;
GL_STENCIL_INDEX = $1901;
GL_DEPTH_COMPONENT = $1902;
GL_RED = $1903;
GL_GREEN = $1904;
GL_BLUE = $1905;
GL_ALPHA = $1906;
GL_RGB = $1907;
GL_RGBA = $1908;
GL_LUMINANCE = $1909;
GL_LUMINANCE_ALPHA = $190A;
// 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;
// GL_BYTE
// GL_UNSIGNED_BYTE
// GL_SHORT
// GL_UNSIGNED_SHORT
// GL_INT
// GL_UNSIGNED_INT
// GL_FLOAT
// PolygonMode
GL_POINT = $1B00;
GL_LINE = $1B01;
GL_FILL = $1B02;
// 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;
GL_FEEDBACK = $1C01;
GL_SELECT = $1C02;
// ShadingModel
GL_FLAT = $1D00;
GL_SMOOTH = $1D01;
// StencilFunction
// GL_NEVER
// GL_LESS
// GL_EQUAL
// GL_LEQUAL
// GL_GREATER
// GL_NOTEQUAL
// GL_GEQUAL
// GL_ALWAYS
// StencilOp
// GL_ZERO
GL_KEEP = $1E00;
GL_REPLACE = $1E01;
GL_INCR = $1E02;
GL_DECR = $1E03;
// GL_INVERT
// StringName
GL_VENDOR = $1F00;
GL_RENDERER = $1F01;
GL_VERSION = $1F02;
GL_EXTENSIONS = $1F03;
// TextureCoordName
GL_S = $2000;
GL_T = $2001;
GL_R = $2002;
GL_Q = $2003;
// TexCoordPointerType
// GL_SHORT
// GL_INT
// GL_FLOAT
// GL_DOUBLE
// TextureEnvMode
GL_MODULATE = $2100;
GL_DECAL = $2101;
// GL_BLEND
// GL_REPLACE
// TextureEnvParameter
GL_TEXTURE_ENV_MODE = $2200;
GL_TEXTURE_ENV_COLOR = $2201;
// TextureEnvTarget
GL_TEXTURE_ENV = $2300;
// TextureGenMode
GL_EYE_LINEAR = $2400;
GL_OBJECT_LINEAR = $2401;
GL_SPHERE_MAP = $2402;
// TextureGenParameter
GL_TEXTURE_GEN_MODE = $2500;
GL_OBJECT_PLANE = $2501;
GL_EYE_PLANE = $2502;
// TextureMagFilter
GL_NEAREST = $2600;
GL_LINEAR = $2601;
// TextureMinFilter
// GL_NEAREST
// GL_LINEAR
GL_NEAREST_MIPMAP_NEAREST = $2700;
GL_LINEAR_MIPMAP_NEAREST = $2701;
GL_NEAREST_MIPMAP_LINEAR = $2702;
GL_LINEAR_MIPMAP_LINEAR = $2703;
// TextureParameterName
GL_TEXTURE_MAG_FILTER = $2800;
GL_TEXTURE_MIN_FILTER = $2801;
GL_TEXTURE_WRAP_S = $2802;
GL_TEXTURE_WRAP_T = $2803;
// GL_TEXTURE_BORDER_COLOR
// GL_TEXTURE_PRIORITY
// TextureTarget
// GL_TEXTURE_1D
// GL_TEXTURE_2D
// GL_PROXY_TEXTURE_1D
// GL_PROXY_TEXTURE_2D
// TextureWrapMode
GL_CLAMP = $2900;
GL_REPEAT = $2901;
// VertexPointerType
// GL_SHORT
// GL_INT
// GL_FLOAT
// GL_DOUBLE
// ClientAttribMask
GL_CLIENT_PIXEL_STORE_BIT = $00000001;
GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
// polygon_offset
GL_POLYGON_OFFSET_FACTOR = $8038;
GL_POLYGON_OFFSET_UNITS = $2A00;
GL_POLYGON_OFFSET_POINT = $2A01;
GL_POLYGON_OFFSET_LINE = $2A02;
GL_POLYGON_OFFSET_FILL = $8037;
// texture
GL_ALPHA4 = $803B;
GL_ALPHA8 = $803C;
GL_ALPHA12 = $803D;
GL_ALPHA16 = $803E;
GL_LUMINANCE4 = $803F;
GL_LUMINANCE8 = $8040;
GL_LUMINANCE12 = $8041;
GL_LUMINANCE16 = $8042;
GL_LUMINANCE4_ALPHA4 = $8043;
GL_LUMINANCE6_ALPHA2 = $8044;
GL_LUMINANCE8_ALPHA8 = $8045;
GL_LUMINANCE12_ALPHA4 = $8046;
GL_LUMINANCE12_ALPHA12 = $8047;
GL_LUMINANCE16_ALPHA16 = $8048;
GL_INTENSITY = $8049;
GL_INTENSITY4 = $804A;
GL_INTENSITY8 = $804B;
GL_INTENSITY12 = $804C;
GL_INTENSITY16 = $804D;
GL_R3_G3_B2 = $2A10;
GL_RGB4 = $804F;
GL_RGB5 = $8050;
GL_RGB8 = $8051;
GL_RGB10 = $8052;
GL_RGB12 = $8053;
GL_RGB16 = $8054;
GL_RGBA2 = $8055;
GL_RGBA4 = $8056;
GL_RGB5_A1 = $8057;
GL_RGBA8 = $8058;
GL_RGB10_A2 = $8059;
GL_RGBA12 = $805A;
GL_RGBA16 = $805B;
GL_TEXTURE_RED_SIZE = $805C;
GL_TEXTURE_GREEN_SIZE = $805D;
GL_TEXTURE_BLUE_SIZE = $805E;
GL_TEXTURE_ALPHA_SIZE = $805F;
GL_TEXTURE_LUMINANCE_SIZE = $8060;
GL_TEXTURE_INTENSITY_SIZE = $8061;
GL_PROXY_TEXTURE_1D = $8063;
GL_PROXY_TEXTURE_2D = $8064;
// texture_object
GL_TEXTURE_PRIORITY = $8066;
GL_TEXTURE_RESIDENT = $8067;
GL_TEXTURE_BINDING_1D = $8068;
GL_TEXTURE_BINDING_2D = $8069;
// vertex_array
GL_VERTEX_ARRAY = $8074;
GL_NORMAL_ARRAY = $8075;
GL_COLOR_ARRAY = $8076;
GL_INDEX_ARRAY = $8077;
GL_TEXTURE_COORD_ARRAY = $8078;
GL_EDGE_FLAG_ARRAY = $8079;
GL_VERTEX_ARRAY_SIZE = $807A;
GL_VERTEX_ARRAY_TYPE = $807B;
GL_VERTEX_ARRAY_STRIDE = $807C;
GL_NORMAL_ARRAY_TYPE = $807E;
GL_NORMAL_ARRAY_STRIDE = $807F;
GL_COLOR_ARRAY_SIZE = $8081;
GL_COLOR_ARRAY_TYPE = $8082;
GL_COLOR_ARRAY_STRIDE = $8083;
GL_INDEX_ARRAY_TYPE = $8085;
GL_INDEX_ARRAY_STRIDE = $8086;
GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
GL_VERTEX_ARRAY_POINTER = $808E;
GL_NORMAL_ARRAY_POINTER = $808F;
GL_COLOR_ARRAY_POINTER = $8090;
GL_INDEX_ARRAY_POINTER = $8091;
GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
GL_EDGE_FLAG_ARRAY_POINTER = $8093;
GL_V2F = $2A20;
GL_V3F = $2A21;
GL_C4UB_V2F = $2A22;
GL_C4UB_V3F = $2A23;
GL_C3F_V3F = $2A24;
GL_N3F_V3F = $2A25;
GL_C4F_N3F_V3F = $2A26;
GL_T2F_V3F = $2A27;
GL_T4F_V4F = $2A28;
GL_T2F_C4UB_V3F = $2A29;
GL_T2F_C3F_V3F = $2A2A;
GL_T2F_N3F_V3F = $2A2B;
GL_T2F_C4F_N3F_V3F = $2A2C;
GL_T4F_C4F_N3F_V4F = $2A2D;
// Extensions
GL_EXT_vertex_array = 1;
GL_WIN_swap_hint = 1;
GL_EXT_bgra = 1;
GL_EXT_paletted_texture = 1;
// EXT_vertex_array
GL_VERTEX_ARRAY_EXT = $8074;
GL_NORMAL_ARRAY_EXT = $8075;
GL_COLOR_ARRAY_EXT = $8076;
GL_INDEX_ARRAY_EXT = $8077;
GL_TEXTURE_COORD_ARRAY_EXT = $8078;
GL_EDGE_FLAG_ARRAY_EXT = $8079;
GL_VERTEX_ARRAY_SIZE_EXT = $807A;
GL_VERTEX_ARRAY_TYPE_EXT = $807B;
GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
GL_VERTEX_ARRAY_COUNT_EXT = $807D;
GL_NORMAL_ARRAY_TYPE_EXT = $807E;
GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
GL_NORMAL_ARRAY_COUNT_EXT = $8080;
GL_COLOR_ARRAY_SIZE_EXT = $8081;
GL_COLOR_ARRAY_TYPE_EXT = $8082;
GL_COLOR_ARRAY_STRIDE_EXT = $8083;
GL_COLOR_ARRAY_COUNT_EXT = $8084;
GL_INDEX_ARRAY_TYPE_EXT = $8085;
GL_INDEX_ARRAY_STRIDE_EXT = $8086;
GL_INDEX_ARRAY_COUNT_EXT = $8087;
GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
GL_VERTEX_ARRAY_POINTER_EXT = $808E;
GL_NORMAL_ARRAY_POINTER_EXT = $808F;
GL_COLOR_ARRAY_POINTER_EXT = $8090;
GL_INDEX_ARRAY_POINTER_EXT = $8091;
GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
GL_DOUBLE_EXT = GL_DOUBLE;
// EXT_bgra
GL_BGR_EXT = $80E0;
GL_BGRA_EXT = $80E1;
// EXT_paletted_texture
// These must match the GL_COLOR_TABLE_*_SGI enumerants
GL_COLOR_TABLE_FORMAT_EXT = $80D8;
GL_COLOR_TABLE_WIDTH_EXT = $80D9;
GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
GL_COLOR_INDEX1_EXT = $80E2;
GL_COLOR_INDEX2_EXT = $80E3;
GL_COLOR_INDEX4_EXT = $80E4;
GL_COLOR_INDEX8_EXT = $80E5;
GL_COLOR_INDEX12_EXT = $80E6;
GL_COLOR_INDEX16_EXT = $80E7;
// For compatibility with OpenGL v1.0
GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
{******************************************************************************}
var
glAccum: procedure(op: GLenum; value: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glAlphaFunc: procedure(func: GLenum; ref: GLclampf); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glAreTexturesResident: function (n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glArrayElement: procedure(i: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glBegin: procedure(mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glBindTexture: procedure(target: GLenum; texture: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glBitmap: procedure (width, height: GLsizei; xorig, yorig: GLfloat; xmove, ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glBlendFunc: procedure(sfactor, dfactor: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCallList: procedure(list: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCallLists: procedure(n: GLsizei; atype: GLenum; const lists: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClear: procedure(mask: GLbitfield); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClearAccum: procedure(red, green, blue, alpha: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClearColor: procedure(red, green, blue, alpha: GLclampf); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClearDepth: procedure(depth: GLclampd); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClearIndex: procedure(c: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClearStencil: procedure(s: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glClipPlane: procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3b: procedure(red, green, blue: GLbyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3bv: procedure(const v: PGLbyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3d: procedure(red, green, blue: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3f: procedure(red, green, blue: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3i: procedure(red, green, blue: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3s: procedure(red, green, blue: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3ub: procedure(red, green, blue: GLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3ubv: procedure(const v: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3ui: procedure(red, green, blue: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3uiv: procedure(const v: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3us: procedure(red, green, blue: GLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor3usv: procedure(const v: PGLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4b: procedure(red, green, blue, alpha: GLbyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4bv: procedure(const v: PGLbyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4d: procedure(red, green, blue, alpha: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4f: procedure(red, green, blue, alpha: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4i: procedure(red, green, blue, alpha: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4s: procedure(red, green, blue, alpha: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4ub: procedure(red, green, blue, alpha: GLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4ubv: procedure(const v: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4ui: procedure(red, green, blue, alpha: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4uiv: procedure(const v: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4us: procedure(red, green, blue, alpha: GLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColor4usv: procedure(const v: PGLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColorMask: procedure(red, green, blue, alpha: GLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColorMaterial: procedure(face, mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glColorPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyPixels: procedure(x, y: GLint; width, height: GLsizei; atype: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyTexImage1D: procedure (target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width: GLsizei; border: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyTexImage2D: procedure(target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width, height: GLsizei; border: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyTexSubImage1D: procedure(target: GLenum; level, xoffset, x, y: GLint; width: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCopyTexSubImage2D: procedure(target: GLenum; level, xoffset, yoffset, x, y: GLint; width, height: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glCullFace: procedure(mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDeleteLists: procedure(list: GLuint; range: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDeleteTextures: procedure(n: GLsizei; const textures: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDepthFunc: procedure(func: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDepthMask: procedure(flag: GLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDepthRange: procedure(zNear, zFar: GLclampd); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDisable: procedure(cap: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDisableClientState: procedure(aarray: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDrawArrays: procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDrawBuffer: procedure(mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDrawElements: procedure(mode: GLenum; count: GLsizei; atype: GLenum; const indices: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glDrawPixels: procedure(width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEdgeFlag: procedure(flag: GLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEdgeFlagPointer: procedure(stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEdgeFlagv: procedure(const flag: PGLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEnable: procedure(cap: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEnableClientState: procedure(aarray: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEnd: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEndList: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord1d: procedure(u: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord1dv: procedure(const u: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord1f: procedure(u: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord1fv: procedure(const u: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord2d: procedure(u, v: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord2dv: procedure(const u: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord2f: procedure(u, v: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalCoord2fv: procedure(const u: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalMesh1: procedure(mode: GLenum; i1, i2: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalMesh2: procedure(mode: GLenum; i1, i2, j1, j2: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalPoint1: procedure(i: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glEvalPoint2: procedure(i, j: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFeedbackBuffer: procedure(size: GLsizei; atype: GLenum; buffer: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFinish: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFlush: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFogf: procedure(pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFogfv: procedure(pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFogi: procedure(pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFogiv: procedure(pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFrontFace: procedure(mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glFrustum: procedure(left, right, bottom, top, zNear, zFar: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGenLists: function(range: GLsizei): GLuint; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGenTextures: procedure(n: GLsizei; textures: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetBooleanv: procedure(pname: GLenum; params: PGLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetClipPlane: procedure(plane: GLenum; equation: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetDoublev: procedure(pname: GLenum; params: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetError: function: GLenum; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetFloatv: procedure(pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetIntegerv: procedure(pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetLightfv: procedure(light, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetLightiv: procedure(light, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMapdv: procedure(target, query: GLenum; v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMapfv: procedure(target, query: GLenum; v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMapiv: procedure(target, query: GLenum; v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMaterialfv: procedure(face, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetMaterialiv: procedure(face, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPixelMapfv: procedure(map: GLenum; values: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPixelMapuiv: procedure(map: GLenum; values: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPixelMapusv: procedure(map: GLenum; values: PGLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPointerv: procedure(pname: GLenum; params: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetPolygonStipple: procedure(mask: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetString: function(name: GLenum): PChar; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexEnvfv: procedure(target, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexEnviv: procedure(target, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexGendv: procedure(coord, pname: GLenum; params: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexGenfv: procedure(coord, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexGeniv: procedure(coord, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexImage: procedure(target: GLenum; level: GLint; format: GLenum; atype: GLenum; pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexLevelParameterfv: procedure(target: GLenum; level: GLint; pname: GLenum; params: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexLevelParameteriv: procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexParameterfv: procedure(target, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glGetTexParameteriv: procedure(target, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glHint: procedure(target, mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexMask: procedure(mask: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexd: procedure(c: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexdv: procedure(const c: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexf: procedure(c: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexfv: procedure(const c: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexi: procedure(c: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexiv: procedure(const c: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexs: procedure(c: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexsv: procedure(const c: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexub: procedure(c: GLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIndexubv: procedure(const c: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glInitNames: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glInterleavedArrays: procedure(format: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIsEnabled: function(cap: GLenum): GLboolean; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIsList: function(list: GLuint): GLboolean; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glIsTexture: function(texture: GLuint): GLboolean; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightModelf: procedure(pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightModelfv: procedure(pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightModeli: procedure(pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightModeliv: procedure(pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightf: procedure(light, pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightfv: procedure(light, pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLighti: procedure(light, pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLightiv: procedure(light, pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLineStipple: procedure(factor: GLint; pattern: GLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLineWidth: procedure(width: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glListBase: procedure(base: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLoadIdentity: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLoadMatrixd: procedure(const m: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLoadMatrixf: procedure(const m: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLoadName: procedure(name: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glLogicOp: procedure(opcode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMap1d: procedure(target: GLenum; u1, u2: GLdouble; stride, order: GLint; const points: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMap1f: procedure(target: GLenum; u1, u2: GLfloat; stride, order: GLint; const points: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMap2d: procedure(target: GLenum; u1, u2: GLdouble; ustride, uorder: GLint; v1, v2: GLdouble; vstride, vorder: GLint; const points: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMap2f: procedure(target: GLenum; u1, u2: GLfloat; ustride, uorder: GLint; v1, v2: GLfloat; vstride, vorder: GLint; const points: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMapGrid1d: procedure(un: GLint; u1, u2: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMapGrid1f: procedure(un: GLint; u1, u2: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMapGrid2d: procedure(un: GLint; u1, u2: GLdouble; vn: GLint; v1, v2: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMapGrid2f: procedure(un: GLint; u1, u2: GLfloat; vn: GLint; v1, v2: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMaterialf: procedure(face, pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMaterialfv: procedure(face, pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMateriali: procedure(face, pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMaterialiv: procedure(face, pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMatrixMode: procedure(mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMultMatrixd: procedure(const m: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glMultMatrixf: procedure(const m: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNewList: procedure(list: GLuint; mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3b: procedure(nx, ny, nz: GLbyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3bv: procedure(const v: PGLbyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3d: procedure(nx, ny, nz: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3f: procedure(nx, ny, nz: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3i: procedure(nx, ny, nz: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3s: procedure(nx, ny, nz: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormal3sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glNormalPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glOrtho: procedure(left, right, bottom, top, zNear, zFar: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPassThrough: procedure(token: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelMapfv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelMapuiv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelMapusv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelStoref: procedure(pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelStorei: procedure(pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelTransferf: procedure(pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelTransferi: procedure(pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPixelZoom: procedure(xfactor, yfactor: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPointSize: procedure(size: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPolygonMode: procedure(face, mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPolygonOffset: procedure(factor, units: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPolygonStipple: procedure(const mask: PGLubyte); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPopAttrib: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPopClientAttrib: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPopMatrix: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPopName: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPrioritizeTextures: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPushAttrib: procedure(mask: GLbitfield); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPushClientAttrib: procedure(mask: GLbitfield); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPushMatrix: procedure; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glPushName: procedure(name: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos2d: procedure(x, y: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos2dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos2f: procedure(x, y: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos2fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos2i: procedure(x, y: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos2iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos2s: procedure(x, y: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos2sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos3d: procedure(x, y, z: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos3dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos3f: procedure(x, y, z: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos3fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos3i: procedure(x, y, z: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos3iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos3s: procedure(x, y, z: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos3sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos4d: procedure(x, y, z, w: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos4dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos4f: procedure(x, y, z, w: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos4fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos4i: procedure(x, y, z, w: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos4iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos4s: procedure(x, y, z, w: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRasterPos4sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glReadBuffer: procedure(mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glReadPixels: procedure(x, y: GLint; width, height: GLsizei; format, atype: GLenum; pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRectd: procedure(x1, y1, x2, y2: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRectdv: procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRectf: procedure(x1, y1, x2, y2: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRectfv: procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRecti: procedure(x1, y1, x2, y2: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRectiv: procedure(const v1: PGLint; const v2: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRects: procedure(x1, y1, x2, y2: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRectsv: procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRenderMode: function(mode: GLint): GLint; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRotated: procedure(angle, x, y, z: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glRotatef: procedure(angle, x, y, z: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glScaled: procedure(x, y, z: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glScalef: procedure(x, y, z: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glScissor: procedure(x, y: GLint; width, height: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glSelectBuffer: procedure(size: GLsizei; buffer: PGLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glShadeModel: procedure(mode: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glStencilFunc: procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glStencilMask: procedure(mask: GLuint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glStencilOp: procedure(fail, zfail, zpass: GLenum); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord1d: procedure(s: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord1dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord1f: procedure(s: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord1fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord1i: procedure(s: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord1iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord1s: procedure(s: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord1sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord2d: procedure(s, t: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord2dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord2f: procedure(s, t: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord2fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord2i: procedure(s, t: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord2iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord2s: procedure(s, t: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord2sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord3d: procedure(s, t, r: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord3dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord3f: procedure(s, t, r: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord3fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord3i: procedure(s, t, r: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord3iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord3s: procedure(s, t, r: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord3sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord4d: procedure(s, t, r, q: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord4dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord4f: procedure(s, t, r, q: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord4fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord4i: procedure(s, t, r, q: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord4iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord4s: procedure(s, t, r, q: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoord4sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexCoordPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexEnvf: procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexEnvfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexEnvi: procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexEnviv: procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGend: procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGendv: procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGenf: procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGenfv: procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGeni: procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexGeniv: procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexImage1D: procedure(target: GLenum; level, internalformat: GLint; width: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexImage2D: procedure(target: GLenum; level, internalformat: GLint; width, height: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexParameterf: procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexParameteri: procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexSubImage1D: procedure(target: GLenum; level, xoffset: GLint; width: GLsizei; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTexSubImage2D: procedure(target: GLenum; level, xoffset, yoffset: GLint; width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTranslated: procedure(x, y, z: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glTranslatef: procedure(x, y, z: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex2d: procedure(x, y: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex2dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex2f: procedure(x, y: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex2fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex2i: procedure(x, y: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex2iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex2s: procedure(x, y: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex2sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex3d: procedure(x, y, z: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex3dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex3f: procedure(x, y, z: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex3fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex3i: procedure(x, y, z: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex3iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex3s: procedure(x, y, z: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex3sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex4d: procedure(x, y, z, w: GLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex4dv: procedure(const v: PGLdouble); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex4f: procedure(x, y, z, w: GLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex4fv: procedure(const v: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex4i: procedure(x, y, z, w: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex4iv: procedure(const v: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex4s: procedure(x, y, z, w: GLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertex4sv: procedure(const v: PGLshort); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glVertexPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
glViewport: procedure(x, y: GLint; width, height: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
{$IFDEF WINDOWS}
ChoosePixelFormat: function(DC: HDC; p2: PPixelFormatDescriptor): Integer; {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
{$ENDIF}
type
// EXT_vertex_array
PFNGLARRAYELEMENTEXTPROC = procedure(i: GLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLDRAWARRAYSEXTPROC = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLVERTEXPOINTEREXTPROC = procedure(size: GLint; atype: GLenum;
stride, count: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLNORMALPOINTEREXTPROC = procedure(atype: GLenum; stride, count: GLsizei;
const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLCOLORPOINTEREXTPROC = procedure(size: GLint; atype: GLenum; stride, count: GLsizei;
const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLINDEXPOINTEREXTPROC = procedure(atype: GLenum; stride, count: GLsizei;
const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLTEXCOORDPOINTEREXTPROC = procedure(size: GLint; atype: GLenum;
stride, count: GLsizei; const pointer: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLEDGEFLAGPOINTEREXTPROC = procedure(stride, count: GLsizei;
const pointer: PGLboolean); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLGETPOINTERVEXTPROC = procedure(pname: GLenum; params: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLARRAYELEMENTARRAYEXTPROC = procedure(mode: GLenum; count: GLsizei;
const pi: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
// WIN_swap_hint
PFNGLADDSWAPHINTRECTWINPROC = procedure(x, y: GLint; width, height: GLsizei); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
// EXT_paletted_texture
PFNGLCOLORTABLEEXTPROC = procedure(target, internalFormat: GLenum; width: GLsizei;
format, atype: GLenum; const data: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLCOLORSUBTABLEEXTPROC = procedure(target: GLenum; start, count: GLsizei;
format, atype: GLenum; const data: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLGETCOLORTABLEEXTPROC = procedure(target, format, atype: GLenum; data: Pointer); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLGETCOLORTABLEPARAMETERIVEXTPROC = procedure(target, pname: GLenum; params: PGLint); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
PFNGLGETCOLORTABLEPARAMETERFVEXTPROC = procedure(target, pname: GLenum; params: PGLfloat); {$IFDEF WINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}
procedure LoadOpenGL( const dll: PChar );
procedure FreeOpenGL;
implementation
procedure FreeOpenGL;
begin
@glAccum := nil;
@glAlphaFunc := nil;
@glAreTexturesResident := nil;
@glArrayElement := nil;
@glBegin := nil;
@glBindTexture := nil;
@glBitmap := nil;
@glBlendFunc := nil;
@glCallList := nil;
@glCallLists := nil;
@glClear := nil;
@glClearAccum := nil;
@glClearColor := nil;
@glClearDepth := nil;
@glClearIndex := nil;
@glClearStencil := nil;
@glClipPlane := nil;
@glColor3b := nil;
@glColor3bv := nil;
@glColor3d := nil;
@glColor3dv := nil;
@glColor3f := nil;
@glColor3fv := nil;
@glColor3i := nil;
@glColor3iv := nil;
@glColor3s := nil;
@glColor3sv := nil;
@glColor3ub := nil;
@glColor3ubv := nil;
@glColor3ui := nil;
@glColor3uiv := nil;
@glColor3us := nil;
@glColor3usv := nil;
@glColor4b := nil;
@glColor4bv := nil;
@glColor4d := nil;
@glColor4dv := nil;
@glColor4f := nil;
@glColor4fv := nil;
@glColor4i := nil;
@glColor4iv := nil;
@glColor4s := nil;
@glColor4sv := nil;
@glColor4ub := nil;
@glColor4ubv := nil;
@glColor4ui := nil;
@glColor4uiv := nil;
@glColor4us := nil;
@glColor4usv := nil;
@glColorMask := nil;
@glColorMaterial := nil;
@glColorPointer := nil;
@glCopyPixels := nil;
@glCopyTexImage1D := nil;
@glCopyTexImage2D := nil;
@glCopyTexSubImage1D := nil;
@glCopyTexSubImage2D := nil;
@glCullFace := nil;
@glDeleteLists := nil;
@glDeleteTextures := nil;
@glDepthFunc := nil;
@glDepthMask := nil;
@glDepthRange := nil;
@glDisable := nil;
@glDisableClientState := nil;
@glDrawArrays := nil;
@glDrawBuffer := nil;
@glDrawElements := nil;
@glDrawPixels := nil;
@glEdgeFlag := nil;
@glEdgeFlagPointer := nil;
@glEdgeFlagv := nil;
@glEnable := nil;
@glEnableClientState := nil;
@glEnd := nil;
@glEndList := nil;
@glEvalCoord1d := nil;
@glEvalCoord1dv := nil;
@glEvalCoord1f := nil;
@glEvalCoord1fv := nil;
@glEvalCoord2d := nil;
@glEvalCoord2dv := nil;
@glEvalCoord2f := nil;
@glEvalCoord2fv := nil;
@glEvalMesh1 := nil;
@glEvalMesh2 := nil;
@glEvalPoint1 := nil;
@glEvalPoint2 := nil;
@glFeedbackBuffer := nil;
@glFinish := nil;
@glFlush := nil;
@glFogf := nil;
@glFogfv := nil;
@glFogi := nil;
@glFogiv := nil;
@glFrontFace := nil;
@glFrustum := nil;
@glGenLists := nil;
@glGenTextures := nil;
@glGetBooleanv := nil;
@glGetClipPlane := nil;
@glGetDoublev := nil;
@glGetError := nil;
@glGetFloatv := nil;
@glGetIntegerv := nil;
@glGetLightfv := nil;
@glGetLightiv := nil;
@glGetMapdv := nil;
@glGetMapfv := nil;
@glGetMapiv := nil;
@glGetMaterialfv := nil;
@glGetMaterialiv := nil;
@glGetPixelMapfv := nil;
@glGetPixelMapuiv := nil;
@glGetPixelMapusv := nil;
@glGetPointerv := nil;
@glGetPolygonStipple := nil;
@glGetString := nil;
@glGetTexEnvfv := nil;
@glGetTexEnviv := nil;
@glGetTexGendv := nil;
@glGetTexGenfv := nil;
@glGetTexGeniv := nil;
@glGetTexImage := nil;
@glGetTexLevelParameterfv := nil;
@glGetTexLevelParameteriv := nil;
@glGetTexParameterfv := nil;
@glGetTexParameteriv := nil;
@glHint := nil;
@glIndexMask := nil;
@glIndexPointer := nil;
@glIndexd := nil;
@glIndexdv := nil;
@glIndexf := nil;
@glIndexfv := nil;
@glIndexi := nil;
@glIndexiv := nil;
@glIndexs := nil;
@glIndexsv := nil;
@glIndexub := nil;
@glIndexubv := nil;
@glInitNames := nil;
@glInterleavedArrays := nil;
@glIsEnabled := nil;
@glIsList := nil;
@glIsTexture := nil;
@glLightModelf := nil;
@glLightModelfv := nil;
@glLightModeli := nil;
@glLightModeliv := nil;
@glLightf := nil;
@glLightfv := nil;
@glLighti := nil;
@glLightiv := nil;
@glLineStipple := nil;
@glLineWidth := nil;
@glListBase := nil;
@glLoadIdentity := nil;
@glLoadMatrixd := nil;
@glLoadMatrixf := nil;
@glLoadName := nil;
@glLogicOp := nil;
@glMap1d := nil;
@glMap1f := nil;
@glMap2d := nil;
@glMap2f := nil;
@glMapGrid1d := nil;
@glMapGrid1f := nil;
@glMapGrid2d := nil;
@glMapGrid2f := nil;
@glMaterialf := nil;
@glMaterialfv := nil;
@glMateriali := nil;
@glMaterialiv := nil;
@glMatrixMode := nil;
@glMultMatrixd := nil;
@glMultMatrixf := nil;
@glNewList := nil;
@glNormal3b := nil;
@glNormal3bv := nil;
@glNormal3d := nil;
@glNormal3dv := nil;
@glNormal3f := nil;
@glNormal3fv := nil;
@glNormal3i := nil;
@glNormal3iv := nil;
@glNormal3s := nil;
@glNormal3sv := nil;
@glNormalPointer := nil;
@glOrtho := nil;
@glPassThrough := nil;
@glPixelMapfv := nil;
@glPixelMapuiv := nil;
@glPixelMapusv := nil;
@glPixelStoref := nil;
@glPixelStorei := nil;
@glPixelTransferf := nil;
@glPixelTransferi := nil;
@glPixelZoom := nil;
@glPointSize := nil;
@glPolygonMode := nil;
@glPolygonOffset := nil;
@glPolygonStipple := nil;
@glPopAttrib := nil;
@glPopClientAttrib := nil;
@glPopMatrix := nil;
@glPopName := nil;
@glPrioritizeTextures := nil;
@glPushAttrib := nil;
@glPushClientAttrib := nil;
@glPushMatrix := nil;
@glPushName := nil;
@glRasterPos2d := nil;
@glRasterPos2dv := nil;
@glRasterPos2f := nil;
@glRasterPos2fv := nil;
@glRasterPos2i := nil;
@glRasterPos2iv := nil;
@glRasterPos2s := nil;
@glRasterPos2sv := nil;
@glRasterPos3d := nil;
@glRasterPos3dv := nil;
@glRasterPos3f := nil;
@glRasterPos3fv := nil;
@glRasterPos3i := nil;
@glRasterPos3iv := nil;
@glRasterPos3s := nil;
@glRasterPos3sv := nil;
@glRasterPos4d := nil;
@glRasterPos4dv := nil;
@glRasterPos4f := nil;
@glRasterPos4fv := nil;
@glRasterPos4i := nil;
@glRasterPos4iv := nil;
@glRasterPos4s := nil;
@glRasterPos4sv := nil;
@glReadBuffer := nil;
@glReadPixels := nil;
@glRectd := nil;
@glRectdv := nil;
@glRectf := nil;
@glRectfv := nil;
@glRecti := nil;
@glRectiv := nil;
@glRects := nil;
@glRectsv := nil;
@glRenderMode := nil;
@glRotated := nil;
@glRotatef := nil;
@glScaled := nil;
@glScalef := nil;
@glScissor := nil;
@glSelectBuffer := nil;
@glShadeModel := nil;
@glStencilFunc := nil;
@glStencilMask := nil;
@glStencilOp := nil;
@glTexCoord1d := nil;
@glTexCoord1dv := nil;
@glTexCoord1f := nil;
@glTexCoord1fv := nil;
@glTexCoord1i := nil;
@glTexCoord1iv := nil;
@glTexCoord1s := nil;
@glTexCoord1sv := nil;
@glTexCoord2d := nil;
@glTexCoord2dv := nil;
@glTexCoord2f := nil;
@glTexCoord2fv := nil;
@glTexCoord2i := nil;
@glTexCoord2iv := nil;
@glTexCoord2s := nil;
@glTexCoord2sv := nil;
@glTexCoord3d := nil;
@glTexCoord3dv := nil;
@glTexCoord3f := nil;
@glTexCoord3fv := nil;
@glTexCoord3i := nil;
@glTexCoord3iv := nil;
@glTexCoord3s := nil;
@glTexCoord3sv := nil;
@glTexCoord4d := nil;
@glTexCoord4dv := nil;
@glTexCoord4f := nil;
@glTexCoord4fv := nil;
@glTexCoord4i := nil;
@glTexCoord4iv := nil;
@glTexCoord4s := nil;
@glTexCoord4sv := nil;
@glTexCoordPointer := nil;
@glTexEnvf := nil;
@glTexEnvfv := nil;
@glTexEnvi := nil;
@glTexEnviv := nil;
@glTexGend := nil;
@glTexGendv := nil;
@glTexGenf := nil;
@glTexGenfv := nil;
@glTexGeni := nil;
@glTexGeniv := nil;
@glTexImage1D := nil;
@glTexImage2D := nil;
@glTexParameterf := nil;
@glTexParameterfv := nil;
@glTexParameteri := nil;
@glTexParameteriv := nil;
@glTexSubImage1D := nil;
@glTexSubImage2D := nil;
@glTranslated := nil;
@glTranslatef := nil;
@glVertex2d := nil;
@glVertex2dv := nil;
@glVertex2f := nil;
@glVertex2fv := nil;
@glVertex2i := nil;
@glVertex2iv := nil;
@glVertex2s := nil;
@glVertex2sv := nil;
@glVertex3d := nil;
@glVertex3dv := nil;
@glVertex3f := nil;
@glVertex3fv := nil;
@glVertex3i := nil;
@glVertex3iv := nil;
@glVertex3s := nil;
@glVertex3sv := nil;
@glVertex4d := nil;
@glVertex4dv := nil;
@glVertex4f := nil;
@glVertex4fv := nil;
@glVertex4i := nil;
@glVertex4iv := nil;
@glVertex4s := nil;
@glVertex4sv := nil;
@glVertexPointer := nil;
@glViewport := nil;
{$IFDEF WINDOWS}
@ChoosePixelFormat := nil;
{$ENDIF}
UnLoadModule(LibGL);
end;
procedure LoadOpenGL(const dll: PChar);
begin
FreeOpenGL;
if LoadModule( LibGL, dll ) then
begin
@glAccum := GetModuleSymbol(LibGL, 'glAccum');
@glAlphaFunc := GetModuleSymbol(LibGL, 'glAlphaFunc');
@glAreTexturesResident := GetModuleSymbol(LibGL, 'glAreTexturesResident');
@glArrayElement := GetModuleSymbol(LibGL, 'glArrayElement');
@glBegin := GetModuleSymbol(LibGL, 'glBegin');
@glBindTexture := GetModuleSymbol(LibGL, 'glBindTexture');
@glBitmap := GetModuleSymbol(LibGL, 'glBitmap');
@glBlendFunc := GetModuleSymbol(LibGL, 'glBlendFunc');
@glCallList := GetModuleSymbol(LibGL, 'glCallList');
@glCallLists := GetModuleSymbol(LibGL, 'glCallLists');
@glClear := GetModuleSymbol(LibGL, 'glClear');
@glClearAccum := GetModuleSymbol(LibGL, 'glClearAccum');
@glClearColor := GetModuleSymbol(LibGL, 'glClearColor');
@glClearDepth := GetModuleSymbol(LibGL, 'glClearDepth');
@glClearIndex := GetModuleSymbol(LibGL, 'glClearIndex');
@glClearStencil := GetModuleSymbol(LibGL, 'glClearStencil');
@glClipPlane := GetModuleSymbol(LibGL, 'glClipPlane');
@glColor3b := GetModuleSymbol(LibGL, 'glColor3b');
@glColor3bv := GetModuleSymbol(LibGL, 'glColor3bv');
@glColor3d := GetModuleSymbol(LibGL, 'glColor3d');
@glColor3dv := GetModuleSymbol(LibGL, 'glColor3dv');
@glColor3f := GetModuleSymbol(LibGL, 'glColor3f');
@glColor3fv := GetModuleSymbol(LibGL, 'glColor3fv');
@glColor3i := GetModuleSymbol(LibGL, 'glColor3i');
@glColor3iv := GetModuleSymbol(LibGL, 'glColor3iv');
@glColor3s := GetModuleSymbol(LibGL, 'glColor3s');
@glColor3sv := GetModuleSymbol(LibGL, 'glColor3sv');
@glColor3ub := GetModuleSymbol(LibGL, 'glColor3ub');
@glColor3ubv := GetModuleSymbol(LibGL, 'glColor3ubv');
@glColor3ui := GetModuleSymbol(LibGL, 'glColor3ui');
@glColor3uiv := GetModuleSymbol(LibGL, 'glColor3uiv');
@glColor3us := GetModuleSymbol(LibGL, 'glColor3us');
@glColor3usv := GetModuleSymbol(LibGL, 'glColor3usv');
@glColor4b := GetModuleSymbol(LibGL, 'glColor4b');
@glColor4bv := GetModuleSymbol(LibGL, 'glColor4bv');
@glColor4d := GetModuleSymbol(LibGL, 'glColor4d');
@glColor4dv := GetModuleSymbol(LibGL, 'glColor4dv');
@glColor4f := GetModuleSymbol(LibGL, 'glColor4f');
@glColor4fv := GetModuleSymbol(LibGL, 'glColor4fv');
@glColor4i := GetModuleSymbol(LibGL, 'glColor4i');
@glColor4iv := GetModuleSymbol(LibGL, 'glColor4iv');
@glColor4s := GetModuleSymbol(LibGL, 'glColor4s');
@glColor4sv := GetModuleSymbol(LibGL, 'glColor4sv');
@glColor4ub := GetModuleSymbol(LibGL, 'glColor4ub');
@glColor4ubv := GetModuleSymbol(LibGL, 'glColor4ubv');
@glColor4ui := GetModuleSymbol(LibGL, 'glColor4ui');
@glColor4uiv := GetModuleSymbol(LibGL, 'glColor4uiv');
@glColor4us := GetModuleSymbol(LibGL, 'glColor4us');
@glColor4usv := GetModuleSymbol(LibGL, 'glColor4usv');
@glColorMask := GetModuleSymbol(LibGL, 'glColorMask');
@glColorMaterial := GetModuleSymbol(LibGL, 'glColorMaterial');
@glColorPointer := GetModuleSymbol(LibGL, 'glColorPointer');
@glCopyPixels := GetModuleSymbol(LibGL, 'glCopyPixels');
@glCopyTexImage1D := GetModuleSymbol(LibGL, 'glCopyTexImage1D');
@glCopyTexImage2D := GetModuleSymbol(LibGL, 'glCopyTexImage2D');
@glCopyTexSubImage1D := GetModuleSymbol(LibGL, 'glCopyTexSubImage1D');
@glCopyTexSubImage2D := GetModuleSymbol(LibGL, 'glCopyTexSubImage2D');
@glCullFace := GetModuleSymbol(LibGL, 'glCullFace');
@glDeleteLists := GetModuleSymbol(LibGL, 'glDeleteLists');
@glDeleteTextures := GetModuleSymbol(LibGL, 'glDeleteTextures');
@glDepthFunc := GetModuleSymbol(LibGL, 'glDepthFunc');
@glDepthMask := GetModuleSymbol(LibGL, 'glDepthMask');
@glDepthRange := GetModuleSymbol(LibGL, 'glDepthRange');
@glDisable := GetModuleSymbol(LibGL, 'glDisable');
@glDisableClientState := GetModuleSymbol(LibGL, 'glDisableClientState');
@glDrawArrays := GetModuleSymbol(LibGL, 'glDrawArrays');
@glDrawBuffer := GetModuleSymbol(LibGL, 'glDrawBuffer');
@glDrawElements := GetModuleSymbol(LibGL, 'glDrawElements');
@glDrawPixels := GetModuleSymbol(LibGL, 'glDrawPixels');
@glEdgeFlag := GetModuleSymbol(LibGL, 'glEdgeFlag');
@glEdgeFlagPointer := GetModuleSymbol(LibGL, 'glEdgeFlagPointer');
@glEdgeFlagv := GetModuleSymbol(LibGL, 'glEdgeFlagv');
@glEnable := GetModuleSymbol(LibGL, 'glEnable');
@glEnableClientState := GetModuleSymbol(LibGL, 'glEnableClientState');
@glEnd := GetModuleSymbol(LibGL, 'glEnd');
@glEndList := GetModuleSymbol(LibGL, 'glEndList');
@glEvalCoord1d := GetModuleSymbol(LibGL, 'glEvalCoord1d');
@glEvalCoord1dv := GetModuleSymbol(LibGL, 'glEvalCoord1dv');
@glEvalCoord1f := GetModuleSymbol(LibGL, 'glEvalCoord1f');
@glEvalCoord1fv := GetModuleSymbol(LibGL, 'glEvalCoord1fv');
@glEvalCoord2d := GetModuleSymbol(LibGL, 'glEvalCoord2d');
@glEvalCoord2dv := GetModuleSymbol(LibGL, 'glEvalCoord2dv');
@glEvalCoord2f := GetModuleSymbol(LibGL, 'glEvalCoord2f');
@glEvalCoord2fv := GetModuleSymbol(LibGL, 'glEvalCoord2fv');
@glEvalMesh1 := GetModuleSymbol(LibGL, 'glEvalMesh1');
@glEvalMesh2 := GetModuleSymbol(LibGL, 'glEvalMesh2');
@glEvalPoint1 := GetModuleSymbol(LibGL, 'glEvalPoint1');
@glEvalPoint2 := GetModuleSymbol(LibGL, 'glEvalPoint2');
@glFeedbackBuffer := GetModuleSymbol(LibGL, 'glFeedbackBuffer');
@glFinish := GetModuleSymbol(LibGL, 'glFinish');
@glFlush := GetModuleSymbol(LibGL, 'glFlush');
@glFogf := GetModuleSymbol(LibGL, 'glFogf');
@glFogfv := GetModuleSymbol(LibGL, 'glFogfv');
@glFogi := GetModuleSymbol(LibGL, 'glFogi');
@glFogiv := GetModuleSymbol(LibGL, 'glFogiv');
@glFrontFace := GetModuleSymbol(LibGL, 'glFrontFace');
@glFrustum := GetModuleSymbol(LibGL, 'glFrustum');
@glGenLists := GetModuleSymbol(LibGL, 'glGenLists');
@glGenTextures := GetModuleSymbol(LibGL, 'glGenTextures');
@glGetBooleanv := GetModuleSymbol(LibGL, 'glGetBooleanv');
@glGetClipPlane := GetModuleSymbol(LibGL, 'glGetClipPlane');
@glGetDoublev := GetModuleSymbol(LibGL, 'glGetDoublev');
@glGetError := GetModuleSymbol(LibGL, 'glGetError');
@glGetFloatv := GetModuleSymbol(LibGL, 'glGetFloatv');
@glGetIntegerv := GetModuleSymbol(LibGL, 'glGetIntegerv');
@glGetLightfv := GetModuleSymbol(LibGL, 'glGetLightfv');
@glGetLightiv := GetModuleSymbol(LibGL, 'glGetLightiv');
@glGetMapdv := GetModuleSymbol(LibGL, 'glGetMapdv');
@glGetMapfv := GetModuleSymbol(LibGL, 'glGetMapfv');
@glGetMapiv := GetModuleSymbol(LibGL, 'glGetMapiv');
@glGetMaterialfv := GetModuleSymbol(LibGL, 'glGetMaterialfv');
@glGetMaterialiv := GetModuleSymbol(LibGL, 'glGetMaterialiv');
@glGetPixelMapfv := GetModuleSymbol(LibGL, 'glGetPixelMapfv');
@glGetPixelMapuiv := GetModuleSymbol(LibGL, 'glGetPixelMapuiv');
@glGetPixelMapusv := GetModuleSymbol(LibGL, 'glGetPixelMapusv');
@glGetPointerv := GetModuleSymbol(LibGL, 'glGetPointerv');
@glGetPolygonStipple := GetModuleSymbol(LibGL, 'glGetPolygonStipple');
@glGetString := GetModuleSymbol(LibGL, 'glGetString');
@glGetTexEnvfv := GetModuleSymbol(LibGL, 'glGetTexEnvfv');
@glGetTexEnviv := GetModuleSymbol(LibGL, 'glGetTexEnviv');
@glGetTexGendv := GetModuleSymbol(LibGL, 'glGetTexGendv');
@glGetTexGenfv := GetModuleSymbol(LibGL, 'glGetTexGenfv');
@glGetTexGeniv := GetModuleSymbol(LibGL, 'glGetTexGeniv');
@glGetTexImage := GetModuleSymbol(LibGL, 'glGetTexImage');
@glGetTexLevelParameterfv := GetModuleSymbol(LibGL, 'glGetTexLevelParameterfv');
@glGetTexLevelParameteriv := GetModuleSymbol(LibGL, 'glGetTexLevelParameteriv');
@glGetTexParameterfv := GetModuleSymbol(LibGL, 'glGetTexParameterfv');
@glGetTexParameteriv := GetModuleSymbol(LibGL, 'glGetTexParameteriv');
@glHint := GetModuleSymbol(LibGL, 'glHint');
@glIndexMask := GetModuleSymbol(LibGL, 'glIndexMask');
@glIndexPointer := GetModuleSymbol(LibGL, 'glIndexPointer');
@glIndexd := GetModuleSymbol(LibGL, 'glIndexd');
@glIndexdv := GetModuleSymbol(LibGL, 'glIndexdv');
@glIndexf := GetModuleSymbol(LibGL, 'glIndexf');
@glIndexfv := GetModuleSymbol(LibGL, 'glIndexfv');
@glIndexi := GetModuleSymbol(LibGL, 'glIndexi');
@glIndexiv := GetModuleSymbol(LibGL, 'glIndexiv');
@glIndexs := GetModuleSymbol(LibGL, 'glIndexs');
@glIndexsv := GetModuleSymbol(LibGL, 'glIndexsv');
@glIndexub := GetModuleSymbol(LibGL, 'glIndexub');
@glIndexubv := GetModuleSymbol(LibGL, 'glIndexubv');
@glInitNames := GetModuleSymbol(LibGL, 'glInitNames');
@glInterleavedArrays := GetModuleSymbol(LibGL, 'glInterleavedArrays');
@glIsEnabled := GetModuleSymbol(LibGL, 'glIsEnabled');
@glIsList := GetModuleSymbol(LibGL, 'glIsList');
@glIsTexture := GetModuleSymbol(LibGL, 'glIsTexture');
@glLightModelf := GetModuleSymbol(LibGL, 'glLightModelf');
@glLightModelfv := GetModuleSymbol(LibGL, 'glLightModelfv');
@glLightModeli := GetModuleSymbol(LibGL, 'glLightModeli');
@glLightModeliv := GetModuleSymbol(LibGL, 'glLightModeliv');
@glLightf := GetModuleSymbol(LibGL, 'glLightf');
@glLightfv := GetModuleSymbol(LibGL, 'glLightfv');
@glLighti := GetModuleSymbol(LibGL, 'glLighti');
@glLightiv := GetModuleSymbol(LibGL, 'glLightiv');
@glLineStipple := GetModuleSymbol(LibGL, 'glLineStipple');
@glLineWidth := GetModuleSymbol(LibGL, 'glLineWidth');
@glListBase := GetModuleSymbol(LibGL, 'glListBase');
@glLoadIdentity := GetModuleSymbol(LibGL, 'glLoadIdentity');
@glLoadMatrixd := GetModuleSymbol(LibGL, 'glLoadMatrixd');
@glLoadMatrixf := GetModuleSymbol(LibGL, 'glLoadMatrixf');
@glLoadName := GetModuleSymbol(LibGL, 'glLoadName');
@glLogicOp := GetModuleSymbol(LibGL, 'glLogicOp');
@glMap1d := GetModuleSymbol(LibGL, 'glMap1d');
@glMap1f := GetModuleSymbol(LibGL, 'glMap1f');
@glMap2d := GetModuleSymbol(LibGL, 'glMap2d');
@glMap2f := GetModuleSymbol(LibGL, 'glMap2f');
@glMapGrid1d := GetModuleSymbol(LibGL, 'glMapGrid1d');
@glMapGrid1f := GetModuleSymbol(LibGL, 'glMapGrid1f');
@glMapGrid2d := GetModuleSymbol(LibGL, 'glMapGrid2d');
@glMapGrid2f := GetModuleSymbol(LibGL, 'glMapGrid2f');
@glMaterialf := GetModuleSymbol(LibGL, 'glMaterialf');
@glMaterialfv := GetModuleSymbol(LibGL, 'glMaterialfv');
@glMateriali := GetModuleSymbol(LibGL, 'glMateriali');
@glMaterialiv := GetModuleSymbol(LibGL, 'glMaterialiv');
@glMatrixMode := GetModuleSymbol(LibGL, 'glMatrixMode');
@glMultMatrixd := GetModuleSymbol(LibGL, 'glMultMatrixd');
@glMultMatrixf := GetModuleSymbol(LibGL, 'glMultMatrixf');
@glNewList := GetModuleSymbol(LibGL, 'glNewList');
@glNormal3b := GetModuleSymbol(LibGL, 'glNormal3b');
@glNormal3bv := GetModuleSymbol(LibGL, 'glNormal3bv');
@glNormal3d := GetModuleSymbol(LibGL, 'glNormal3d');
@glNormal3dv := GetModuleSymbol(LibGL, 'glNormal3dv');
@glNormal3f := GetModuleSymbol(LibGL, 'glNormal3f');
@glNormal3fv := GetModuleSymbol(LibGL, 'glNormal3fv');
@glNormal3i := GetModuleSymbol(LibGL, 'glNormal3i');
@glNormal3iv := GetModuleSymbol(LibGL, 'glNormal3iv');
@glNormal3s := GetModuleSymbol(LibGL, 'glNormal3s');
@glNormal3sv := GetModuleSymbol(LibGL, 'glNormal3sv');
@glNormalPointer := GetModuleSymbol(LibGL, 'glNormalPointer');
@glOrtho := GetModuleSymbol(LibGL, 'glOrtho');
@glPassThrough := GetModuleSymbol(LibGL, 'glPassThrough');
@glPixelMapfv := GetModuleSymbol(LibGL, 'glPixelMapfv');
@glPixelMapuiv := GetModuleSymbol(LibGL, 'glPixelMapuiv');
@glPixelMapusv := GetModuleSymbol(LibGL, 'glPixelMapusv');
@glPixelStoref := GetModuleSymbol(LibGL, 'glPixelStoref');
@glPixelStorei := GetModuleSymbol(LibGL, 'glPixelStorei');
@glPixelTransferf := GetModuleSymbol(LibGL, 'glPixelTransferf');
@glPixelTransferi := GetModuleSymbol(LibGL, 'glPixelTransferi');
@glPixelZoom := GetModuleSymbol(LibGL, 'glPixelZoom');
@glPointSize := GetModuleSymbol(LibGL, 'glPointSize');
@glPolygonMode := GetModuleSymbol(LibGL, 'glPolygonMode');
@glPolygonOffset := GetModuleSymbol(LibGL, 'glPolygonOffset');
@glPolygonStipple := GetModuleSymbol(LibGL, 'glPolygonStipple');
@glPopAttrib := GetModuleSymbol(LibGL, 'glPopAttrib');
@glPopClientAttrib := GetModuleSymbol(LibGL, 'glPopClientAttrib');
@glPopMatrix := GetModuleSymbol(LibGL, 'glPopMatrix');
@glPopName := GetModuleSymbol(LibGL, 'glPopName');
@glPrioritizeTextures := GetModuleSymbol(LibGL, 'glPrioritizeTextures');
@glPushAttrib := GetModuleSymbol(LibGL, 'glPushAttrib');
@glPushClientAttrib := GetModuleSymbol(LibGL, 'glPushClientAttrib');
@glPushMatrix := GetModuleSymbol(LibGL, 'glPushMatrix');
@glPushName := GetModuleSymbol(LibGL, 'glPushName');
@glRasterPos2d := GetModuleSymbol(LibGL, 'glRasterPos2d');
@glRasterPos2dv := GetModuleSymbol(LibGL, 'glRasterPos2dv');
@glRasterPos2f := GetModuleSymbol(LibGL, 'glRasterPos2f');
@glRasterPos2fv := GetModuleSymbol(LibGL, 'glRasterPos2fv');
@glRasterPos2i := GetModuleSymbol(LibGL, 'glRasterPos2i');
@glRasterPos2iv := GetModuleSymbol(LibGL, 'glRasterPos2iv');
@glRasterPos2s := GetModuleSymbol(LibGL, 'glRasterPos2s');
@glRasterPos2sv := GetModuleSymbol(LibGL, 'glRasterPos2sv');
@glRasterPos3d := GetModuleSymbol(LibGL, 'glRasterPos3d');
@glRasterPos3dv := GetModuleSymbol(LibGL, 'glRasterPos3dv');
@glRasterPos3f := GetModuleSymbol(LibGL, 'glRasterPos3f');
@glRasterPos3fv := GetModuleSymbol(LibGL, 'glRasterPos3fv');
@glRasterPos3i := GetModuleSymbol(LibGL, 'glRasterPos3i');
@glRasterPos3iv := GetModuleSymbol(LibGL, 'glRasterPos3iv');
@glRasterPos3s := GetModuleSymbol(LibGL, 'glRasterPos3s');
@glRasterPos3sv := GetModuleSymbol(LibGL, 'glRasterPos3sv');
@glRasterPos4d := GetModuleSymbol(LibGL, 'glRasterPos4d');
@glRasterPos4dv := GetModuleSymbol(LibGL, 'glRasterPos4dv');
@glRasterPos4f := GetModuleSymbol(LibGL, 'glRasterPos4f');
@glRasterPos4fv := GetModuleSymbol(LibGL, 'glRasterPos4fv');
@glRasterPos4i := GetModuleSymbol(LibGL, 'glRasterPos4i');
@glRasterPos4iv := GetModuleSymbol(LibGL, 'glRasterPos4iv');
@glRasterPos4s := GetModuleSymbol(LibGL, 'glRasterPos4s');
@glRasterPos4sv := GetModuleSymbol(LibGL, 'glRasterPos4sv');
@glReadBuffer := GetModuleSymbol(LibGL, 'glReadBuffer');
@glReadPixels := GetModuleSymbol(LibGL, 'glReadPixels');
@glRectd := GetModuleSymbol(LibGL, 'glRectd');
@glRectdv := GetModuleSymbol(LibGL, 'glRectdv');
@glRectf := GetModuleSymbol(LibGL, 'glRectf');
@glRectfv := GetModuleSymbol(LibGL, 'glRectfv');
@glRecti := GetModuleSymbol(LibGL, 'glRecti');
@glRectiv := GetModuleSymbol(LibGL, 'glRectiv');
@glRects := GetModuleSymbol(LibGL, 'glRects');
@glRectsv := GetModuleSymbol(LibGL, 'glRectsv');
@glRenderMode := GetModuleSymbol(LibGL, 'glRenderMode');
@glRotated := GetModuleSymbol(LibGL, 'glRotated');
@glRotatef := GetModuleSymbol(LibGL, 'glRotatef');
@glScaled := GetModuleSymbol(LibGL, 'glScaled');
@glScalef := GetModuleSymbol(LibGL, 'glScalef');
@glScissor := GetModuleSymbol(LibGL, 'glScissor');
@glSelectBuffer := GetModuleSymbol(LibGL, 'glSelectBuffer');
@glShadeModel := GetModuleSymbol(LibGL, 'glShadeModel');
@glStencilFunc := GetModuleSymbol(LibGL, 'glStencilFunc');
@glStencilMask := GetModuleSymbol(LibGL, 'glStencilMask');
@glStencilOp := GetModuleSymbol(LibGL, 'glStencilOp');
@glTexCoord1d := GetModuleSymbol(LibGL, 'glTexCoord1d');
@glTexCoord1dv := GetModuleSymbol(LibGL, 'glTexCoord1dv');
@glTexCoord1f := GetModuleSymbol(LibGL, 'glTexCoord1f');
@glTexCoord1fv := GetModuleSymbol(LibGL, 'glTexCoord1fv');
@glTexCoord1i := GetModuleSymbol(LibGL, 'glTexCoord1i');
@glTexCoord1iv := GetModuleSymbol(LibGL, 'glTexCoord1iv');
@glTexCoord1s := GetModuleSymbol(LibGL, 'glTexCoord1s');
@glTexCoord1sv := GetModuleSymbol(LibGL, 'glTexCoord1sv');
@glTexCoord2d := GetModuleSymbol(LibGL, 'glTexCoord2d');
@glTexCoord2dv := GetModuleSymbol(LibGL, 'glTexCoord2dv');
@glTexCoord2f := GetModuleSymbol(LibGL, 'glTexCoord2f');
@glTexCoord2fv := GetModuleSymbol(LibGL, 'glTexCoord2fv');
@glTexCoord2i := GetModuleSymbol(LibGL, 'glTexCoord2i');
@glTexCoord2iv := GetModuleSymbol(LibGL, 'glTexCoord2iv');
@glTexCoord2s := GetModuleSymbol(LibGL, 'glTexCoord2s');
@glTexCoord2sv := GetModuleSymbol(LibGL, 'glTexCoord2sv');
@glTexCoord3d := GetModuleSymbol(LibGL, 'glTexCoord3d');
@glTexCoord3dv := GetModuleSymbol(LibGL, 'glTexCoord3dv');
@glTexCoord3f := GetModuleSymbol(LibGL, 'glTexCoord3f');
@glTexCoord3fv := GetModuleSymbol(LibGL, 'glTexCoord3fv');
@glTexCoord3i := GetModuleSymbol(LibGL, 'glTexCoord3i');
@glTexCoord3iv := GetModuleSymbol(LibGL, 'glTexCoord3iv');
@glTexCoord3s := GetModuleSymbol(LibGL, 'glTexCoord3s');
@glTexCoord3sv := GetModuleSymbol(LibGL, 'glTexCoord3sv');
@glTexCoord4d := GetModuleSymbol(LibGL, 'glTexCoord4d');
@glTexCoord4dv := GetModuleSymbol(LibGL, 'glTexCoord4dv');
@glTexCoord4f := GetModuleSymbol(LibGL, 'glTexCoord4f');
@glTexCoord4fv := GetModuleSymbol(LibGL, 'glTexCoord4fv');
@glTexCoord4i := GetModuleSymbol(LibGL, 'glTexCoord4i');
@glTexCoord4iv := GetModuleSymbol(LibGL, 'glTexCoord4iv');
@glTexCoord4s := GetModuleSymbol(LibGL, 'glTexCoord4s');
@glTexCoord4sv := GetModuleSymbol(LibGL, 'glTexCoord4sv');
@glTexCoordPointer := GetModuleSymbol(LibGL, 'glTexCoordPointer');
@glTexEnvf := GetModuleSymbol(LibGL, 'glTexEnvf');
@glTexEnvfv := GetModuleSymbol(LibGL, 'glTexEnvfv');
@glTexEnvi := GetModuleSymbol(LibGL, 'glTexEnvi');
@glTexEnviv := GetModuleSymbol(LibGL, 'glTexEnviv');
@glTexGend := GetModuleSymbol(LibGL, 'glTexGend');
@glTexGendv := GetModuleSymbol(LibGL, 'glTexGendv');
@glTexGenf := GetModuleSymbol(LibGL, 'glTexGenf');
@glTexGenfv := GetModuleSymbol(LibGL, 'glTexGenfv');
@glTexGeni := GetModuleSymbol(LibGL, 'glTexGeni');
@glTexGeniv := GetModuleSymbol(LibGL, 'glTexGeniv');
@glTexImage1D := GetModuleSymbol(LibGL, 'glTexImage1D');
@glTexImage2D := GetModuleSymbol(LibGL, 'glTexImage2D');
@glTexParameterf := GetModuleSymbol(LibGL, 'glTexParameterf');
@glTexParameterfv := GetModuleSymbol(LibGL, 'glTexParameterfv');
@glTexParameteri := GetModuleSymbol(LibGL, 'glTexParameteri');
@glTexParameteriv := GetModuleSymbol(LibGL, 'glTexParameteriv');
@glTexSubImage1D := GetModuleSymbol(LibGL, 'glTexSubImage1D');
@glTexSubImage2D := GetModuleSymbol(LibGL, 'glTexSubImage2D');
@glTranslated := GetModuleSymbol(LibGL, 'glTranslated');
@glTranslatef := GetModuleSymbol(LibGL, 'glTranslatef');
@glVertex2d := GetModuleSymbol(LibGL, 'glVertex2d');
@glVertex2dv := GetModuleSymbol(LibGL, 'glVertex2dv');
@glVertex2f := GetModuleSymbol(LibGL, 'glVertex2f');
@glVertex2fv := GetModuleSymbol(LibGL, 'glVertex2fv');
@glVertex2i := GetModuleSymbol(LibGL, 'glVertex2i');
@glVertex2iv := GetModuleSymbol(LibGL, 'glVertex2iv');
@glVertex2s := GetModuleSymbol(LibGL, 'glVertex2s');
@glVertex2sv := GetModuleSymbol(LibGL, 'glVertex2sv');
@glVertex3d := GetModuleSymbol(LibGL, 'glVertex3d');
@glVertex3dv := GetModuleSymbol(LibGL, 'glVertex3dv');
@glVertex3f := GetModuleSymbol(LibGL, 'glVertex3f');
@glVertex3fv := GetModuleSymbol(LibGL, 'glVertex3fv');
@glVertex3i := GetModuleSymbol(LibGL, 'glVertex3i');
@glVertex3iv := GetModuleSymbol(LibGL, 'glVertex3iv');
@glVertex3s := GetModuleSymbol(LibGL, 'glVertex3s');
@glVertex3sv := GetModuleSymbol(LibGL, 'glVertex3sv');
@glVertex4d := GetModuleSymbol(LibGL, 'glVertex4d');
@glVertex4dv := GetModuleSymbol(LibGL, 'glVertex4dv');
@glVertex4f := GetModuleSymbol(LibGL, 'glVertex4f');
@glVertex4fv := GetModuleSymbol(LibGL, 'glVertex4fv');
@glVertex4i := GetModuleSymbol(LibGL, 'glVertex4i');
@glVertex4iv := GetModuleSymbol(LibGL, 'glVertex4iv');
@glVertex4s := GetModuleSymbol(LibGL, 'glVertex4s');
@glVertex4sv := GetModuleSymbol(LibGL, 'glVertex4sv');
@glVertexPointer := GetModuleSymbol(LibGL, 'glVertexPointer');
@glViewport := GetModuleSymbol(LibGL, 'glViewport');
{$IFDEF WINDOWS}
@ChoosePixelFormat := GetModuleSymbol(LibGL, 'ChoosePixelFormat');
if not Assigned(ChoosePixelFormat) then
{$IFNDEF FPC}@{$ENDIF}ChoosePixelFormat := @Windows.ChoosePixelFormat;
{$ENDIF}
end;
end;
initialization
{$IF Defined(CPU386) or Defined(CPUI386) or Defined(CPUX86_64)}
Set8087CW($133F);
{$IFEND}
LoadOpenGL( GLLibName );
finalization
FreeOpenGL;
end.