(*************************************************************)
(*                                                           *)
(*   This unit was generated using the following program:    *)
(*                                                           *)
(*  program name : Extension Header to Unit Converter v0.3   *)
(*  part of      : Freestanding                              *)
(*  author       : Danubius / Danube                         *)
(*  date         : 04-16-2005                                *)
(*                                                           *)
(*************************************************************)

unit GLext;

(***) interface (***)

uses Windows, GL;

type
  PGLvoid = Pointer;
  PPGLvoid = ^PGLvoid;

function wglGetProcAddress(proc: PChar): Pointer; stdcall; external 'OpenGL32.dll';

(*************************************************************)
(*                  T   O   K   E   N   S                    *)
(*************************************************************)

const

(*** GL_VERSION_1_2 ***)
  GL_UNSIGNED_BYTE_3_3_2            = $8032;
  GL_UNSIGNED_SHORT_4_4_4_4         = $8033;
  GL_UNSIGNED_SHORT_5_5_5_1         = $8034;
  GL_UNSIGNED_INT_8_8_8_8           = $8035;
  GL_UNSIGNED_INT_10_10_10_2        = $8036;
  GL_RESCALE_NORMAL                 = $803A;
  GL_TEXTURE_BINDING_3D             = $806A;
  GL_PACK_SKIP_IMAGES               = $806B;
  GL_PACK_IMAGE_HEIGHT              = $806C;
  GL_UNPACK_SKIP_IMAGES             = $806D;
  GL_UNPACK_IMAGE_HEIGHT            = $806E;
  GL_TEXTURE_3D                     = $806F;
  GL_PROXY_TEXTURE_3D               = $8070;
  GL_TEXTURE_DEPTH                  = $8071;
  GL_TEXTURE_WRAP_R                 = $8072;
  GL_MAX_3D_TEXTURE_SIZE            = $8073;
  GL_UNSIGNED_BYTE_2_3_3_REV        = $8362;
  GL_UNSIGNED_SHORT_5_6_5           = $8363;
  GL_UNSIGNED_SHORT_5_6_5_REV       = $8364;
  GL_UNSIGNED_SHORT_4_4_4_4_REV     = $8365;
  GL_UNSIGNED_SHORT_1_5_5_5_REV     = $8366;
  GL_UNSIGNED_INT_8_8_8_8_REV       = $8367;
  GL_UNSIGNED_INT_2_10_10_10_REV    = $8368;
  GL_BGR                            = $80E0;
  GL_BGRA                           = $80E1;
  GL_MAX_ELEMENTS_VERTICES          = $80E8;
  GL_MAX_ELEMENTS_INDICES           = $80E9;
  GL_CLAMP_TO_EDGE                  = $812F;
  GL_TEXTURE_MIN_LOD                = $813A;
  GL_TEXTURE_MAX_LOD                = $813B;
  GL_TEXTURE_BASE_LEVEL             = $813C;
  GL_TEXTURE_MAX_LEVEL              = $813D;
  GL_LIGHT_MODEL_COLOR_CONTROL      = $81F8;
  GL_SINGLE_COLOR                   = $81F9;
  GL_SEPARATE_SPECULAR_COLOR        = $81FA;
  GL_SMOOTH_POINT_SIZE_RANGE        = $0B12;
  GL_SMOOTH_POINT_SIZE_GRANULARITY  = $0B13;
  GL_SMOOTH_LINE_WIDTH_RANGE        = $0B22;
  GL_SMOOTH_LINE_WIDTH_GRANULARITY  = $0B23;
  GL_ALIASED_POINT_SIZE_RANGE       = $846D;
  GL_ALIASED_LINE_WIDTH_RANGE       = $846E;

(*** GL_ARB_imaging ***)
  GL_CONSTANT_COLOR                 = $8001;
  GL_ONE_MINUS_CONSTANT_COLOR       = $8002;
  GL_CONSTANT_ALPHA                 = $8003;
  GL_ONE_MINUS_CONSTANT_ALPHA       = $8004;
  GL_BLEND_COLOR                    = $8005;
  GL_FUNC_ADD                       = $8006;
  GL_MIN                            = $8007;
  GL_MAX                            = $8008;
  GL_BLEND_EQUATION                 = $8009;
  GL_FUNC_SUBTRACT                  = $800A;
  GL_FUNC_REVERSE_SUBTRACT          = $800B;
  GL_CONVOLUTION_1D                 = $8010;
  GL_CONVOLUTION_2D                 = $8011;
  GL_SEPARABLE_2D                   = $8012;
  GL_CONVOLUTION_BORDER_MODE        = $8013;
  GL_CONVOLUTION_FILTER_SCALE       = $8014;
  GL_CONVOLUTION_FILTER_BIAS        = $8015;
  GL_REDUCE                         = $8016;
  GL_CONVOLUTION_FORMAT             = $8017;
  GL_CONVOLUTION_WIDTH              = $8018;
  GL_CONVOLUTION_HEIGHT             = $8019;
  GL_MAX_CONVOLUTION_WIDTH          = $801A;
  GL_MAX_CONVOLUTION_HEIGHT         = $801B;
  GL_POST_CONVOLUTION_RED_SCALE     = $801C;
  GL_POST_CONVOLUTION_GREEN_SCALE   = $801D;
  GL_POST_CONVOLUTION_BLUE_SCALE    = $801E;
  GL_POST_CONVOLUTION_ALPHA_SCALE   = $801F;
  GL_POST_CONVOLUTION_RED_BIAS      = $8020;
  GL_POST_CONVOLUTION_GREEN_BIAS    = $8021;
  GL_POST_CONVOLUTION_BLUE_BIAS     = $8022;
  GL_POST_CONVOLUTION_ALPHA_BIAS    = $8023;
  GL_HISTOGRAM                      = $8024;
  GL_PROXY_HISTOGRAM                = $8025;
  GL_HISTOGRAM_WIDTH                = $8026;
  GL_HISTOGRAM_FORMAT               = $8027;
  GL_HISTOGRAM_RED_SIZE             = $8028;
  GL_HISTOGRAM_GREEN_SIZE           = $8029;
  GL_HISTOGRAM_BLUE_SIZE            = $802A;
  GL_HISTOGRAM_ALPHA_SIZE           = $802B;
  GL_HISTOGRAM_LUMINANCE_SIZE       = $802C;
  GL_HISTOGRAM_SINK                 = $802D;
  GL_MINMAX                         = $802E;
  GL_MINMAX_FORMAT                  = $802F;
  GL_MINMAX_SINK                    = $8030;
  GL_TABLE_TOO_LARGE                = $8031;
  GL_COLOR_MATRIX                   = $80B1;
  GL_COLOR_MATRIX_STACK_DEPTH       = $80B2;
  GL_MAX_COLOR_MATRIX_STACK_DEPTH   = $80B3;
  GL_POST_COLOR_MATRIX_RED_SCALE    = $80B4;
  GL_POST_COLOR_MATRIX_GREEN_SCALE  = $80B5;
  GL_POST_COLOR_MATRIX_BLUE_SCALE   = $80B6;
  GL_POST_COLOR_MATRIX_ALPHA_SCALE  = $80B7;
  GL_POST_COLOR_MATRIX_RED_BIAS     = $80B8;
  GL_POST_COLOR_MATRIX_GREEN_BIAS   = $80B9;
  GL_POST_COLOR_MATRIX_BLUE_BIAS    = $80BA;
  GL_POST_COLOR_MATRIX_ALPHA_BIAS   = $80BB;
  GL_COLOR_TABLE                    = $80D0;
  GL_POST_CONVOLUTION_COLOR_TABLE   = $80D1;
  GL_POST_COLOR_MATRIX_COLOR_TABLE  = $80D2;
  GL_PROXY_COLOR_TABLE              = $80D3;
  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
  GL_COLOR_TABLE_SCALE              = $80D6;
  GL_COLOR_TABLE_BIAS               = $80D7;
  GL_COLOR_TABLE_FORMAT             = $80D8;
  GL_COLOR_TABLE_WIDTH              = $80D9;
  GL_COLOR_TABLE_RED_SIZE           = $80DA;
  GL_COLOR_TABLE_GREEN_SIZE         = $80DB;
  GL_COLOR_TABLE_BLUE_SIZE          = $80DC;
  GL_COLOR_TABLE_ALPHA_SIZE         = $80DD;
  GL_COLOR_TABLE_LUMINANCE_SIZE     = $80DE;
  GL_COLOR_TABLE_INTENSITY_SIZE     = $80DF;
  GL_CONSTANT_BORDER                = $8151;
  GL_REPLICATE_BORDER               = $8153;
  GL_CONVOLUTION_BORDER_COLOR       = $8154;

(*** GL_VERSION_1_3 ***)
  GL_TEXTURE0                       = $84C0;
  GL_TEXTURE1                       = $84C1;
  GL_TEXTURE2                       = $84C2;
  GL_TEXTURE3                       = $84C3;
  GL_TEXTURE4                       = $84C4;
  GL_TEXTURE5                       = $84C5;
  GL_TEXTURE6                       = $84C6;
  GL_TEXTURE7                       = $84C7;
  GL_TEXTURE8                       = $84C8;
  GL_TEXTURE9                       = $84C9;
  GL_TEXTURE10                      = $84CA;
  GL_TEXTURE11                      = $84CB;
  GL_TEXTURE12                      = $84CC;
  GL_TEXTURE13                      = $84CD;
  GL_TEXTURE14                      = $84CE;
  GL_TEXTURE15                      = $84CF;
  GL_TEXTURE16                      = $84D0;
  GL_TEXTURE17                      = $84D1;
  GL_TEXTURE18                      = $84D2;
  GL_TEXTURE19                      = $84D3;
  GL_TEXTURE20                      = $84D4;
  GL_TEXTURE21                      = $84D5;
  GL_TEXTURE22                      = $84D6;
  GL_TEXTURE23                      = $84D7;
  GL_TEXTURE24                      = $84D8;
  GL_TEXTURE25                      = $84D9;
  GL_TEXTURE26                      = $84DA;
  GL_TEXTURE27                      = $84DB;
  GL_TEXTURE28                      = $84DC;
  GL_TEXTURE29                      = $84DD;
  GL_TEXTURE30                      = $84DE;
  GL_TEXTURE31                      = $84DF;
  GL_ACTIVE_TEXTURE                 = $84E0;
  GL_CLIENT_ACTIVE_TEXTURE          = $84E1;
  GL_MAX_TEXTURE_UNITS              = $84E2;
  GL_TRANSPOSE_MODELVIEW_MATRIX     = $84E3;
  GL_TRANSPOSE_PROJECTION_MATRIX    = $84E4;
  GL_TRANSPOSE_TEXTURE_MATRIX       = $84E5;
  GL_TRANSPOSE_COLOR_MATRIX         = $84E6;
  GL_MULTISAMPLE                    = $809D;
  GL_SAMPLE_ALPHA_TO_COVERAGE       = $809E;
  GL_SAMPLE_ALPHA_TO_ONE            = $809F;
  GL_SAMPLE_COVERAGE                = $80A0;
  GL_SAMPLE_BUFFERS                 = $80A8;
  GL_SAMPLES                        = $80A9;
  GL_SAMPLE_COVERAGE_VALUE          = $80AA;
  GL_SAMPLE_COVERAGE_INVERT         = $80AB;
  GL_MULTISAMPLE_BIT                = $20000000;
  GL_NORMAL_MAP                     = $8511;
  GL_REFLECTION_MAP                 = $8512;
  GL_TEXTURE_CUBE_MAP               = $8513;
  GL_TEXTURE_BINDING_CUBE_MAP       = $8514;
  GL_TEXTURE_CUBE_MAP_POSITIVE_X    = $8515;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_X    = $8516;
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y    = $8517;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    = $8518;
  GL_TEXTURE_CUBE_MAP_POSITIVE_Z    = $8519;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    = $851A;
  GL_PROXY_TEXTURE_CUBE_MAP         = $851B;
  GL_MAX_CUBE_MAP_TEXTURE_SIZE      = $851C;
  GL_COMPRESSED_ALPHA               = $84E9;
  GL_COMPRESSED_LUMINANCE           = $84EA;
  GL_COMPRESSED_LUMINANCE_ALPHA     = $84EB;
  GL_COMPRESSED_INTENSITY           = $84EC;
  GL_COMPRESSED_RGB                 = $84ED;
  GL_COMPRESSED_RGBA                = $84EE;
  GL_TEXTURE_COMPRESSION_HINT       = $84EF;
  GL_TEXTURE_COMPRESSED_IMAGE_SIZE  = $86A0;
  GL_TEXTURE_COMPRESSED             = $86A1;
  GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
  GL_COMPRESSED_TEXTURE_FORMATS     = $86A3;
  GL_CLAMP_TO_BORDER                = $812D;
  GL_COMBINE                        = $8570;
  GL_COMBINE_RGB                    = $8571;
  GL_COMBINE_ALPHA                  = $8572;
  GL_SOURCE0_RGB                    = $8580;
  GL_SOURCE1_RGB                    = $8581;
  GL_SOURCE2_RGB                    = $8582;
  GL_SOURCE0_ALPHA                  = $8588;
  GL_SOURCE1_ALPHA                  = $8589;
  GL_SOURCE2_ALPHA                  = $858A;
  GL_OPERAND0_RGB                   = $8590;
  GL_OPERAND1_RGB                   = $8591;
  GL_OPERAND2_RGB                   = $8592;
  GL_OPERAND0_ALPHA                 = $8598;
  GL_OPERAND1_ALPHA                 = $8599;
  GL_OPERAND2_ALPHA                 = $859A;
  GL_RGB_SCALE                      = $8573;
  GL_ADD_SIGNED                     = $8574;
  GL_INTERPOLATE                    = $8575;
  GL_SUBTRACT                       = $84E7;
  GL_CONSTANT                       = $8576;
  GL_PRIMARY_COLOR                  = $8577;
  GL_PREVIOUS                       = $8578;
  GL_DOT3_RGB                       = $86AE;
  GL_DOT3_RGBA                      = $86AF;

(*** GL_VERSION_1_4 ***)
  GL_BLEND_DST_RGB                  = $80C8;
  GL_BLEND_SRC_RGB                  = $80C9;
  GL_BLEND_DST_ALPHA                = $80CA;
  GL_BLEND_SRC_ALPHA                = $80CB;
  GL_POINT_SIZE_MIN                 = $8126;
  GL_POINT_SIZE_MAX                 = $8127;
  GL_POINT_FADE_THRESHOLD_SIZE      = $8128;
  GL_POINT_DISTANCE_ATTENUATION     = $8129;
  GL_GENERATE_MIPMAP                = $8191;
  GL_GENERATE_MIPMAP_HINT           = $8192;
  GL_DEPTH_COMPONENT16              = $81A5;
  GL_DEPTH_COMPONENT24              = $81A6;
  GL_DEPTH_COMPONENT32              = $81A7;
  GL_MIRRORED_REPEAT                = $8370;
  GL_FOG_COORDINATE_SOURCE          = $8450;
  GL_FOG_COORDINATE                 = $8451;
  GL_FRAGMENT_DEPTH                 = $8452;
  GL_CURRENT_FOG_COORDINATE         = $8453;
  GL_FOG_COORDINATE_ARRAY_TYPE      = $8454;
  GL_FOG_COORDINATE_ARRAY_STRIDE    = $8455;
  GL_FOG_COORDINATE_ARRAY_POINTER   = $8456;
  GL_FOG_COORDINATE_ARRAY           = $8457;
  GL_COLOR_SUM                      = $8458;
  GL_CURRENT_SECONDARY_COLOR        = $8459;
  GL_SECONDARY_COLOR_ARRAY_SIZE     = $845A;
  GL_SECONDARY_COLOR_ARRAY_TYPE     = $845B;
  GL_SECONDARY_COLOR_ARRAY_STRIDE   = $845C;
  GL_SECONDARY_COLOR_ARRAY_POINTER  = $845D;
  GL_SECONDARY_COLOR_ARRAY          = $845E;
  GL_MAX_TEXTURE_LOD_BIAS           = $84FD;
  GL_TEXTURE_FILTER_CONTROL         = $8500;
  GL_TEXTURE_LOD_BIAS               = $8501;
  GL_INCR_WRAP                      = $8507;
  GL_DECR_WRAP                      = $8508;
  GL_TEXTURE_DEPTH_SIZE             = $884A;
  GL_DEPTH_TEXTURE_MODE             = $884B;
  GL_TEXTURE_COMPARE_MODE           = $884C;
  GL_TEXTURE_COMPARE_FUNC           = $884D;
  GL_COMPARE_R_TO_TEXTURE           = $884E;

(*** GL_VERSION_1_5 ***)
  GL_BUFFER_SIZE                    = $8764;
  GL_BUFFER_USAGE                   = $8765;
  GL_QUERY_COUNTER_BITS             = $8864;
  GL_CURRENT_QUERY                  = $8865;
  GL_QUERY_RESULT                   = $8866;
  GL_QUERY_RESULT_AVAILABLE         = $8867;
  GL_ARRAY_BUFFER                   = $8892;
  GL_ELEMENT_ARRAY_BUFFER           = $8893;
  GL_ARRAY_BUFFER_BINDING           = $8894;
  GL_ELEMENT_ARRAY_BUFFER_BINDING   = $8895;
  GL_VERTEX_ARRAY_BUFFER_BINDING    = $8896;
  GL_NORMAL_ARRAY_BUFFER_BINDING    = $8897;
  GL_COLOR_ARRAY_BUFFER_BINDING     = $8898;
  GL_INDEX_ARRAY_BUFFER_BINDING     = $8899;
  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
  GL_WEIGHT_ARRAY_BUFFER_BINDING    = $889E;
  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
  GL_READ_ONLY                      = $88B8;
  GL_WRITE_ONLY                     = $88B9;
  GL_READ_WRITE                     = $88BA;
  GL_BUFFER_ACCESS                  = $88BB;
  GL_BUFFER_MAPPED                  = $88BC;
  GL_BUFFER_MAP_POINTER             = $88BD;
  GL_STREAM_DRAW                    = $88E0;
  GL_STREAM_READ                    = $88E1;
  GL_STREAM_COPY                    = $88E2;
  GL_STATIC_DRAW                    = $88E4;
  GL_STATIC_READ                    = $88E5;
  GL_STATIC_COPY                    = $88E6;
  GL_DYNAMIC_DRAW                   = $88E8;
  GL_DYNAMIC_READ                   = $88E9;
  GL_DYNAMIC_COPY                   = $88EA;
  GL_SAMPLES_PASSED                 = $8914;
  GL_FOG_COORD_SRC                  = GL_FOG_COORDINATE_SOURCE;
  GL_FOG_COORD                      = GL_FOG_COORDINATE;
  GL_CURRENT_FOG_COORD              = GL_CURRENT_FOG_COORDINATE;
  GL_FOG_COORD_ARRAY_TYPE           = GL_FOG_COORDINATE_ARRAY_TYPE;
  GL_FOG_COORD_ARRAY_STRIDE         = GL_FOG_COORDINATE_ARRAY_STRIDE;
  GL_FOG_COORD_ARRAY_POINTER        = GL_FOG_COORDINATE_ARRAY_POINTER;
  GL_FOG_COORD_ARRAY                = GL_FOG_COORDINATE_ARRAY;
  GL_FOG_COORD_ARRAY_BUFFER_BINDING = GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING;
  GL_SRC0_RGB                       = GL_SOURCE0_RGB;
  GL_SRC1_RGB                       = GL_SOURCE1_RGB;
  GL_SRC2_RGB                       = GL_SOURCE2_RGB;
  GL_SRC0_ALPHA                     = GL_SOURCE0_ALPHA;
  GL_SRC1_ALPHA                     = GL_SOURCE1_ALPHA;
  GL_SRC2_ALPHA                     = GL_SOURCE2_ALPHA;

(*** GL_VERSION_2_0 ***)
  GL_BLEND_EQUATION_RGB             = GL_BLEND_EQUATION;
  GL_VERTEX_ATTRIB_ARRAY_ENABLED    = $8622;
  GL_VERTEX_ATTRIB_ARRAY_SIZE       = $8623;
  GL_VERTEX_ATTRIB_ARRAY_STRIDE     = $8624;
  GL_VERTEX_ATTRIB_ARRAY_TYPE       = $8625;
  GL_CURRENT_VERTEX_ATTRIB          = $8626;
  GL_VERTEX_PROGRAM_POINT_SIZE      = $8642;
  GL_VERTEX_PROGRAM_TWO_SIDE        = $8643;
  GL_VERTEX_ATTRIB_ARRAY_POINTER    = $8645;
  GL_STENCIL_BACK_FUNC              = $8800;
  GL_STENCIL_BACK_FAIL              = $8801;
  GL_STENCIL_BACK_PASS_DEPTH_FAIL   = $8802;
  GL_STENCIL_BACK_PASS_DEPTH_PASS   = $8803;
  GL_MAX_DRAW_BUFFERS               = $8824;
  GL_DRAW_BUFFER0                   = $8825;
  GL_DRAW_BUFFER1                   = $8826;
  GL_DRAW_BUFFER2                   = $8827;
  GL_DRAW_BUFFER3                   = $8828;
  GL_DRAW_BUFFER4                   = $8829;
  GL_DRAW_BUFFER5                   = $882A;
  GL_DRAW_BUFFER6                   = $882B;
  GL_DRAW_BUFFER7                   = $882C;
  GL_DRAW_BUFFER8                   = $882D;
  GL_DRAW_BUFFER9                   = $882E;
  GL_DRAW_BUFFER10                  = $882F;
  GL_DRAW_BUFFER11                  = $8830;
  GL_DRAW_BUFFER12                  = $8831;
  GL_DRAW_BUFFER13                  = $8832;
  GL_DRAW_BUFFER14                  = $8833;
  GL_DRAW_BUFFER15                  = $8834;
  GL_BLEND_EQUATION_ALPHA           = $883D;
  GL_POINT_SPRITE                   = $8861;
  GL_COORD_REPLACE                  = $8862;
  GL_MAX_VERTEX_ATTRIBS             = $8869;
  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
  GL_MAX_TEXTURE_COORDS             = $8871;
  GL_MAX_TEXTURE_IMAGE_UNITS        = $8872;
  GL_FRAGMENT_SHADER                = $8B30;
  GL_VERTEX_SHADER                  = $8B31;
  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
  GL_MAX_VERTEX_UNIFORM_COMPONENTS  = $8B4A;
  GL_MAX_VARYING_FLOATS             = $8B4B;
  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
  GL_SHADER_TYPE                    = $8B4F;
  GL_FLOAT_VEC2                     = $8B50;
  GL_FLOAT_VEC3                     = $8B51;
  GL_FLOAT_VEC4                     = $8B52;
  GL_INT_VEC2                       = $8B53;
  GL_INT_VEC3                       = $8B54;
  GL_INT_VEC4                       = $8B55;
  GL_BOOL                           = $8B56;
  GL_BOOL_VEC2                      = $8B57;
  GL_BOOL_VEC3                      = $8B58;
  GL_BOOL_VEC4                      = $8B59;
  GL_FLOAT_MAT2                     = $8B5A;
  GL_FLOAT_MAT3                     = $8B5B;
  GL_FLOAT_MAT4                     = $8B5C;
  GL_SAMPLER_1D                     = $8B5D;
  GL_SAMPLER_2D                     = $8B5E;
  GL_SAMPLER_3D                     = $8B5F;
  GL_SAMPLER_CUBE                   = $8B60;
  GL_SAMPLER_1D_SHADOW              = $8B61;
  GL_SAMPLER_2D_SHADOW              = $8B62;
  GL_DELETE_STATUS                  = $8B80;
  GL_COMPILE_STATUS                 = $8B81;
  GL_LINK_STATUS                    = $8B82;
  GL_VALIDATE_STATUS                = $8B83;
  GL_INFO_LOG_LENGTH                = $8B84;
  GL_ATTACHED_SHADERS               = $8B85;
  GL_ACTIVE_UNIFORMS                = $8B86;
  GL_ACTIVE_UNIFORM_MAX_LENGTH      = $8B87;
  GL_SHADER_SOURCE_LENGTH           = $8B88;
  GL_ACTIVE_ATTRIBUTES              = $8B89;
  GL_ACTIVE_ATTRIBUTE_MAX_LENGTH    = $8B8A;
  GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
  GL_SHADING_LANGUAGE_VERSION       = $8B8C;
  GL_CURRENT_PROGRAM                = $8B8D;
  GL_POINT_SPRITE_COORD_ORIGIN      = $8CA0;
  GL_LOWER_LEFT                     = $8CA1;
  GL_UPPER_LEFT                     = $8CA2;
  GL_STENCIL_BACK_REF               = $8CA3;
  GL_STENCIL_BACK_VALUE_MASK        = $8CA4;
  GL_STENCIL_BACK_WRITEMASK         = $8CA5;

(*** GL_ARB_multitexture ***)
  GL_TEXTURE0_ARB                   = $84C0;
  GL_TEXTURE1_ARB                   = $84C1;
  GL_TEXTURE2_ARB                   = $84C2;
  GL_TEXTURE3_ARB                   = $84C3;
  GL_TEXTURE4_ARB                   = $84C4;
  GL_TEXTURE5_ARB                   = $84C5;
  GL_TEXTURE6_ARB                   = $84C6;
  GL_TEXTURE7_ARB                   = $84C7;
  GL_TEXTURE8_ARB                   = $84C8;
  GL_TEXTURE9_ARB                   = $84C9;
  GL_TEXTURE10_ARB                  = $84CA;
  GL_TEXTURE11_ARB                  = $84CB;
  GL_TEXTURE12_ARB                  = $84CC;
  GL_TEXTURE13_ARB                  = $84CD;
  GL_TEXTURE14_ARB                  = $84CE;
  GL_TEXTURE15_ARB                  = $84CF;
  GL_TEXTURE16_ARB                  = $84D0;
  GL_TEXTURE17_ARB                  = $84D1;
  GL_TEXTURE18_ARB                  = $84D2;
  GL_TEXTURE19_ARB                  = $84D3;
  GL_TEXTURE20_ARB                  = $84D4;
  GL_TEXTURE21_ARB                  = $84D5;
  GL_TEXTURE22_ARB                  = $84D6;
  GL_TEXTURE23_ARB                  = $84D7;
  GL_TEXTURE24_ARB                  = $84D8;
  GL_TEXTURE25_ARB                  = $84D9;
  GL_TEXTURE26_ARB                  = $84DA;
  GL_TEXTURE27_ARB                  = $84DB;
  GL_TEXTURE28_ARB                  = $84DC;
  GL_TEXTURE29_ARB                  = $84DD;
  GL_TEXTURE30_ARB                  = $84DE;
  GL_TEXTURE31_ARB                  = $84DF;
  GL_ACTIVE_TEXTURE_ARB             = $84E0;
  GL_CLIENT_ACTIVE_TEXTURE_ARB      = $84E1;
  GL_MAX_TEXTURE_UNITS_ARB          = $84E2;

(*** GL_ARB_transpose_matrix ***)
  GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
  GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
  GL_TRANSPOSE_TEXTURE_MATRIX_ARB   = $84E5;
  GL_TRANSPOSE_COLOR_MATRIX_ARB     = $84E6;

(*** GL_ARB_multisample ***)
  GL_MULTISAMPLE_ARB                = $809D;
  GL_SAMPLE_ALPHA_TO_COVERAGE_ARB   = $809E;
  GL_SAMPLE_ALPHA_TO_ONE_ARB        = $809F;
  GL_SAMPLE_COVERAGE_ARB            = $80A0;
  GL_SAMPLE_BUFFERS_ARB             = $80A8;
  GL_SAMPLES_ARB                    = $80A9;
  GL_SAMPLE_COVERAGE_VALUE_ARB      = $80AA;
  GL_SAMPLE_COVERAGE_INVERT_ARB     = $80AB;
  GL_MULTISAMPLE_BIT_ARB            = $20000000;

(*** GL_ARB_texture_env_add ***)

(*** GL_ARB_texture_cube_map ***)
  GL_NORMAL_MAP_ARB                 = $8511;
  GL_REFLECTION_MAP_ARB             = $8512;
  GL_TEXTURE_CUBE_MAP_ARB           = $8513;
  GL_TEXTURE_BINDING_CUBE_MAP_ARB   = $8514;
  GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
  GL_PROXY_TEXTURE_CUBE_MAP_ARB     = $851B;
  GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB  = $851C;

(*** GL_ARB_texture_compression ***)
  GL_COMPRESSED_ALPHA_ARB           = $84E9;
  GL_COMPRESSED_LUMINANCE_ARB       = $84EA;
  GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
  GL_COMPRESSED_INTENSITY_ARB       = $84EC;
  GL_COMPRESSED_RGB_ARB             = $84ED;
  GL_COMPRESSED_RGBA_ARB            = $84EE;
  GL_TEXTURE_COMPRESSION_HINT_ARB   = $84EF;
  GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
  GL_TEXTURE_COMPRESSED_ARB         = $86A1;
  GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
  GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;

(*** GL_ARB_texture_border_clamp ***)
  GL_CLAMP_TO_BORDER_ARB            = $812D;

(*** GL_ARB_point_parameters ***)
  GL_POINT_SIZE_MIN_ARB             = $8126;
  GL_POINT_SIZE_MAX_ARB             = $8127;
  GL_POINT_FADE_THRESHOLD_SIZE_ARB  = $8128;
  GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;

(*** GL_ARB_vertex_blend ***)
  GL_MAX_VERTEX_UNITS_ARB           = $86A4;
  GL_ACTIVE_VERTEX_UNITS_ARB        = $86A5;
  GL_WEIGHT_SUM_UNITY_ARB           = $86A6;
  GL_VERTEX_BLEND_ARB               = $86A7;
  GL_CURRENT_WEIGHT_ARB             = $86A8;
  GL_WEIGHT_ARRAY_TYPE_ARB          = $86A9;
  GL_WEIGHT_ARRAY_STRIDE_ARB        = $86AA;
  GL_WEIGHT_ARRAY_SIZE_ARB          = $86AB;
  GL_WEIGHT_ARRAY_POINTER_ARB       = $86AC;
  GL_WEIGHT_ARRAY_ARB               = $86AD;
  GL_MODELVIEW0_ARB                 = $1700;
  GL_MODELVIEW1_ARB                 = $850A;
  GL_MODELVIEW2_ARB                 = $8722;
  GL_MODELVIEW3_ARB                 = $8723;
  GL_MODELVIEW4_ARB                 = $8724;
  GL_MODELVIEW5_ARB                 = $8725;
  GL_MODELVIEW6_ARB                 = $8726;
  GL_MODELVIEW7_ARB                 = $8727;
  GL_MODELVIEW8_ARB                 = $8728;
  GL_MODELVIEW9_ARB                 = $8729;
  GL_MODELVIEW10_ARB                = $872A;
  GL_MODELVIEW11_ARB                = $872B;
  GL_MODELVIEW12_ARB                = $872C;
  GL_MODELVIEW13_ARB                = $872D;
  GL_MODELVIEW14_ARB                = $872E;
  GL_MODELVIEW15_ARB                = $872F;
  GL_MODELVIEW16_ARB                = $8730;
  GL_MODELVIEW17_ARB                = $8731;
  GL_MODELVIEW18_ARB                = $8732;
  GL_MODELVIEW19_ARB                = $8733;
  GL_MODELVIEW20_ARB                = $8734;
  GL_MODELVIEW21_ARB                = $8735;
  GL_MODELVIEW22_ARB                = $8736;
  GL_MODELVIEW23_ARB                = $8737;
  GL_MODELVIEW24_ARB                = $8738;
  GL_MODELVIEW25_ARB                = $8739;
  GL_MODELVIEW26_ARB                = $873A;
  GL_MODELVIEW27_ARB                = $873B;
  GL_MODELVIEW28_ARB                = $873C;
  GL_MODELVIEW29_ARB                = $873D;
  GL_MODELVIEW30_ARB                = $873E;
  GL_MODELVIEW31_ARB                = $873F;

(*** GL_ARB_matrix_palette ***)
  GL_MATRIX_PALETTE_ARB             = $8840;
  GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
  GL_MAX_PALETTE_MATRICES_ARB       = $8842;
  GL_CURRENT_PALETTE_MATRIX_ARB     = $8843;
  GL_MATRIX_INDEX_ARRAY_ARB         = $8844;
  GL_CURRENT_MATRIX_INDEX_ARB       = $8845;
  GL_MATRIX_INDEX_ARRAY_SIZE_ARB    = $8846;
  GL_MATRIX_INDEX_ARRAY_TYPE_ARB    = $8847;
  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB  = $8848;
  GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;

(*** GL_ARB_texture_env_combine ***)
  GL_COMBINE_ARB                    = $8570;
  GL_COMBINE_RGB_ARB                = $8571;
  GL_COMBINE_ALPHA_ARB              = $8572;
  GL_SOURCE0_RGB_ARB                = $8580;
  GL_SOURCE1_RGB_ARB                = $8581;
  GL_SOURCE2_RGB_ARB                = $8582;
  GL_SOURCE0_ALPHA_ARB              = $8588;
  GL_SOURCE1_ALPHA_ARB              = $8589;
  GL_SOURCE2_ALPHA_ARB              = $858A;
  GL_OPERAND0_RGB_ARB               = $8590;
  GL_OPERAND1_RGB_ARB               = $8591;
  GL_OPERAND2_RGB_ARB               = $8592;
  GL_OPERAND0_ALPHA_ARB             = $8598;
  GL_OPERAND1_ALPHA_ARB             = $8599;
  GL_OPERAND2_ALPHA_ARB             = $859A;
  GL_RGB_SCALE_ARB                  = $8573;
  GL_ADD_SIGNED_ARB                 = $8574;
  GL_INTERPOLATE_ARB                = $8575;
  GL_SUBTRACT_ARB                   = $84E7;
  GL_CONSTANT_ARB                   = $8576;
  GL_PRIMARY_COLOR_ARB              = $8577;
  GL_PREVIOUS_ARB                   = $8578;

(*** GL_ARB_texture_env_crossbar ***)

(*** GL_ARB_texture_env_dot3 ***)
  GL_DOT3_RGB_ARB                   = $86AE;
  GL_DOT3_RGBA_ARB                  = $86AF;

(*** GL_ARB_texture_mirrored_repeat ***)
  GL_MIRRORED_REPEAT_ARB            = $8370;

(*** GL_ARB_depth_texture ***)
  GL_DEPTH_COMPONENT16_ARB          = $81A5;
  GL_DEPTH_COMPONENT24_ARB          = $81A6;
  GL_DEPTH_COMPONENT32_ARB          = $81A7;
  GL_TEXTURE_DEPTH_SIZE_ARB         = $884A;
  GL_DEPTH_TEXTURE_MODE_ARB         = $884B;

(*** GL_ARB_shadow ***)
  GL_TEXTURE_COMPARE_MODE_ARB       = $884C;
  GL_TEXTURE_COMPARE_FUNC_ARB       = $884D;
  GL_COMPARE_R_TO_TEXTURE_ARB       = $884E;

(*** GL_ARB_shadow_ambient ***)
  GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;

(*** GL_ARB_window_pos ***)

(*** GL_ARB_vertex_program ***)
  GL_COLOR_SUM_ARB                  = $8458;
  GL_VERTEX_PROGRAM_ARB             = $8620;
  GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
  GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB   = $8623;
  GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
  GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB   = $8625;
  GL_CURRENT_VERTEX_ATTRIB_ARB      = $8626;
  GL_PROGRAM_LENGTH_ARB             = $8627;
  GL_PROGRAM_STRING_ARB             = $8628;
  GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
  GL_MAX_PROGRAM_MATRICES_ARB       = $862F;
  GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
  GL_CURRENT_MATRIX_ARB             = $8641;
  GL_VERTEX_PROGRAM_POINT_SIZE_ARB  = $8642;
  GL_VERTEX_PROGRAM_TWO_SIDE_ARB    = $8643;
  GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
  GL_PROGRAM_ERROR_POSITION_ARB     = $864B;
  GL_PROGRAM_BINDING_ARB            = $8677;
  GL_MAX_VERTEX_ATTRIBS_ARB         = $8869;
  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
  GL_PROGRAM_ERROR_STRING_ARB       = $8874;
  GL_PROGRAM_FORMAT_ASCII_ARB       = $8875;
  GL_PROGRAM_FORMAT_ARB             = $8876;
  GL_PROGRAM_INSTRUCTIONS_ARB       = $88A0;
  GL_MAX_PROGRAM_INSTRUCTIONS_ARB   = $88A1;
  GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
  GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
  GL_PROGRAM_TEMPORARIES_ARB        = $88A4;
  GL_MAX_PROGRAM_TEMPORARIES_ARB    = $88A5;
  GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
  GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
  GL_PROGRAM_PARAMETERS_ARB         = $88A8;
  GL_MAX_PROGRAM_PARAMETERS_ARB     = $88A9;
  GL_PROGRAM_NATIVE_PARAMETERS_ARB  = $88AA;
  GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
  GL_PROGRAM_ATTRIBS_ARB            = $88AC;
  GL_MAX_PROGRAM_ATTRIBS_ARB        = $88AD;
  GL_PROGRAM_NATIVE_ATTRIBS_ARB     = $88AE;
  GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
  GL_PROGRAM_ADDRESS_REGISTERS_ARB  = $88B0;
  GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
  GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
  GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
  GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
  GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
  GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
  GL_TRANSPOSE_CURRENT_MATRIX_ARB   = $88B7;
  GL_MATRIX0_ARB                    = $88C0;
  GL_MATRIX1_ARB                    = $88C1;
  GL_MATRIX2_ARB                    = $88C2;
  GL_MATRIX3_ARB                    = $88C3;
  GL_MATRIX4_ARB                    = $88C4;
  GL_MATRIX5_ARB                    = $88C5;
  GL_MATRIX6_ARB                    = $88C6;
  GL_MATRIX7_ARB                    = $88C7;
  GL_MATRIX8_ARB                    = $88C8;
  GL_MATRIX9_ARB                    = $88C9;
  GL_MATRIX10_ARB                   = $88CA;
  GL_MATRIX11_ARB                   = $88CB;
  GL_MATRIX12_ARB                   = $88CC;
  GL_MATRIX13_ARB                   = $88CD;
  GL_MATRIX14_ARB                   = $88CE;
  GL_MATRIX15_ARB                   = $88CF;
  GL_MATRIX16_ARB                   = $88D0;
  GL_MATRIX17_ARB                   = $88D1;
  GL_MATRIX18_ARB                   = $88D2;
  GL_MATRIX19_ARB                   = $88D3;
  GL_MATRIX20_ARB                   = $88D4;
  GL_MATRIX21_ARB                   = $88D5;
  GL_MATRIX22_ARB                   = $88D6;
  GL_MATRIX23_ARB                   = $88D7;
  GL_MATRIX24_ARB                   = $88D8;
  GL_MATRIX25_ARB                   = $88D9;
  GL_MATRIX26_ARB                   = $88DA;
  GL_MATRIX27_ARB                   = $88DB;
  GL_MATRIX28_ARB                   = $88DC;
  GL_MATRIX29_ARB                   = $88DD;
  GL_MATRIX30_ARB                   = $88DE;
  GL_MATRIX31_ARB                   = $88DF;

(*** GL_ARB_fragment_program ***)
  GL_FRAGMENT_PROGRAM_ARB           = $8804;
  GL_PROGRAM_ALU_INSTRUCTIONS_ARB   = $8805;
  GL_PROGRAM_TEX_INSTRUCTIONS_ARB   = $8806;
  GL_PROGRAM_TEX_INDIRECTIONS_ARB   = $8807;
  GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
  GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
  GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
  GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
  GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
  GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
  GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
  GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
  GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
  GL_MAX_TEXTURE_COORDS_ARB         = $8871;
  GL_MAX_TEXTURE_IMAGE_UNITS_ARB    = $8872;

(*** GL_ARB_vertex_buffer_object ***)
  GL_BUFFER_SIZE_ARB                = $8764;
  GL_BUFFER_USAGE_ARB               = $8765;
  GL_ARRAY_BUFFER_ARB               = $8892;
  GL_ELEMENT_ARRAY_BUFFER_ARB       = $8893;
  GL_ARRAY_BUFFER_BINDING_ARB       = $8894;
  GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
  GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
  GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
  GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
  GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
  GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
  GL_READ_ONLY_ARB                  = $88B8;
  GL_WRITE_ONLY_ARB                 = $88B9;
  GL_READ_WRITE_ARB                 = $88BA;
  GL_BUFFER_ACCESS_ARB              = $88BB;
  GL_BUFFER_MAPPED_ARB              = $88BC;
  GL_BUFFER_MAP_POINTER_ARB         = $88BD;
  GL_STREAM_DRAW_ARB                = $88E0;
  GL_STREAM_READ_ARB                = $88E1;
  GL_STREAM_COPY_ARB                = $88E2;
  GL_STATIC_DRAW_ARB                = $88E4;
  GL_STATIC_READ_ARB                = $88E5;
  GL_STATIC_COPY_ARB                = $88E6;
  GL_DYNAMIC_DRAW_ARB               = $88E8;
  GL_DYNAMIC_READ_ARB               = $88E9;
  GL_DYNAMIC_COPY_ARB               = $88EA;

(*** GL_ARB_occlusion_query ***)
  GL_QUERY_COUNTER_BITS_ARB         = $8864;
  GL_CURRENT_QUERY_ARB              = $8865;
  GL_QUERY_RESULT_ARB               = $8866;
  GL_QUERY_RESULT_AVAILABLE_ARB     = $8867;
  GL_SAMPLES_PASSED_ARB             = $8914;

(*** GL_ARB_shader_objects ***)
  GL_PROGRAM_OBJECT_ARB             = $8B40;
  GL_SHADER_OBJECT_ARB              = $8B48;
  GL_OBJECT_TYPE_ARB                = $8B4E;
  GL_OBJECT_SUBTYPE_ARB             = $8B4F;
  GL_FLOAT_VEC2_ARB                 = $8B50;
  GL_FLOAT_VEC3_ARB                 = $8B51;
  GL_FLOAT_VEC4_ARB                 = $8B52;
  GL_INT_VEC2_ARB                   = $8B53;
  GL_INT_VEC3_ARB                   = $8B54;
  GL_INT_VEC4_ARB                   = $8B55;
  GL_BOOL_ARB                       = $8B56;
  GL_BOOL_VEC2_ARB                  = $8B57;
  GL_BOOL_VEC3_ARB                  = $8B58;
  GL_BOOL_VEC4_ARB                  = $8B59;
  GL_FLOAT_MAT2_ARB                 = $8B5A;
  GL_FLOAT_MAT3_ARB                 = $8B5B;
  GL_FLOAT_MAT4_ARB                 = $8B5C;
  GL_SAMPLER_1D_ARB                 = $8B5D;
  GL_SAMPLER_2D_ARB                 = $8B5E;
  GL_SAMPLER_3D_ARB                 = $8B5F;
  GL_SAMPLER_CUBE_ARB               = $8B60;
  GL_SAMPLER_1D_SHADOW_ARB          = $8B61;
  GL_SAMPLER_2D_SHADOW_ARB          = $8B62;
  GL_SAMPLER_2D_RECT_ARB            = $8B63;
  GL_SAMPLER_2D_RECT_SHADOW_ARB     = $8B64;
  GL_OBJECT_DELETE_STATUS_ARB       = $8B80;
  GL_OBJECT_COMPILE_STATUS_ARB      = $8B81;
  GL_OBJECT_LINK_STATUS_ARB         = $8B82;
  GL_OBJECT_VALIDATE_STATUS_ARB     = $8B83;
  GL_OBJECT_INFO_LOG_LENGTH_ARB     = $8B84;
  GL_OBJECT_ATTACHED_OBJECTS_ARB    = $8B85;
  GL_OBJECT_ACTIVE_UNIFORMS_ARB     = $8B86;
  GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
  GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;

(*** GL_ARB_vertex_shader ***)
  GL_VERTEX_SHADER_ARB              = $8B31;
  GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
  GL_MAX_VARYING_FLOATS_ARB         = $8B4B;
  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
  GL_OBJECT_ACTIVE_ATTRIBUTES_ARB   = $8B89;
  GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;

(*** GL_ARB_fragment_shader ***)
  GL_FRAGMENT_SHADER_ARB            = $8B30;
  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49;
  GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B;

(*** GL_ARB_shading_language_100 ***)
  GL_SHADING_LANGUAGE_VERSION_ARB   = $8B8C;

(*** GL_ARB_texture_non_power_of_two ***)

(*** GL_ARB_point_sprite ***)
  GL_POINT_SPRITE_ARB               = $8861;
  GL_COORD_REPLACE_ARB              = $8862;

(*** GL_ARB_fragment_program_shadow ***)

(*** GL_ARB_draw_buffers ***)
  GL_MAX_DRAW_BUFFERS_ARB           = $8824;
  GL_DRAW_BUFFER0_ARB               = $8825;
  GL_DRAW_BUFFER1_ARB               = $8826;
  GL_DRAW_BUFFER2_ARB               = $8827;
  GL_DRAW_BUFFER3_ARB               = $8828;
  GL_DRAW_BUFFER4_ARB               = $8829;
  GL_DRAW_BUFFER5_ARB               = $882A;
  GL_DRAW_BUFFER6_ARB               = $882B;
  GL_DRAW_BUFFER7_ARB               = $882C;
  GL_DRAW_BUFFER8_ARB               = $882D;
  GL_DRAW_BUFFER9_ARB               = $882E;
  GL_DRAW_BUFFER10_ARB              = $882F;
  GL_DRAW_BUFFER11_ARB              = $8830;
  GL_DRAW_BUFFER12_ARB              = $8831;
  GL_DRAW_BUFFER13_ARB              = $8832;
  GL_DRAW_BUFFER14_ARB              = $8833;
  GL_DRAW_BUFFER15_ARB              = $8834;

(*** GL_ARB_texture_rectangle ***)
  GL_TEXTURE_RECTANGLE_ARB          = $84F5;
  GL_TEXTURE_BINDING_RECTANGLE_ARB  = $84F6;
  GL_PROXY_TEXTURE_RECTANGLE_ARB    = $84F7;
  GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;

(*** GL_ARB_color_buffer_float ***)
  GL_RGBA_FLOAT_MODE_ARB            = $8820;
  GL_CLAMP_VERTEX_COLOR_ARB         = $891A;
  GL_CLAMP_FRAGMENT_COLOR_ARB       = $891B;
  GL_CLAMP_READ_COLOR_ARB           = $891C;
  GL_FIXED_ONLY_ARB                 = $891D;

(*** GL_ARB_half_float_pixel ***)
  GL_HALF_FLOAT_ARB                 = $140B;

(*** GL_ARB_texture_float ***)
  GL_TEXTURE_RED_TYPE_ARB           = $8C10;
  GL_TEXTURE_GREEN_TYPE_ARB         = $8C11;
  GL_TEXTURE_BLUE_TYPE_ARB          = $8C12;
  GL_TEXTURE_ALPHA_TYPE_ARB         = $8C13;
  GL_TEXTURE_LUMINANCE_TYPE_ARB     = $8C14;
  GL_TEXTURE_INTENSITY_TYPE_ARB     = $8C15;
  GL_TEXTURE_DEPTH_TYPE_ARB         = $8C16;
  GL_UNSIGNED_NORMALIZED_ARB        = $8C17;
  GL_RGBA32F_ARB                    = $8814;
  GL_RGB32F_ARB                     = $8815;
  GL_ALPHA32F_ARB                   = $8816;
  GL_INTENSITY32F_ARB               = $8817;
  GL_LUMINANCE32F_ARB               = $8818;
  GL_LUMINANCE_ALPHA32F_ARB         = $8819;
  GL_RGBA16F_ARB                    = $881A;
  GL_RGB16F_ARB                     = $881B;
  GL_ALPHA16F_ARB                   = $881C;
  GL_INTENSITY16F_ARB               = $881D;
  GL_LUMINANCE16F_ARB               = $881E;
  GL_LUMINANCE_ALPHA16F_ARB         = $881F;

(*** GL_ARB_pixel_buffer_object ***)
  GL_PIXEL_PACK_BUFFER_ARB          = $88EB;
  GL_PIXEL_UNPACK_BUFFER_ARB        = $88EC;
  GL_PIXEL_PACK_BUFFER_BINDING_ARB  = $88ED;
  GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;

(*** GL_EXT_abgr ***)
  GL_ABGR_EXT                       = $8000;

(*** GL_EXT_blend_color ***)
  GL_CONSTANT_COLOR_EXT             = $8001;
  GL_ONE_MINUS_CONSTANT_COLOR_EXT   = $8002;
  GL_CONSTANT_ALPHA_EXT             = $8003;
  GL_ONE_MINUS_CONSTANT_ALPHA_EXT   = $8004;
  GL_BLEND_COLOR_EXT                = $8005;

(*** GL_EXT_polygon_offset ***)
  GL_POLYGON_OFFSET_EXT             = $8037;
  GL_POLYGON_OFFSET_FACTOR_EXT      = $8038;
  GL_POLYGON_OFFSET_BIAS_EXT        = $8039;

(*** GL_EXT_texture ***)
  GL_ALPHA4_EXT                     = $803B;
  GL_ALPHA8_EXT                     = $803C;
  GL_ALPHA12_EXT                    = $803D;
  GL_ALPHA16_EXT                    = $803E;
  GL_LUMINANCE4_EXT                 = $803F;
  GL_LUMINANCE8_EXT                 = $8040;
  GL_LUMINANCE12_EXT                = $8041;
  GL_LUMINANCE16_EXT                = $8042;
  GL_LUMINANCE4_ALPHA4_EXT          = $8043;
  GL_LUMINANCE6_ALPHA2_EXT          = $8044;
  GL_LUMINANCE8_ALPHA8_EXT          = $8045;
  GL_LUMINANCE12_ALPHA4_EXT         = $8046;
  GL_LUMINANCE12_ALPHA12_EXT        = $8047;
  GL_LUMINANCE16_ALPHA16_EXT        = $8048;
  GL_INTENSITY_EXT                  = $8049;
  GL_INTENSITY4_EXT                 = $804A;
  GL_INTENSITY8_EXT                 = $804B;
  GL_INTENSITY12_EXT                = $804C;
  GL_INTENSITY16_EXT                = $804D;
  GL_RGB2_EXT                       = $804E;
  GL_RGB4_EXT                       = $804F;
  GL_RGB5_EXT                       = $8050;
  GL_RGB8_EXT                       = $8051;
  GL_RGB10_EXT                      = $8052;
  GL_RGB12_EXT                      = $8053;
  GL_RGB16_EXT                      = $8054;
  GL_RGBA2_EXT                      = $8055;
  GL_RGBA4_EXT                      = $8056;
  GL_RGB5_A1_EXT                    = $8057;
  GL_RGBA8_EXT                      = $8058;
  GL_RGB10_A2_EXT                   = $8059;
  GL_RGBA12_EXT                     = $805A;
  GL_RGBA16_EXT                     = $805B;
  GL_TEXTURE_RED_SIZE_EXT           = $805C;
  GL_TEXTURE_GREEN_SIZE_EXT         = $805D;
  GL_TEXTURE_BLUE_SIZE_EXT          = $805E;
  GL_TEXTURE_ALPHA_SIZE_EXT         = $805F;
  GL_TEXTURE_LUMINANCE_SIZE_EXT     = $8060;
  GL_TEXTURE_INTENSITY_SIZE_EXT     = $8061;
  GL_REPLACE_EXT                    = $8062;
  GL_PROXY_TEXTURE_1D_EXT           = $8063;
  GL_PROXY_TEXTURE_2D_EXT           = $8064;
  GL_TEXTURE_TOO_LARGE_EXT          = $8065;

(*** GL_EXT_texture3D ***)
  GL_PACK_SKIP_IMAGES_EXT           = $806B;
  GL_PACK_IMAGE_HEIGHT_EXT          = $806C;
  GL_UNPACK_SKIP_IMAGES_EXT         = $806D;
  GL_UNPACK_IMAGE_HEIGHT_EXT        = $806E;
  GL_TEXTURE_3D_EXT                 = $806F;
  GL_PROXY_TEXTURE_3D_EXT           = $8070;
  GL_TEXTURE_DEPTH_EXT              = $8071;
  GL_TEXTURE_WRAP_R_EXT             = $8072;
  GL_MAX_3D_TEXTURE_SIZE_EXT        = $8073;

(*** GL_SGIS_texture_filter4 ***)
  GL_FILTER4_SGIS                   = $8146;
  GL_TEXTURE_FILTER4_SIZE_SGIS      = $8147;

(*** GL_EXT_subtexture ***)

(*** GL_EXT_copy_texture ***)

(*** GL_EXT_histogram ***)
  GL_HISTOGRAM_EXT                  = $8024;
  GL_PROXY_HISTOGRAM_EXT            = $8025;
  GL_HISTOGRAM_WIDTH_EXT            = $8026;
  GL_HISTOGRAM_FORMAT_EXT           = $8027;
  GL_HISTOGRAM_RED_SIZE_EXT         = $8028;
  GL_HISTOGRAM_GREEN_SIZE_EXT       = $8029;
  GL_HISTOGRAM_BLUE_SIZE_EXT        = $802A;
  GL_HISTOGRAM_ALPHA_SIZE_EXT       = $802B;
  GL_HISTOGRAM_LUMINANCE_SIZE_EXT   = $802C;
  GL_HISTOGRAM_SINK_EXT             = $802D;
  GL_MINMAX_EXT                     = $802E;
  GL_MINMAX_FORMAT_EXT              = $802F;
  GL_MINMAX_SINK_EXT                = $8030;
  GL_TABLE_TOO_LARGE_EXT            = $8031;

(*** GL_EXT_convolution ***)
  GL_CONVOLUTION_1D_EXT             = $8010;
  GL_CONVOLUTION_2D_EXT             = $8011;
  GL_SEPARABLE_2D_EXT               = $8012;
  GL_CONVOLUTION_BORDER_MODE_EXT    = $8013;
  GL_CONVOLUTION_FILTER_SCALE_EXT   = $8014;
  GL_CONVOLUTION_FILTER_BIAS_EXT    = $8015;
  GL_REDUCE_EXT                     = $8016;
  GL_CONVOLUTION_FORMAT_EXT         = $8017;
  GL_CONVOLUTION_WIDTH_EXT          = $8018;
  GL_CONVOLUTION_HEIGHT_EXT         = $8019;
  GL_MAX_CONVOLUTION_WIDTH_EXT      = $801A;
  GL_MAX_CONVOLUTION_HEIGHT_EXT     = $801B;
  GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
  GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
  GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
  GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
  GL_POST_CONVOLUTION_RED_BIAS_EXT  = $8020;
  GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
  GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
  GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;

(*** GL_SGI_color_matrix ***)
  GL_COLOR_MATRIX_SGI               = $80B1;
  GL_COLOR_MATRIX_STACK_DEPTH_SGI   = $80B2;
  GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
  GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
  GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
  GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
  GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
  GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
  GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
  GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
  GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;

(*** GL_SGI_color_table ***)
  GL_COLOR_TABLE_SGI                = $80D0;
  GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
  GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
  GL_PROXY_COLOR_TABLE_SGI          = $80D3;
  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
  GL_COLOR_TABLE_SCALE_SGI          = $80D6;
  GL_COLOR_TABLE_BIAS_SGI           = $80D7;
  GL_COLOR_TABLE_FORMAT_SGI         = $80D8;
  GL_COLOR_TABLE_WIDTH_SGI          = $80D9;
  GL_COLOR_TABLE_RED_SIZE_SGI       = $80DA;
  GL_COLOR_TABLE_GREEN_SIZE_SGI     = $80DB;
  GL_COLOR_TABLE_BLUE_SIZE_SGI      = $80DC;
  GL_COLOR_TABLE_ALPHA_SIZE_SGI     = $80DD;
  GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
  GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;

(*** GL_SGIS_pixel_texture ***)
  GL_PIXEL_TEXTURE_SGIS             = $8353;
  GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
  GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
  GL_PIXEL_GROUP_COLOR_SGIS         = $8356;

(*** GL_SGIX_pixel_texture ***)
  GL_PIXEL_TEX_GEN_SGIX             = $8139;
  GL_PIXEL_TEX_GEN_MODE_SGIX        = $832B;

(*** GL_SGIS_texture4D ***)
  GL_PACK_SKIP_VOLUMES_SGIS         = $8130;
  GL_PACK_IMAGE_DEPTH_SGIS          = $8131;
  GL_UNPACK_SKIP_VOLUMES_SGIS       = $8132;
  GL_UNPACK_IMAGE_DEPTH_SGIS        = $8133;
  GL_TEXTURE_4D_SGIS                = $8134;
  GL_PROXY_TEXTURE_4D_SGIS          = $8135;
  GL_TEXTURE_4DSIZE_SGIS            = $8136;
  GL_TEXTURE_WRAP_Q_SGIS            = $8137;
  GL_MAX_4D_TEXTURE_SIZE_SGIS       = $8138;
  GL_TEXTURE_4D_BINDING_SGIS        = $814F;

(*** GL_SGI_texture_color_table ***)
  GL_TEXTURE_COLOR_TABLE_SGI        = $80BC;
  GL_PROXY_TEXTURE_COLOR_TABLE_SGI  = $80BD;

(*** GL_EXT_cmyka ***)
  GL_CMYK_EXT                       = $800C;
  GL_CMYKA_EXT                      = $800D;
  GL_PACK_CMYK_HINT_EXT             = $800E;
  GL_UNPACK_CMYK_HINT_EXT           = $800F;

(*** GL_EXT_texture_object ***)
  GL_TEXTURE_PRIORITY_EXT           = $8066;
  GL_TEXTURE_RESIDENT_EXT           = $8067;
  GL_TEXTURE_1D_BINDING_EXT         = $8068;
  GL_TEXTURE_2D_BINDING_EXT         = $8069;
  GL_TEXTURE_3D_BINDING_EXT         = $806A;

(*** GL_SGIS_detail_texture ***)
  GL_DETAIL_TEXTURE_2D_SGIS         = $8095;
  GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
  GL_LINEAR_DETAIL_SGIS             = $8097;
  GL_LINEAR_DETAIL_ALPHA_SGIS       = $8098;
  GL_LINEAR_DETAIL_COLOR_SGIS       = $8099;
  GL_DETAIL_TEXTURE_LEVEL_SGIS      = $809A;
  GL_DETAIL_TEXTURE_MODE_SGIS       = $809B;
  GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;

(*** GL_SGIS_sharpen_texture ***)
  GL_LINEAR_SHARPEN_SGIS            = $80AD;
  GL_LINEAR_SHARPEN_ALPHA_SGIS      = $80AE;
  GL_LINEAR_SHARPEN_COLOR_SGIS      = $80AF;
  GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;

(*** GL_EXT_packed_pixels ***)
  GL_UNSIGNED_BYTE_3_3_2_EXT        = $8032;
  GL_UNSIGNED_SHORT_4_4_4_4_EXT     = $8033;
  GL_UNSIGNED_SHORT_5_5_5_1_EXT     = $8034;
  GL_UNSIGNED_INT_8_8_8_8_EXT       = $8035;
  GL_UNSIGNED_INT_10_10_10_2_EXT    = $8036;

(*** GL_SGIS_texture_lod ***)
  GL_TEXTURE_MIN_LOD_SGIS           = $813A;
  GL_TEXTURE_MAX_LOD_SGIS           = $813B;
  GL_TEXTURE_BASE_LEVEL_SGIS        = $813C;
  GL_TEXTURE_MAX_LEVEL_SGIS         = $813D;

(*** GL_SGIS_multisample ***)
  GL_MULTISAMPLE_SGIS               = $809D;
  GL_SAMPLE_ALPHA_TO_MASK_SGIS      = $809E;
  GL_SAMPLE_ALPHA_TO_ONE_SGIS       = $809F;
  GL_SAMPLE_MASK_SGIS               = $80A0;
  GL_1PASS_SGIS                     = $80A1;
  GL_2PASS_0_SGIS                   = $80A2;
  GL_2PASS_1_SGIS                   = $80A3;
  GL_4PASS_0_SGIS                   = $80A4;
  GL_4PASS_1_SGIS                   = $80A5;
  GL_4PASS_2_SGIS                   = $80A6;
  GL_4PASS_3_SGIS                   = $80A7;
  GL_SAMPLE_BUFFERS_SGIS            = $80A8;
  GL_SAMPLES_SGIS                   = $80A9;
  GL_SAMPLE_MASK_VALUE_SGIS         = $80AA;
  GL_SAMPLE_MASK_INVERT_SGIS        = $80AB;
  GL_SAMPLE_PATTERN_SGIS            = $80AC;

(*** GL_EXT_rescale_normal ***)
  GL_RESCALE_NORMAL_EXT             = $803A;

(*** GL_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_EXT_misc_attribute ***)

(*** GL_SGIS_generate_mipmap ***)
  GL_GENERATE_MIPMAP_SGIS           = $8191;
  GL_GENERATE_MIPMAP_HINT_SGIS      = $8192;

(*** GL_SGIX_clipmap ***)
  GL_LINEAR_CLIPMAP_LINEAR_SGIX     = $8170;
  GL_TEXTURE_CLIPMAP_CENTER_SGIX    = $8171;
  GL_TEXTURE_CLIPMAP_FRAME_SGIX     = $8172;
  GL_TEXTURE_CLIPMAP_OFFSET_SGIX    = $8173;
  GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
  GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
  GL_TEXTURE_CLIPMAP_DEPTH_SGIX     = $8176;
  GL_MAX_CLIPMAP_DEPTH_SGIX         = $8177;
  GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
  GL_NEAREST_CLIPMAP_NEAREST_SGIX   = $844D;
  GL_NEAREST_CLIPMAP_LINEAR_SGIX    = $844E;
  GL_LINEAR_CLIPMAP_NEAREST_SGIX    = $844F;

(*** GL_SGIX_shadow ***)
  GL_TEXTURE_COMPARE_SGIX           = $819A;
  GL_TEXTURE_COMPARE_OPERATOR_SGIX  = $819B;
  GL_TEXTURE_LEQUAL_R_SGIX          = $819C;
  GL_TEXTURE_GEQUAL_R_SGIX          = $819D;

(*** GL_SGIS_texture_edge_clamp ***)
  GL_CLAMP_TO_EDGE_SGIS             = $812F;

(*** GL_SGIS_texture_border_clamp ***)
  GL_CLAMP_TO_BORDER_SGIS           = $812D;

(*** GL_EXT_blend_minmax ***)
  GL_FUNC_ADD_EXT                   = $8006;
  GL_MIN_EXT                        = $8007;
  GL_MAX_EXT                        = $8008;
  GL_BLEND_EQUATION_EXT             = $8009;

(*** GL_EXT_blend_subtract ***)
  GL_FUNC_SUBTRACT_EXT              = $800A;
  GL_FUNC_REVERSE_SUBTRACT_EXT      = $800B;

(*** GL_EXT_blend_logic_op ***)

(*** GL_SGIX_interlace ***)
  GL_INTERLACE_SGIX                 = $8094;

(*** GL_SGIX_pixel_tiles ***)
  GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
  GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
  GL_PIXEL_TILE_WIDTH_SGIX          = $8140;
  GL_PIXEL_TILE_HEIGHT_SGIX         = $8141;
  GL_PIXEL_TILE_GRID_WIDTH_SGIX     = $8142;
  GL_PIXEL_TILE_GRID_HEIGHT_SGIX    = $8143;
  GL_PIXEL_TILE_GRID_DEPTH_SGIX     = $8144;
  GL_PIXEL_TILE_CACHE_SIZE_SGIX     = $8145;

(*** GL_SGIS_texture_select ***)
  GL_DUAL_ALPHA4_SGIS               = $8110;
  GL_DUAL_ALPHA8_SGIS               = $8111;
  GL_DUAL_ALPHA12_SGIS              = $8112;
  GL_DUAL_ALPHA16_SGIS              = $8113;
  GL_DUAL_LUMINANCE4_SGIS           = $8114;
  GL_DUAL_LUMINANCE8_SGIS           = $8115;
  GL_DUAL_LUMINANCE12_SGIS          = $8116;
  GL_DUAL_LUMINANCE16_SGIS          = $8117;
  GL_DUAL_INTENSITY4_SGIS           = $8118;
  GL_DUAL_INTENSITY8_SGIS           = $8119;
  GL_DUAL_INTENSITY12_SGIS          = $811A;
  GL_DUAL_INTENSITY16_SGIS          = $811B;
  GL_DUAL_LUMINANCE_ALPHA4_SGIS     = $811C;
  GL_DUAL_LUMINANCE_ALPHA8_SGIS     = $811D;
  GL_QUAD_ALPHA4_SGIS               = $811E;
  GL_QUAD_ALPHA8_SGIS               = $811F;
  GL_QUAD_LUMINANCE4_SGIS           = $8120;
  GL_QUAD_LUMINANCE8_SGIS           = $8121;
  GL_QUAD_INTENSITY4_SGIS           = $8122;
  GL_QUAD_INTENSITY8_SGIS           = $8123;
  GL_DUAL_TEXTURE_SELECT_SGIS       = $8124;
  GL_QUAD_TEXTURE_SELECT_SGIS       = $8125;

(*** GL_SGIX_sprite ***)
  GL_SPRITE_SGIX                    = $8148;
  GL_SPRITE_MODE_SGIX               = $8149;
  GL_SPRITE_AXIS_SGIX               = $814A;
  GL_SPRITE_TRANSLATION_SGIX        = $814B;
  GL_SPRITE_AXIAL_SGIX              = $814C;
  GL_SPRITE_OBJECT_ALIGNED_SGIX     = $814D;
  GL_SPRITE_EYE_ALIGNED_SGIX        = $814E;

(*** GL_SGIX_texture_multi_buffer ***)
  GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;

(*** GL_EXT_point_parameters ***)
  GL_POINT_SIZE_MIN_EXT             = $8126;
  GL_POINT_SIZE_MAX_EXT             = $8127;
  GL_POINT_FADE_THRESHOLD_SIZE_EXT  = $8128;
  GL_DISTANCE_ATTENUATION_EXT       = $8129;

(*** GL_SGIS_point_parameters ***)
  GL_POINT_SIZE_MIN_SGIS            = $8126;
  GL_POINT_SIZE_MAX_SGIS            = $8127;
  GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
  GL_DISTANCE_ATTENUATION_SGIS      = $8129;

(*** GL_SGIX_instruments ***)
  GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
  GL_INSTRUMENT_MEASUREMENTS_SGIX   = $8181;

(*** GL_SGIX_texture_scale_bias ***)
  GL_POST_TEXTURE_FILTER_BIAS_SGIX  = $8179;
  GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
  GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
  GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;

(*** GL_SGIX_framezoom ***)
  GL_FRAMEZOOM_SGIX                 = $818B;
  GL_FRAMEZOOM_FACTOR_SGIX          = $818C;
  GL_MAX_FRAMEZOOM_FACTOR_SGIX      = $818D;

(*** GL_SGIX_tag_sample_buffer ***)

(*** GL_FfdMaskSGIX ***)
  GL_TEXTURE_DEFORMATION_BIT_SGIX   = $00000001;
  GL_GEOMETRY_DEFORMATION_BIT_SGIX  = $00000002;

(*** GL_SGIX_polynomial_ffd ***)
  GL_GEOMETRY_DEFORMATION_SGIX      = $8194;
  GL_TEXTURE_DEFORMATION_SGIX       = $8195;
  GL_DEFORMATIONS_MASK_SGIX         = $8196;
  GL_MAX_DEFORMATION_ORDER_SGIX     = $8197;

(*** GL_SGIX_reference_plane ***)
  GL_REFERENCE_PLANE_SGIX           = $817D;
  GL_REFERENCE_PLANE_EQUATION_SGIX  = $817E;

(*** GL_SGIX_flush_raster ***)

(*** GL_SGIX_depth_texture ***)
  GL_DEPTH_COMPONENT16_SGIX         = $81A5;
  GL_DEPTH_COMPONENT24_SGIX         = $81A6;
  GL_DEPTH_COMPONENT32_SGIX         = $81A7;

(*** GL_SGIS_fog_function ***)
  GL_FOG_FUNC_SGIS                  = $812A;
  GL_FOG_FUNC_POINTS_SGIS           = $812B;
  GL_MAX_FOG_FUNC_POINTS_SGIS       = $812C;

(*** GL_SGIX_fog_offset ***)
  GL_FOG_OFFSET_SGIX                = $8198;
  GL_FOG_OFFSET_VALUE_SGIX          = $8199;

(*** GL_HP_image_transform ***)
  GL_IMAGE_SCALE_X_HP               = $8155;
  GL_IMAGE_SCALE_Y_HP               = $8156;
  GL_IMAGE_TRANSLATE_X_HP           = $8157;
  GL_IMAGE_TRANSLATE_Y_HP           = $8158;
  GL_IMAGE_ROTATE_ANGLE_HP          = $8159;
  GL_IMAGE_ROTATE_ORIGIN_X_HP       = $815A;
  GL_IMAGE_ROTATE_ORIGIN_Y_HP       = $815B;
  GL_IMAGE_MAG_FILTER_HP            = $815C;
  GL_IMAGE_MIN_FILTER_HP            = $815D;
  GL_IMAGE_CUBIC_WEIGHT_HP          = $815E;
  GL_CUBIC_HP                       = $815F;
  GL_AVERAGE_HP                     = $8160;
  GL_IMAGE_TRANSFORM_2D_HP          = $8161;
  GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
  GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;

(*** GL_HP_convolution_border_modes ***)
  GL_IGNORE_BORDER_HP               = $8150;
  GL_CONSTANT_BORDER_HP             = $8151;
  GL_REPLICATE_BORDER_HP            = $8153;
  GL_CONVOLUTION_BORDER_COLOR_HP    = $8154;

(*** GL_INGR_palette_buffer ***)

(*** GL_SGIX_texture_add_env ***)
  GL_TEXTURE_ENV_BIAS_SGIX          = $80BE;

(*** GL_EXT_color_subtable ***)

(*** GL_PGI_vertex_hints ***)
  GL_VERTEX_DATA_HINT_PGI           = $1A22A;
  GL_VERTEX_CONSISTENT_HINT_PGI     = $1A22B;
  GL_MATERIAL_SIDE_HINT_PGI         = $1A22C;
  GL_MAX_VERTEX_HINT_PGI            = $1A22D;
  GL_COLOR3_BIT_PGI                 = $00010000;
  GL_COLOR4_BIT_PGI                 = $00020000;
  GL_EDGEFLAG_BIT_PGI               = $00040000;
  GL_INDEX_BIT_PGI                  = $00080000;
  GL_MAT_AMBIENT_BIT_PGI            = $00100000;
  GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
  GL_MAT_DIFFUSE_BIT_PGI            = $00400000;
  GL_MAT_EMISSION_BIT_PGI           = $00800000;
  GL_MAT_COLOR_INDEXES_BIT_PGI      = $01000000;
  GL_MAT_SHININESS_BIT_PGI          = $02000000;
  GL_MAT_SPECULAR_BIT_PGI           = $04000000;
  GL_NORMAL_BIT_PGI                 = $08000000;
  GL_TEXCOORD1_BIT_PGI              = $10000000;
  GL_TEXCOORD2_BIT_PGI              = $20000000;
  GL_TEXCOORD3_BIT_PGI              = $40000000;
  GL_TEXCOORD4_BIT_PGI              = $80000000;
  GL_VERTEX23_BIT_PGI               = $00000004;
  GL_VERTEX4_BIT_PGI                = $00000008;

(*** GL_PGI_misc_hints ***)
  GL_PREFER_DOUBLEBUFFER_HINT_PGI   = $1A1F8;
  GL_CONSERVE_MEMORY_HINT_PGI       = $1A1FD;
  GL_RECLAIM_MEMORY_HINT_PGI        = $1A1FE;
  GL_NATIVE_GRAPHICS_HANDLE_PGI     = $1A202;
  GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
  GL_NATIVE_GRAPHICS_END_HINT_PGI   = $1A204;
  GL_ALWAYS_FAST_HINT_PGI           = $1A20C;
  GL_ALWAYS_SOFT_HINT_PGI           = $1A20D;
  GL_ALLOW_DRAW_OBJ_HINT_PGI        = $1A20E;
  GL_ALLOW_DRAW_WIN_HINT_PGI        = $1A20F;
  GL_ALLOW_DRAW_FRG_HINT_PGI        = $1A210;
  GL_ALLOW_DRAW_MEM_HINT_PGI        = $1A211;
  GL_STRICT_DEPTHFUNC_HINT_PGI      = $1A216;
  GL_STRICT_LIGHTING_HINT_PGI       = $1A217;
  GL_STRICT_SCISSOR_HINT_PGI        = $1A218;
  GL_FULL_STIPPLE_HINT_PGI          = $1A219;
  GL_CLIP_NEAR_HINT_PGI             = $1A220;
  GL_CLIP_FAR_HINT_PGI              = $1A221;
  GL_WIDE_LINE_HINT_PGI             = $1A222;
  GL_BACK_NORMALS_HINT_PGI          = $1A223;

(*** GL_EXT_paletted_texture ***)
  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;
  GL_TEXTURE_INDEX_SIZE_EXT         = $80ED;

(*** GL_EXT_clip_volume_hint ***)
  GL_CLIP_VOLUME_CLIPPING_HINT_EXT  = $80F0;

(*** GL_SGIX_list_priority ***)
  GL_LIST_PRIORITY_SGIX             = $8182;

(*** GL_SGIX_ir_instrument1 ***)
  GL_IR_INSTRUMENT1_SGIX            = $817F;

(*** GL_SGIX_calligraphic_fragment ***)
  GL_CALLIGRAPHIC_FRAGMENT_SGIX     = $8183;

(*** GL_SGIX_texture_lod_bias ***)
  GL_TEXTURE_LOD_BIAS_S_SGIX        = $818E;
  GL_TEXTURE_LOD_BIAS_T_SGIX        = $818F;
  GL_TEXTURE_LOD_BIAS_R_SGIX        = $8190;

(*** GL_SGIX_shadow_ambient ***)
  GL_SHADOW_AMBIENT_SGIX            = $80BF;

(*** GL_EXT_index_texture ***)

(*** GL_EXT_index_material ***)
  GL_INDEX_MATERIAL_EXT             = $81B8;
  GL_INDEX_MATERIAL_PARAMETER_EXT   = $81B9;
  GL_INDEX_MATERIAL_FACE_EXT        = $81BA;

(*** GL_EXT_index_func ***)
  GL_INDEX_TEST_EXT                 = $81B5;
  GL_INDEX_TEST_FUNC_EXT            = $81B6;
  GL_INDEX_TEST_REF_EXT             = $81B7;

(*** GL_EXT_index_array_formats ***)
  GL_IUI_V2F_EXT                    = $81AD;
  GL_IUI_V3F_EXT                    = $81AE;
  GL_IUI_N3F_V2F_EXT                = $81AF;
  GL_IUI_N3F_V3F_EXT                = $81B0;
  GL_T2F_IUI_V2F_EXT                = $81B1;
  GL_T2F_IUI_V3F_EXT                = $81B2;
  GL_T2F_IUI_N3F_V2F_EXT            = $81B3;
  GL_T2F_IUI_N3F_V3F_EXT            = $81B4;

(*** GL_EXT_compiled_vertex_array ***)
  GL_ARRAY_ELEMENT_LOCK_FIRST_EXT   = $81A8;
  GL_ARRAY_ELEMENT_LOCK_COUNT_EXT   = $81A9;

(*** GL_EXT_cull_vertex ***)
  GL_CULL_VERTEX_EXT                = $81AA;
  GL_CULL_VERTEX_EYE_POSITION_EXT   = $81AB;
  GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;

(*** GL_SGIX_ycrcb ***)
  GL_YCRCB_422_SGIX                 = $81BB;
  GL_YCRCB_444_SGIX                 = $81BC;

(*** GL_SGIX_fragment_lighting ***)
  GL_FRAGMENT_LIGHTING_SGIX         = $8400;
  GL_FRAGMENT_COLOR_MATERIAL_SGIX   = $8401;
  GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
  GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
  GL_MAX_FRAGMENT_LIGHTS_SGIX       = $8404;
  GL_MAX_ACTIVE_LIGHTS_SGIX         = $8405;
  GL_CURRENT_RASTER_NORMAL_SGIX     = $8406;
  GL_LIGHT_ENV_MODE_SGIX            = $8407;
  GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
  GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
  GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
  GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
  GL_FRAGMENT_LIGHT0_SGIX           = $840C;
  GL_FRAGMENT_LIGHT1_SGIX           = $840D;
  GL_FRAGMENT_LIGHT2_SGIX           = $840E;
  GL_FRAGMENT_LIGHT3_SGIX           = $840F;
  GL_FRAGMENT_LIGHT4_SGIX           = $8410;
  GL_FRAGMENT_LIGHT5_SGIX           = $8411;
  GL_FRAGMENT_LIGHT6_SGIX           = $8412;
  GL_FRAGMENT_LIGHT7_SGIX           = $8413;

(*** GL_IBM_rasterpos_clip ***)
  GL_RASTER_POSITION_UNCLIPPED_IBM  = $19262;

(*** GL_HP_texture_lighting ***)
  GL_TEXTURE_LIGHTING_MODE_HP       = $8167;
  GL_TEXTURE_POST_SPECULAR_HP       = $8168;
  GL_TEXTURE_PRE_SPECULAR_HP        = $8169;

(*** GL_EXT_draw_range_elements ***)
  GL_MAX_ELEMENTS_VERTICES_EXT      = $80E8;
  GL_MAX_ELEMENTS_INDICES_EXT       = $80E9;

(*** GL_WIN_phong_shading ***)
  GL_PHONG_WIN                      = $80EA;
  GL_PHONG_HINT_WIN                 = $80EB;

(*** GL_WIN_specular_fog ***)
  GL_FOG_SPECULAR_TEXTURE_WIN       = $80EC;

(*** GL_EXT_light_texture ***)
  GL_FRAGMENT_MATERIAL_EXT          = $8349;
  GL_FRAGMENT_NORMAL_EXT            = $834A;
  GL_FRAGMENT_COLOR_EXT             = $834C;
  GL_ATTENUATION_EXT                = $834D;
  GL_SHADOW_ATTENUATION_EXT         = $834E;
  GL_TEXTURE_APPLICATION_MODE_EXT   = $834F;
  GL_TEXTURE_LIGHT_EXT              = $8350;
  GL_TEXTURE_MATERIAL_FACE_EXT      = $8351;
  GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;

(*** GL_SGIX_blend_alpha_minmax ***)
  GL_ALPHA_MIN_SGIX                 = $8320;
  GL_ALPHA_MAX_SGIX                 = $8321;

(*** GL_SGIX_impact_pixel_texture ***)
  GL_PIXEL_TEX_GEN_Q_CEILING_SGIX   = $8184;
  GL_PIXEL_TEX_GEN_Q_ROUND_SGIX     = $8185;
  GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX     = $8186;
  GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
  GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
  GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX    = $8189;
  GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX    = $818A;

(*** GL_EXT_bgra ***)
  GL_BGR_EXT                        = $80E0;
  GL_BGRA_EXT                       = $80E1;

(*** GL_SGIX_async ***)
  GL_ASYNC_MARKER_SGIX              = $8329;

(*** GL_SGIX_async_pixel ***)
  GL_ASYNC_TEX_IMAGE_SGIX           = $835C;
  GL_ASYNC_DRAW_PIXELS_SGIX         = $835D;
  GL_ASYNC_READ_PIXELS_SGIX         = $835E;
  GL_MAX_ASYNC_TEX_IMAGE_SGIX       = $835F;
  GL_MAX_ASYNC_DRAW_PIXELS_SGIX     = $8360;
  GL_MAX_ASYNC_READ_PIXELS_SGIX     = $8361;

(*** GL_SGIX_async_histogram ***)
  GL_ASYNC_HISTOGRAM_SGIX           = $832C;
  GL_MAX_ASYNC_HISTOGRAM_SGIX       = $832D;

(*** GL_INTEL_texture_scissor ***)

(*** GL_INTEL_parallel_arrays ***)
  GL_PARALLEL_ARRAYS_INTEL          = $83F4;
  GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
  GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
  GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
  GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;

(*** GL_HP_occlusion_test ***)
  GL_OCCLUSION_TEST_HP              = $8165;
  GL_OCCLUSION_TEST_RESULT_HP       = $8166;

(*** GL_EXT_pixel_transform ***)
  GL_PIXEL_TRANSFORM_2D_EXT         = $8330;
  GL_PIXEL_MAG_FILTER_EXT           = $8331;
  GL_PIXEL_MIN_FILTER_EXT           = $8332;
  GL_PIXEL_CUBIC_WEIGHT_EXT         = $8333;
  GL_CUBIC_EXT                      = $8334;
  GL_AVERAGE_EXT                    = $8335;
  GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
  GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
  GL_PIXEL_TRANSFORM_2D_MATRIX_EXT  = $8338;

(*** GL_EXT_pixel_transform_color_table ***)

(*** GL_EXT_shared_texture_palette ***)
  GL_SHARED_TEXTURE_PALETTE_EXT     = $81FB;

(*** GL_EXT_separate_specular_color ***)
  GL_LIGHT_MODEL_COLOR_CONTROL_EXT  = $81F8;
  GL_SINGLE_COLOR_EXT               = $81F9;
  GL_SEPARATE_SPECULAR_COLOR_EXT    = $81FA;

(*** GL_EXT_secondary_color ***)
  GL_COLOR_SUM_EXT                  = $8458;
  GL_CURRENT_SECONDARY_COLOR_EXT    = $8459;
  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
  GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
  GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
  GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
  GL_SECONDARY_COLOR_ARRAY_EXT      = $845E;

(*** GL_EXT_texture_perturb_normal ***)
  GL_PERTURB_EXT                    = $85AE;
  GL_TEXTURE_NORMAL_EXT             = $85AF;

(*** GL_EXT_multi_draw_arrays ***)

(*** GL_EXT_fog_coord ***)
  GL_FOG_COORDINATE_SOURCE_EXT      = $8450;
  GL_FOG_COORDINATE_EXT             = $8451;
  GL_FRAGMENT_DEPTH_EXT             = $8452;
  GL_CURRENT_FOG_COORDINATE_EXT     = $8453;
  GL_FOG_COORDINATE_ARRAY_TYPE_EXT  = $8454;
  GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
  GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
  GL_FOG_COORDINATE_ARRAY_EXT       = $8457;

(*** GL_REND_screen_coordinates ***)
  GL_SCREEN_COORDINATES_REND        = $8490;
  GL_INVERTED_SCREEN_W_REND         = $8491;

(*** GL_EXT_coordinate_frame ***)
  GL_TANGENT_ARRAY_EXT              = $8439;
  GL_BINORMAL_ARRAY_EXT             = $843A;
  GL_CURRENT_TANGENT_EXT            = $843B;
  GL_CURRENT_BINORMAL_EXT           = $843C;
  GL_TANGENT_ARRAY_TYPE_EXT         = $843E;
  GL_TANGENT_ARRAY_STRIDE_EXT       = $843F;
  GL_BINORMAL_ARRAY_TYPE_EXT        = $8440;
  GL_BINORMAL_ARRAY_STRIDE_EXT      = $8441;
  GL_TANGENT_ARRAY_POINTER_EXT      = $8442;
  GL_BINORMAL_ARRAY_POINTER_EXT     = $8443;
  GL_MAP1_TANGENT_EXT               = $8444;
  GL_MAP2_TANGENT_EXT               = $8445;
  GL_MAP1_BINORMAL_EXT              = $8446;
  GL_MAP2_BINORMAL_EXT              = $8447;

(*** GL_EXT_texture_env_combine ***)
  GL_COMBINE_EXT                    = $8570;
  GL_COMBINE_RGB_EXT                = $8571;
  GL_COMBINE_ALPHA_EXT              = $8572;
  GL_RGB_SCALE_EXT                  = $8573;
  GL_ADD_SIGNED_EXT                 = $8574;
  GL_INTERPOLATE_EXT                = $8575;
  GL_CONSTANT_EXT                   = $8576;
  GL_PRIMARY_COLOR_EXT              = $8577;
  GL_PREVIOUS_EXT                   = $8578;
  GL_SOURCE0_RGB_EXT                = $8580;
  GL_SOURCE1_RGB_EXT                = $8581;
  GL_SOURCE2_RGB_EXT                = $8582;
  GL_SOURCE0_ALPHA_EXT              = $8588;
  GL_SOURCE1_ALPHA_EXT              = $8589;
  GL_SOURCE2_ALPHA_EXT              = $858A;
  GL_OPERAND0_RGB_EXT               = $8590;
  GL_OPERAND1_RGB_EXT               = $8591;
  GL_OPERAND2_RGB_EXT               = $8592;
  GL_OPERAND0_ALPHA_EXT             = $8598;
  GL_OPERAND1_ALPHA_EXT             = $8599;
  GL_OPERAND2_ALPHA_EXT             = $859A;

(*** GL_APPLE_specular_vector ***)
  GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;

(*** GL_APPLE_transform_hint ***)
  GL_TRANSFORM_HINT_APPLE           = $85B1;

(*** GL_SGIX_fog_scale ***)
  GL_FOG_SCALE_SGIX                 = $81FC;
  GL_FOG_SCALE_VALUE_SGIX           = $81FD;

(*** GL_SUNX_constant_data ***)
  GL_UNPACK_CONSTANT_DATA_SUNX      = $81D5;
  GL_TEXTURE_CONSTANT_DATA_SUNX     = $81D6;

(*** GL_SUN_global_alpha ***)
  GL_GLOBAL_ALPHA_SUN               = $81D9;
  GL_GLOBAL_ALPHA_FACTOR_SUN        = $81DA;

(*** GL_SUN_triangle_list ***)
  GL_RESTART_SUN                    = $0001;
  GL_REPLACE_MIDDLE_SUN             = $0002;
  GL_REPLACE_OLDEST_SUN             = $0003;
  GL_TRIANGLE_LIST_SUN              = $81D7;
  GL_REPLACEMENT_CODE_SUN           = $81D8;
  GL_REPLACEMENT_CODE_ARRAY_SUN     = $85C0;
  GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
  GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
  GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
  GL_R1UI_V3F_SUN                   = $85C4;
  GL_R1UI_C4UB_V3F_SUN              = $85C5;
  GL_R1UI_C3F_V3F_SUN               = $85C6;
  GL_R1UI_N3F_V3F_SUN               = $85C7;
  GL_R1UI_C4F_N3F_V3F_SUN           = $85C8;
  GL_R1UI_T2F_V3F_SUN               = $85C9;
  GL_R1UI_T2F_N3F_V3F_SUN           = $85CA;
  GL_R1UI_T2F_C4F_N3F_V3F_SUN       = $85CB;

(*** GL_SUN_vertex ***)

(*** GL_EXT_blend_func_separate ***)
  GL_BLEND_DST_RGB_EXT              = $80C8;
  GL_BLEND_SRC_RGB_EXT              = $80C9;
  GL_BLEND_DST_ALPHA_EXT            = $80CA;
  GL_BLEND_SRC_ALPHA_EXT            = $80CB;

(*** GL_INGR_color_clamp ***)
  GL_RED_MIN_CLAMP_INGR             = $8560;
  GL_GREEN_MIN_CLAMP_INGR           = $8561;
  GL_BLUE_MIN_CLAMP_INGR            = $8562;
  GL_ALPHA_MIN_CLAMP_INGR           = $8563;
  GL_RED_MAX_CLAMP_INGR             = $8564;
  GL_GREEN_MAX_CLAMP_INGR           = $8565;
  GL_BLUE_MAX_CLAMP_INGR            = $8566;
  GL_ALPHA_MAX_CLAMP_INGR           = $8567;

(*** GL_INGR_interlace_read ***)
  GL_INTERLACE_READ_INGR            = $8568;

(*** GL_EXT_stencil_wrap ***)
  GL_INCR_WRAP_EXT                  = $8507;
  GL_DECR_WRAP_EXT                  = $8508;

(*** GL_EXT_422_pixels ***)
  GL_422_EXT                        = $80CC;
  GL_422_REV_EXT                    = $80CD;
  GL_422_AVERAGE_EXT                = $80CE;
  GL_422_REV_AVERAGE_EXT            = $80CF;

(*** GL_NV_texgen_reflection ***)
  GL_NORMAL_MAP_NV                  = $8511;
  GL_REFLECTION_MAP_NV              = $8512;

(*** GL_EXT_texture_cube_map ***)
  GL_NORMAL_MAP_EXT                 = $8511;
  GL_REFLECTION_MAP_EXT             = $8512;
  GL_TEXTURE_CUBE_MAP_EXT           = $8513;
  GL_TEXTURE_BINDING_CUBE_MAP_EXT   = $8514;
  GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
  GL_PROXY_TEXTURE_CUBE_MAP_EXT     = $851B;
  GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT  = $851C;

(*** GL_SUN_convolution_border_modes ***)
  GL_WRAP_BORDER_SUN                = $81D4;

(*** GL_EXT_texture_env_add ***)

(*** GL_EXT_texture_lod_bias ***)
  GL_MAX_TEXTURE_LOD_BIAS_EXT       = $84FD;
  GL_TEXTURE_FILTER_CONTROL_EXT     = $8500;
  GL_TEXTURE_LOD_BIAS_EXT           = $8501;

(*** GL_EXT_texture_filter_anisotropic ***)
  GL_TEXTURE_MAX_ANISOTROPY_EXT     = $84FE;
  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;

(*** GL_EXT_vertex_weighting ***)
  GL_MODELVIEW0_STACK_DEPTH_EXT     = GL_MODELVIEW_STACK_DEPTH;
  GL_MODELVIEW1_STACK_DEPTH_EXT     = $8502;
  GL_MODELVIEW0_MATRIX_EXT          = GL_MODELVIEW_MATRIX;
  GL_MODELVIEW1_MATRIX_EXT          = $8506;
  GL_VERTEX_WEIGHTING_EXT           = $8509;
  GL_MODELVIEW0_EXT                 = GL_MODELVIEW;
  GL_MODELVIEW1_EXT                 = $850A;
  GL_CURRENT_VERTEX_WEIGHT_EXT      = $850B;
  GL_VERTEX_WEIGHT_ARRAY_EXT        = $850C;
  GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT   = $850D;
  GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT   = $850E;
  GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
  GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;

(*** GL_NV_light_max_exponent ***)
  GL_MAX_SHININESS_NV               = $8504;
  GL_MAX_SPOT_EXPONENT_NV           = $8505;

(*** GL_NV_vertex_array_range ***)
  GL_VERTEX_ARRAY_RANGE_NV          = $851D;
  GL_VERTEX_ARRAY_RANGE_LENGTH_NV   = $851E;
  GL_VERTEX_ARRAY_RANGE_VALID_NV    = $851F;
  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
  GL_VERTEX_ARRAY_RANGE_POINTER_NV  = $8521;

(*** GL_NV_register_combiners ***)
  GL_REGISTER_COMBINERS_NV          = $8522;
  GL_VARIABLE_A_NV                  = $8523;
  GL_VARIABLE_B_NV                  = $8524;
  GL_VARIABLE_C_NV                  = $8525;
  GL_VARIABLE_D_NV                  = $8526;
  GL_VARIABLE_E_NV                  = $8527;
  GL_VARIABLE_F_NV                  = $8528;
  GL_VARIABLE_G_NV                  = $8529;
  GL_CONSTANT_COLOR0_NV             = $852A;
  GL_CONSTANT_COLOR1_NV             = $852B;
  GL_PRIMARY_COLOR_NV               = $852C;
  GL_SECONDARY_COLOR_NV             = $852D;
  GL_SPARE0_NV                      = $852E;
  GL_SPARE1_NV                      = $852F;
  GL_DISCARD_NV                     = $8530;
  GL_E_TIMES_F_NV                   = $8531;
  GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
  GL_UNSIGNED_IDENTITY_NV           = $8536;
  GL_UNSIGNED_INVERT_NV             = $8537;
  GL_EXPAND_NORMAL_NV               = $8538;
  GL_EXPAND_NEGATE_NV               = $8539;
  GL_HALF_BIAS_NORMAL_NV            = $853A;
  GL_HALF_BIAS_NEGATE_NV            = $853B;
  GL_SIGNED_IDENTITY_NV             = $853C;
  GL_SIGNED_NEGATE_NV               = $853D;
  GL_SCALE_BY_TWO_NV                = $853E;
  GL_SCALE_BY_FOUR_NV               = $853F;
  GL_SCALE_BY_ONE_HALF_NV           = $8540;
  GL_BIAS_BY_NEGATIVE_ONE_HALF_NV   = $8541;
  GL_COMBINER_INPUT_NV              = $8542;
  GL_COMBINER_MAPPING_NV            = $8543;
  GL_COMBINER_COMPONENT_USAGE_NV    = $8544;
  GL_COMBINER_AB_DOT_PRODUCT_NV     = $8545;
  GL_COMBINER_CD_DOT_PRODUCT_NV     = $8546;
  GL_COMBINER_MUX_SUM_NV            = $8547;
  GL_COMBINER_SCALE_NV              = $8548;
  GL_COMBINER_BIAS_NV               = $8549;
  GL_COMBINER_AB_OUTPUT_NV          = $854A;
  GL_COMBINER_CD_OUTPUT_NV          = $854B;
  GL_COMBINER_SUM_OUTPUT_NV         = $854C;
  GL_MAX_GENERAL_COMBINERS_NV       = $854D;
  GL_NUM_GENERAL_COMBINERS_NV       = $854E;
  GL_COLOR_SUM_CLAMP_NV             = $854F;
  GL_COMBINER0_NV                   = $8550;
  GL_COMBINER1_NV                   = $8551;
  GL_COMBINER2_NV                   = $8552;
  GL_COMBINER3_NV                   = $8553;
  GL_COMBINER4_NV                   = $8554;
  GL_COMBINER5_NV                   = $8555;
  GL_COMBINER6_NV                   = $8556;
  GL_COMBINER7_NV                   = $8557;

(*** GL_NV_fog_distance ***)
  GL_FOG_DISTANCE_MODE_NV           = $855A;
  GL_EYE_RADIAL_NV                  = $855B;
  GL_EYE_PLANE_ABSOLUTE_NV          = $855C;

(*** GL_NV_texgen_emboss ***)
  GL_EMBOSS_LIGHT_NV                = $855D;
  GL_EMBOSS_CONSTANT_NV             = $855E;
  GL_EMBOSS_MAP_NV                  = $855F;

(*** GL_NV_blend_square ***)

(*** GL_NV_texture_env_combine4 ***)
  GL_COMBINE4_NV                    = $8503;
  GL_SOURCE3_RGB_NV                 = $8583;
  GL_SOURCE3_ALPHA_NV               = $858B;
  GL_OPERAND3_RGB_NV                = $8593;
  GL_OPERAND3_ALPHA_NV              = $859B;

(*** GL_MESA_resize_buffers ***)

(*** GL_MESA_window_pos ***)

(*** GL_EXT_texture_compression_s3tc ***)
  GL_COMPRESSED_RGB_S3TC_DXT1_EXT   = $83F0;
  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  = $83F1;
  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  = $83F2;
  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  = $83F3;

(*** GL_IBM_cull_vertex ***)
  GL_CULL_VERTEX_IBM                = 103050;

(*** GL_IBM_multimode_draw_arrays ***)

(*** GL_IBM_vertex_array_lists ***)
  GL_VERTEX_ARRAY_LIST_IBM          = 103070;
  GL_NORMAL_ARRAY_LIST_IBM          = 103071;
  GL_COLOR_ARRAY_LIST_IBM           = 103072;
  GL_INDEX_ARRAY_LIST_IBM           = 103073;
  GL_TEXTURE_COORD_ARRAY_LIST_IBM   = 103074;
  GL_EDGE_FLAG_ARRAY_LIST_IBM       = 103075;
  GL_FOG_COORDINATE_ARRAY_LIST_IBM  = 103076;
  GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
  GL_VERTEX_ARRAY_LIST_STRIDE_IBM   = 103080;
  GL_NORMAL_ARRAY_LIST_STRIDE_IBM   = 103081;
  GL_COLOR_ARRAY_LIST_STRIDE_IBM    = 103082;
  GL_INDEX_ARRAY_LIST_STRIDE_IBM    = 103083;
  GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
  GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
  GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
  GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;

(*** GL_SGIX_subsample ***)
  GL_PACK_SUBSAMPLE_RATE_SGIX       = $85A0;
  GL_UNPACK_SUBSAMPLE_RATE_SGIX     = $85A1;
  GL_PIXEL_SUBSAMPLE_4444_SGIX      = $85A2;
  GL_PIXEL_SUBSAMPLE_2424_SGIX      = $85A3;
  GL_PIXEL_SUBSAMPLE_4242_SGIX      = $85A4;

(*** GL_SGIX_ycrcb_subsample ***)

(*** GL_SGIX_ycrcba ***)
  GL_YCRCB_SGIX                     = $8318;
  GL_YCRCBA_SGIX                    = $8319;

(*** GL_SGI_depth_pass_instrument ***)
  GL_DEPTH_PASS_INSTRUMENT_SGIX     = $8310;
  GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
  GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;

(*** GL_3DFX_texture_compression_FXT1 ***)
  GL_COMPRESSED_RGB_FXT1_3DFX       = $86B0;
  GL_COMPRESSED_RGBA_FXT1_3DFX      = $86B1;

(*** GL_3DFX_multisample ***)
  GL_MULTISAMPLE_3DFX               = $86B2;
  GL_SAMPLE_BUFFERS_3DFX            = $86B3;
  GL_SAMPLES_3DFX                   = $86B4;
  GL_MULTISAMPLE_BIT_3DFX           = $20000000;

(*** GL_3DFX_tbuffer ***)

(*** GL_EXT_multisample ***)
  GL_MULTISAMPLE_EXT                = $809D;
  GL_SAMPLE_ALPHA_TO_MASK_EXT       = $809E;
  GL_SAMPLE_ALPHA_TO_ONE_EXT        = $809F;
  GL_SAMPLE_MASK_EXT                = $80A0;
  GL_1PASS_EXT                      = $80A1;
  GL_2PASS_0_EXT                    = $80A2;
  GL_2PASS_1_EXT                    = $80A3;
  GL_4PASS_0_EXT                    = $80A4;
  GL_4PASS_1_EXT                    = $80A5;
  GL_4PASS_2_EXT                    = $80A6;
  GL_4PASS_3_EXT                    = $80A7;
  GL_SAMPLE_BUFFERS_EXT             = $80A8;
  GL_SAMPLES_EXT                    = $80A9;
  GL_SAMPLE_MASK_VALUE_EXT          = $80AA;
  GL_SAMPLE_MASK_INVERT_EXT         = $80AB;
  GL_SAMPLE_PATTERN_EXT             = $80AC;
  GL_MULTISAMPLE_BIT_EXT            = $20000000;

(*** GL_SGIX_vertex_preclip ***)
  GL_VERTEX_PRECLIP_SGIX            = $83EE;
  GL_VERTEX_PRECLIP_HINT_SGIX       = $83EF;

(*** GL_SGIX_convolution_accuracy ***)
  GL_CONVOLUTION_HINT_SGIX          = $8316;

(*** GL_SGIX_resample ***)
  GL_PACK_RESAMPLE_SGIX             = $842C;
  GL_UNPACK_RESAMPLE_SGIX           = $842D;
  GL_RESAMPLE_REPLICATE_SGIX        = $842E;
  GL_RESAMPLE_ZERO_FILL_SGIX        = $842F;
  GL_RESAMPLE_DECIMATE_SGIX         = $8430;

(*** GL_SGIS_point_line_texgen ***)
  GL_EYE_DISTANCE_TO_POINT_SGIS     = $81F0;
  GL_OBJECT_DISTANCE_TO_POINT_SGIS  = $81F1;
  GL_EYE_DISTANCE_TO_LINE_SGIS      = $81F2;
  GL_OBJECT_DISTANCE_TO_LINE_SGIS   = $81F3;
  GL_EYE_POINT_SGIS                 = $81F4;
  GL_OBJECT_POINT_SGIS              = $81F5;
  GL_EYE_LINE_SGIS                  = $81F6;
  GL_OBJECT_LINE_SGIS               = $81F7;

(*** GL_SGIS_texture_color_mask ***)
  GL_TEXTURE_COLOR_WRITEMASK_SGIS   = $81EF;

(*** GL_EXT_texture_env_dot3 ***)
  GL_DOT3_RGB_EXT                   = $8740;
  GL_DOT3_RGBA_EXT                  = $8741;

(*** GL_ATI_texture_mirror_once ***)
  GL_MIRROR_CLAMP_ATI               = $8742;
  GL_MIRROR_CLAMP_TO_EDGE_ATI       = $8743;

(*** GL_NV_fence ***)
  GL_ALL_COMPLETED_NV               = $84F2;
  GL_FENCE_STATUS_NV                = $84F3;
  GL_FENCE_CONDITION_NV             = $84F4;

(*** GL_IBM_texture_mirrored_repeat ***)
  GL_MIRRORED_REPEAT_IBM            = $8370;

(*** GL_NV_evaluators ***)
  GL_EVAL_2D_NV                     = $86C0;
  GL_EVAL_TRIANGULAR_2D_NV          = $86C1;
  GL_MAP_TESSELLATION_NV            = $86C2;
  GL_MAP_ATTRIB_U_ORDER_NV          = $86C3;
  GL_MAP_ATTRIB_V_ORDER_NV          = $86C4;
  GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
  GL_EVAL_VERTEX_ATTRIB0_NV         = $86C6;
  GL_EVAL_VERTEX_ATTRIB1_NV         = $86C7;
  GL_EVAL_VERTEX_ATTRIB2_NV         = $86C8;
  GL_EVAL_VERTEX_ATTRIB3_NV         = $86C9;
  GL_EVAL_VERTEX_ATTRIB4_NV         = $86CA;
  GL_EVAL_VERTEX_ATTRIB5_NV         = $86CB;
  GL_EVAL_VERTEX_ATTRIB6_NV         = $86CC;
  GL_EVAL_VERTEX_ATTRIB7_NV         = $86CD;
  GL_EVAL_VERTEX_ATTRIB8_NV         = $86CE;
  GL_EVAL_VERTEX_ATTRIB9_NV         = $86CF;
  GL_EVAL_VERTEX_ATTRIB10_NV        = $86D0;
  GL_EVAL_VERTEX_ATTRIB11_NV        = $86D1;
  GL_EVAL_VERTEX_ATTRIB12_NV        = $86D2;
  GL_EVAL_VERTEX_ATTRIB13_NV        = $86D3;
  GL_EVAL_VERTEX_ATTRIB14_NV        = $86D4;
  GL_EVAL_VERTEX_ATTRIB15_NV        = $86D5;
  GL_MAX_MAP_TESSELLATION_NV        = $86D6;
  GL_MAX_RATIONAL_EVAL_ORDER_NV     = $86D7;

(*** GL_NV_packed_depth_stencil ***)
  GL_DEPTH_STENCIL_NV               = $84F9;
  GL_UNSIGNED_INT_24_8_NV           = $84FA;

(*** GL_NV_register_combiners2 ***)
  GL_PER_STAGE_CONSTANTS_NV         = $8535;

(*** GL_NV_texture_compression_vtc ***)

(*** GL_NV_texture_rectangle ***)
  GL_TEXTURE_RECTANGLE_NV           = $84F5;
  GL_TEXTURE_BINDING_RECTANGLE_NV   = $84F6;
  GL_PROXY_TEXTURE_RECTANGLE_NV     = $84F7;
  GL_MAX_RECTANGLE_TEXTURE_SIZE_NV  = $84F8;

(*** GL_NV_texture_shader ***)
  GL_OFFSET_TEXTURE_RECTANGLE_NV    = $864C;
  GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
  GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
  GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
  GL_UNSIGNED_INT_S8_S8_8_8_NV      = $86DA;
  GL_UNSIGNED_INT_8_8_S8_S8_REV_NV  = $86DB;
  GL_DSDT_MAG_INTENSITY_NV          = $86DC;
  GL_SHADER_CONSISTENT_NV           = $86DD;
  GL_TEXTURE_SHADER_NV              = $86DE;
  GL_SHADER_OPERATION_NV            = $86DF;
  GL_CULL_MODES_NV                  = $86E0;
  GL_OFFSET_TEXTURE_MATRIX_NV       = $86E1;
  GL_OFFSET_TEXTURE_SCALE_NV        = $86E2;
  GL_OFFSET_TEXTURE_BIAS_NV         = $86E3;
  GL_OFFSET_TEXTURE_2D_MATRIX_NV    = GL_OFFSET_TEXTURE_MATRIX_NV;
  GL_OFFSET_TEXTURE_2D_SCALE_NV     = GL_OFFSET_TEXTURE_SCALE_NV;
  GL_OFFSET_TEXTURE_2D_BIAS_NV      = GL_OFFSET_TEXTURE_BIAS_NV;
  GL_PREVIOUS_TEXTURE_INPUT_NV      = $86E4;
  GL_CONST_EYE_NV                   = $86E5;
  GL_PASS_THROUGH_NV                = $86E6;
  GL_CULL_FRAGMENT_NV               = $86E7;
  GL_OFFSET_TEXTURE_2D_NV           = $86E8;
  GL_DEPENDENT_AR_TEXTURE_2D_NV     = $86E9;
  GL_DEPENDENT_GB_TEXTURE_2D_NV     = $86EA;
  GL_DOT_PRODUCT_NV                 = $86EC;
  GL_DOT_PRODUCT_DEPTH_REPLACE_NV   = $86ED;
  GL_DOT_PRODUCT_TEXTURE_2D_NV      = $86EE;
  GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
  GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
  GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
  GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
  GL_HILO_NV                        = $86F4;
  GL_DSDT_NV                        = $86F5;
  GL_DSDT_MAG_NV                    = $86F6;
  GL_DSDT_MAG_VIB_NV                = $86F7;
  GL_HILO16_NV                      = $86F8;
  GL_SIGNED_HILO_NV                 = $86F9;
  GL_SIGNED_HILO16_NV               = $86FA;
  GL_SIGNED_RGBA_NV                 = $86FB;
  GL_SIGNED_RGBA8_NV                = $86FC;
  GL_SIGNED_RGB_NV                  = $86FE;
  GL_SIGNED_RGB8_NV                 = $86FF;
  GL_SIGNED_LUMINANCE_NV            = $8701;
  GL_SIGNED_LUMINANCE8_NV           = $8702;
  GL_SIGNED_LUMINANCE_ALPHA_NV      = $8703;
  GL_SIGNED_LUMINANCE8_ALPHA8_NV    = $8704;
  GL_SIGNED_ALPHA_NV                = $8705;
  GL_SIGNED_ALPHA8_NV               = $8706;
  GL_SIGNED_INTENSITY_NV            = $8707;
  GL_SIGNED_INTENSITY8_NV           = $8708;
  GL_DSDT8_NV                       = $8709;
  GL_DSDT8_MAG8_NV                  = $870A;
  GL_DSDT8_MAG8_INTENSITY8_NV       = $870B;
  GL_SIGNED_RGB_UNSIGNED_ALPHA_NV   = $870C;
  GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
  GL_HI_SCALE_NV                    = $870E;
  GL_LO_SCALE_NV                    = $870F;
  GL_DS_SCALE_NV                    = $8710;
  GL_DT_SCALE_NV                    = $8711;
  GL_MAGNITUDE_SCALE_NV             = $8712;
  GL_VIBRANCE_SCALE_NV              = $8713;
  GL_HI_BIAS_NV                     = $8714;
  GL_LO_BIAS_NV                     = $8715;
  GL_DS_BIAS_NV                     = $8716;
  GL_DT_BIAS_NV                     = $8717;
  GL_MAGNITUDE_BIAS_NV              = $8718;
  GL_VIBRANCE_BIAS_NV               = $8719;
  GL_TEXTURE_BORDER_VALUES_NV       = $871A;
  GL_TEXTURE_HI_SIZE_NV             = $871B;
  GL_TEXTURE_LO_SIZE_NV             = $871C;
  GL_TEXTURE_DS_SIZE_NV             = $871D;
  GL_TEXTURE_DT_SIZE_NV             = $871E;
  GL_TEXTURE_MAG_SIZE_NV            = $871F;

(*** GL_NV_texture_shader2 ***)
  GL_DOT_PRODUCT_TEXTURE_3D_NV      = $86EF;

(*** GL_NV_vertex_array_range2 ***)
  GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;

(*** GL_NV_vertex_program ***)
  GL_VERTEX_PROGRAM_NV              = $8620;
  GL_VERTEX_STATE_PROGRAM_NV        = $8621;
  GL_ATTRIB_ARRAY_SIZE_NV           = $8623;
  GL_ATTRIB_ARRAY_STRIDE_NV         = $8624;
  GL_ATTRIB_ARRAY_TYPE_NV           = $8625;
  GL_CURRENT_ATTRIB_NV              = $8626;
  GL_PROGRAM_LENGTH_NV              = $8627;
  GL_PROGRAM_STRING_NV              = $8628;
  GL_MODELVIEW_PROJECTION_NV        = $8629;
  GL_IDENTITY_NV                    = $862A;
  GL_INVERSE_NV                     = $862B;
  GL_TRANSPOSE_NV                   = $862C;
  GL_INVERSE_TRANSPOSE_NV           = $862D;
  GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
  GL_MAX_TRACK_MATRICES_NV          = $862F;
  GL_MATRIX0_NV                     = $8630;
  GL_MATRIX1_NV                     = $8631;
  GL_MATRIX2_NV                     = $8632;
  GL_MATRIX3_NV                     = $8633;
  GL_MATRIX4_NV                     = $8634;
  GL_MATRIX5_NV                     = $8635;
  GL_MATRIX6_NV                     = $8636;
  GL_MATRIX7_NV                     = $8637;
  GL_CURRENT_MATRIX_STACK_DEPTH_NV  = $8640;
  GL_CURRENT_MATRIX_NV              = $8641;
  GL_VERTEX_PROGRAM_POINT_SIZE_NV   = $8642;
  GL_VERTEX_PROGRAM_TWO_SIDE_NV     = $8643;
  GL_PROGRAM_PARAMETER_NV           = $8644;
  GL_ATTRIB_ARRAY_POINTER_NV        = $8645;
  GL_PROGRAM_TARGET_NV              = $8646;
  GL_PROGRAM_RESIDENT_NV            = $8647;
  GL_TRACK_MATRIX_NV                = $8648;
  GL_TRACK_MATRIX_TRANSFORM_NV      = $8649;
  GL_VERTEX_PROGRAM_BINDING_NV      = $864A;
  GL_PROGRAM_ERROR_POSITION_NV      = $864B;
  GL_VERTEX_ATTRIB_ARRAY0_NV        = $8650;
  GL_VERTEX_ATTRIB_ARRAY1_NV        = $8651;
  GL_VERTEX_ATTRIB_ARRAY2_NV        = $8652;
  GL_VERTEX_ATTRIB_ARRAY3_NV        = $8653;
  GL_VERTEX_ATTRIB_ARRAY4_NV        = $8654;
  GL_VERTEX_ATTRIB_ARRAY5_NV        = $8655;
  GL_VERTEX_ATTRIB_ARRAY6_NV        = $8656;
  GL_VERTEX_ATTRIB_ARRAY7_NV        = $8657;
  GL_VERTEX_ATTRIB_ARRAY8_NV        = $8658;
  GL_VERTEX_ATTRIB_ARRAY9_NV        = $8659;
  GL_VERTEX_ATTRIB_ARRAY10_NV       = $865A;
  GL_VERTEX_ATTRIB_ARRAY11_NV       = $865B;
  GL_VERTEX_ATTRIB_ARRAY12_NV       = $865C;
  GL_VERTEX_ATTRIB_ARRAY13_NV       = $865D;
  GL_VERTEX_ATTRIB_ARRAY14_NV       = $865E;
  GL_VERTEX_ATTRIB_ARRAY15_NV       = $865F;
  GL_MAP1_VERTEX_ATTRIB0_4_NV       = $8660;
  GL_MAP1_VERTEX_ATTRIB1_4_NV       = $8661;
  GL_MAP1_VERTEX_ATTRIB2_4_NV       = $8662;
  GL_MAP1_VERTEX_ATTRIB3_4_NV       = $8663;
  GL_MAP1_VERTEX_ATTRIB4_4_NV       = $8664;
  GL_MAP1_VERTEX_ATTRIB5_4_NV       = $8665;
  GL_MAP1_VERTEX_ATTRIB6_4_NV       = $8666;
  GL_MAP1_VERTEX_ATTRIB7_4_NV       = $8667;
  GL_MAP1_VERTEX_ATTRIB8_4_NV       = $8668;
  GL_MAP1_VERTEX_ATTRIB9_4_NV       = $8669;
  GL_MAP1_VERTEX_ATTRIB10_4_NV      = $866A;
  GL_MAP1_VERTEX_ATTRIB11_4_NV      = $866B;
  GL_MAP1_VERTEX_ATTRIB12_4_NV      = $866C;
  GL_MAP1_VERTEX_ATTRIB13_4_NV      = $866D;
  GL_MAP1_VERTEX_ATTRIB14_4_NV      = $866E;
  GL_MAP1_VERTEX_ATTRIB15_4_NV      = $866F;
  GL_MAP2_VERTEX_ATTRIB0_4_NV       = $8670;
  GL_MAP2_VERTEX_ATTRIB1_4_NV       = $8671;
  GL_MAP2_VERTEX_ATTRIB2_4_NV       = $8672;
  GL_MAP2_VERTEX_ATTRIB3_4_NV       = $8673;
  GL_MAP2_VERTEX_ATTRIB4_4_NV       = $8674;
  GL_MAP2_VERTEX_ATTRIB5_4_NV       = $8675;
  GL_MAP2_VERTEX_ATTRIB6_4_NV       = $8676;
  GL_MAP2_VERTEX_ATTRIB7_4_NV       = $8677;
  GL_MAP2_VERTEX_ATTRIB8_4_NV       = $8678;
  GL_MAP2_VERTEX_ATTRIB9_4_NV       = $8679;
  GL_MAP2_VERTEX_ATTRIB10_4_NV      = $867A;
  GL_MAP2_VERTEX_ATTRIB11_4_NV      = $867B;
  GL_MAP2_VERTEX_ATTRIB12_4_NV      = $867C;
  GL_MAP2_VERTEX_ATTRIB13_4_NV      = $867D;
  GL_MAP2_VERTEX_ATTRIB14_4_NV      = $867E;
  GL_MAP2_VERTEX_ATTRIB15_4_NV      = $867F;

(*** GL_SGIX_texture_coordinate_clamp ***)
  GL_TEXTURE_MAX_CLAMP_S_SGIX       = $8369;
  GL_TEXTURE_MAX_CLAMP_T_SGIX       = $836A;
  GL_TEXTURE_MAX_CLAMP_R_SGIX       = $836B;

(*** GL_SGIX_scalebias_hint ***)
  GL_SCALEBIAS_HINT_SGIX            = $8322;

(*** GL_OML_interlace ***)
  GL_INTERLACE_OML                  = $8980;
  GL_INTERLACE_READ_OML             = $8981;

(*** GL_OML_subsample ***)
  GL_FORMAT_SUBSAMPLE_24_24_OML     = $8982;
  GL_FORMAT_SUBSAMPLE_244_244_OML   = $8983;

(*** GL_OML_resample ***)
  GL_PACK_RESAMPLE_OML              = $8984;
  GL_UNPACK_RESAMPLE_OML            = $8985;
  GL_RESAMPLE_REPLICATE_OML         = $8986;
  GL_RESAMPLE_ZERO_FILL_OML         = $8987;
  GL_RESAMPLE_AVERAGE_OML           = $8988;
  GL_RESAMPLE_DECIMATE_OML          = $8989;

(*** GL_NV_copy_depth_to_color ***)
  GL_DEPTH_STENCIL_TO_RGBA_NV       = $886E;
  GL_DEPTH_STENCIL_TO_BGRA_NV       = $886F;

(*** GL_ATI_envmap_bumpmap ***)
  GL_BUMP_ROT_MATRIX_ATI            = $8775;
  GL_BUMP_ROT_MATRIX_SIZE_ATI       = $8776;
  GL_BUMP_NUM_TEX_UNITS_ATI         = $8777;
  GL_BUMP_TEX_UNITS_ATI             = $8778;
  GL_DUDV_ATI                       = $8779;
  GL_DU8DV8_ATI                     = $877A;
  GL_BUMP_ENVMAP_ATI                = $877B;
  GL_BUMP_TARGET_ATI                = $877C;

(*** GL_ATI_fragment_shader ***)
  GL_FRAGMENT_SHADER_ATI            = $8920;
  GL_REG_0_ATI                      = $8921;
  GL_REG_1_ATI                      = $8922;
  GL_REG_2_ATI                      = $8923;
  GL_REG_3_ATI                      = $8924;
  GL_REG_4_ATI                      = $8925;
  GL_REG_5_ATI                      = $8926;
  GL_REG_6_ATI                      = $8927;
  GL_REG_7_ATI                      = $8928;
  GL_REG_8_ATI                      = $8929;
  GL_REG_9_ATI                      = $892A;
  GL_REG_10_ATI                     = $892B;
  GL_REG_11_ATI                     = $892C;
  GL_REG_12_ATI                     = $892D;
  GL_REG_13_ATI                     = $892E;
  GL_REG_14_ATI                     = $892F;
  GL_REG_15_ATI                     = $8930;
  GL_REG_16_ATI                     = $8931;
  GL_REG_17_ATI                     = $8932;
  GL_REG_18_ATI                     = $8933;
  GL_REG_19_ATI                     = $8934;
  GL_REG_20_ATI                     = $8935;
  GL_REG_21_ATI                     = $8936;
  GL_REG_22_ATI                     = $8937;
  GL_REG_23_ATI                     = $8938;
  GL_REG_24_ATI                     = $8939;
  GL_REG_25_ATI                     = $893A;
  GL_REG_26_ATI                     = $893B;
  GL_REG_27_ATI                     = $893C;
  GL_REG_28_ATI                     = $893D;
  GL_REG_29_ATI                     = $893E;
  GL_REG_30_ATI                     = $893F;
  GL_REG_31_ATI                     = $8940;
  GL_CON_0_ATI                      = $8941;
  GL_CON_1_ATI                      = $8942;
  GL_CON_2_ATI                      = $8943;
  GL_CON_3_ATI                      = $8944;
  GL_CON_4_ATI                      = $8945;
  GL_CON_5_ATI                      = $8946;
  GL_CON_6_ATI                      = $8947;
  GL_CON_7_ATI                      = $8948;
  GL_CON_8_ATI                      = $8949;
  GL_CON_9_ATI                      = $894A;
  GL_CON_10_ATI                     = $894B;
  GL_CON_11_ATI                     = $894C;
  GL_CON_12_ATI                     = $894D;
  GL_CON_13_ATI                     = $894E;
  GL_CON_14_ATI                     = $894F;
  GL_CON_15_ATI                     = $8950;
  GL_CON_16_ATI                     = $8951;
  GL_CON_17_ATI                     = $8952;
  GL_CON_18_ATI                     = $8953;
  GL_CON_19_ATI                     = $8954;
  GL_CON_20_ATI                     = $8955;
  GL_CON_21_ATI                     = $8956;
  GL_CON_22_ATI                     = $8957;
  GL_CON_23_ATI                     = $8958;
  GL_CON_24_ATI                     = $8959;
  GL_CON_25_ATI                     = $895A;
  GL_CON_26_ATI                     = $895B;
  GL_CON_27_ATI                     = $895C;
  GL_CON_28_ATI                     = $895D;
  GL_CON_29_ATI                     = $895E;
  GL_CON_30_ATI                     = $895F;
  GL_CON_31_ATI                     = $8960;
  GL_MOV_ATI                        = $8961;
  GL_ADD_ATI                        = $8963;
  GL_MUL_ATI                        = $8964;
  GL_SUB_ATI                        = $8965;
  GL_DOT3_ATI                       = $8966;
  GL_DOT4_ATI                       = $8967;
  GL_MAD_ATI                        = $8968;
  GL_LERP_ATI                       = $8969;
  GL_CND_ATI                        = $896A;
  GL_CND0_ATI                       = $896B;
  GL_DOT2_ADD_ATI                   = $896C;
  GL_SECONDARY_INTERPOLATOR_ATI     = $896D;
  GL_NUM_FRAGMENT_REGISTERS_ATI     = $896E;
  GL_NUM_FRAGMENT_CONSTANTS_ATI     = $896F;
  GL_NUM_PASSES_ATI                 = $8970;
  GL_NUM_INSTRUCTIONS_PER_PASS_ATI  = $8971;
  GL_NUM_INSTRUCTIONS_TOTAL_ATI     = $8972;
  GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
  GL_NUM_LOOPBACK_COMPONENTS_ATI    = $8974;
  GL_COLOR_ALPHA_PAIRING_ATI        = $8975;
  GL_SWIZZLE_STR_ATI                = $8976;
  GL_SWIZZLE_STQ_ATI                = $8977;
  GL_SWIZZLE_STR_DR_ATI             = $8978;
  GL_SWIZZLE_STQ_DQ_ATI             = $8979;
  GL_SWIZZLE_STRQ_ATI               = $897A;
  GL_SWIZZLE_STRQ_DQ_ATI            = $897B;
  GL_RED_BIT_ATI                    = $00000001;
  GL_GREEN_BIT_ATI                  = $00000002;
  GL_BLUE_BIT_ATI                   = $00000004;
  GL_2X_BIT_ATI                     = $00000001;
  GL_4X_BIT_ATI                     = $00000002;
  GL_8X_BIT_ATI                     = $00000004;
  GL_HALF_BIT_ATI                   = $00000008;
  GL_QUARTER_BIT_ATI                = $00000010;
  GL_EIGHTH_BIT_ATI                 = $00000020;
  GL_SATURATE_BIT_ATI               = $00000040;
  GL_COMP_BIT_ATI                   = $00000002;
  GL_NEGATE_BIT_ATI                 = $00000004;
  GL_BIAS_BIT_ATI                   = $00000008;

(*** GL_ATI_pn_triangles ***)
  GL_PN_TRIANGLES_ATI               = $87F0;
  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
  GL_PN_TRIANGLES_POINT_MODE_ATI    = $87F2;
  GL_PN_TRIANGLES_NORMAL_MODE_ATI   = $87F3;
  GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
  GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
  GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
  GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
  GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;

(*** GL_ATI_vertex_array_object ***)
  GL_STATIC_ATI                     = $8760;
  GL_DYNAMIC_ATI                    = $8761;
  GL_PRESERVE_ATI                   = $8762;
  GL_DISCARD_ATI                    = $8763;
  GL_OBJECT_BUFFER_SIZE_ATI         = $8764;
  GL_OBJECT_BUFFER_USAGE_ATI        = $8765;
  GL_ARRAY_OBJECT_BUFFER_ATI        = $8766;
  GL_ARRAY_OBJECT_OFFSET_ATI        = $8767;

(*** GL_EXT_vertex_shader ***)
  GL_VERTEX_SHADER_EXT              = $8780;
  GL_VERTEX_SHADER_BINDING_EXT      = $8781;
  GL_OP_INDEX_EXT                   = $8782;
  GL_OP_NEGATE_EXT                  = $8783;
  GL_OP_DOT3_EXT                    = $8784;
  GL_OP_DOT4_EXT                    = $8785;
  GL_OP_MUL_EXT                     = $8786;
  GL_OP_ADD_EXT                     = $8787;
  GL_OP_MADD_EXT                    = $8788;
  GL_OP_FRAC_EXT                    = $8789;
  GL_OP_MAX_EXT                     = $878A;
  GL_OP_MIN_EXT                     = $878B;
  GL_OP_SET_GE_EXT                  = $878C;
  GL_OP_SET_LT_EXT                  = $878D;
  GL_OP_CLAMP_EXT                   = $878E;
  GL_OP_FLOOR_EXT                   = $878F;
  GL_OP_ROUND_EXT                   = $8790;
  GL_OP_EXP_BASE_2_EXT              = $8791;
  GL_OP_LOG_BASE_2_EXT              = $8792;
  GL_OP_POWER_EXT                   = $8793;
  GL_OP_RECIP_EXT                   = $8794;
  GL_OP_RECIP_SQRT_EXT              = $8795;
  GL_OP_SUB_EXT                     = $8796;
  GL_OP_CROSS_PRODUCT_EXT           = $8797;
  GL_OP_MULTIPLY_MATRIX_EXT         = $8798;
  GL_OP_MOV_EXT                     = $8799;
  GL_OUTPUT_VERTEX_EXT              = $879A;
  GL_OUTPUT_COLOR0_EXT              = $879B;
  GL_OUTPUT_COLOR1_EXT              = $879C;
  GL_OUTPUT_TEXTURE_COORD0_EXT      = $879D;
  GL_OUTPUT_TEXTURE_COORD1_EXT      = $879E;
  GL_OUTPUT_TEXTURE_COORD2_EXT      = $879F;
  GL_OUTPUT_TEXTURE_COORD3_EXT      = $87A0;
  GL_OUTPUT_TEXTURE_COORD4_EXT      = $87A1;
  GL_OUTPUT_TEXTURE_COORD5_EXT      = $87A2;
  GL_OUTPUT_TEXTURE_COORD6_EXT      = $87A3;
  GL_OUTPUT_TEXTURE_COORD7_EXT      = $87A4;
  GL_OUTPUT_TEXTURE_COORD8_EXT      = $87A5;
  GL_OUTPUT_TEXTURE_COORD9_EXT      = $87A6;
  GL_OUTPUT_TEXTURE_COORD10_EXT     = $87A7;
  GL_OUTPUT_TEXTURE_COORD11_EXT     = $87A8;
  GL_OUTPUT_TEXTURE_COORD12_EXT     = $87A9;
  GL_OUTPUT_TEXTURE_COORD13_EXT     = $87AA;
  GL_OUTPUT_TEXTURE_COORD14_EXT     = $87AB;
  GL_OUTPUT_TEXTURE_COORD15_EXT     = $87AC;
  GL_OUTPUT_TEXTURE_COORD16_EXT     = $87AD;
  GL_OUTPUT_TEXTURE_COORD17_EXT     = $87AE;
  GL_OUTPUT_TEXTURE_COORD18_EXT     = $87AF;
  GL_OUTPUT_TEXTURE_COORD19_EXT     = $87B0;
  GL_OUTPUT_TEXTURE_COORD20_EXT     = $87B1;
  GL_OUTPUT_TEXTURE_COORD21_EXT     = $87B2;
  GL_OUTPUT_TEXTURE_COORD22_EXT     = $87B3;
  GL_OUTPUT_TEXTURE_COORD23_EXT     = $87B4;
  GL_OUTPUT_TEXTURE_COORD24_EXT     = $87B5;
  GL_OUTPUT_TEXTURE_COORD25_EXT     = $87B6;
  GL_OUTPUT_TEXTURE_COORD26_EXT     = $87B7;
  GL_OUTPUT_TEXTURE_COORD27_EXT     = $87B8;
  GL_OUTPUT_TEXTURE_COORD28_EXT     = $87B9;
  GL_OUTPUT_TEXTURE_COORD29_EXT     = $87BA;
  GL_OUTPUT_TEXTURE_COORD30_EXT     = $87BB;
  GL_OUTPUT_TEXTURE_COORD31_EXT     = $87BC;
  GL_OUTPUT_FOG_EXT                 = $87BD;
  GL_SCALAR_EXT                     = $87BE;
  GL_VECTOR_EXT                     = $87BF;
  GL_MATRIX_EXT                     = $87C0;
  GL_VARIANT_EXT                    = $87C1;
  GL_INVARIANT_EXT                  = $87C2;
  GL_LOCAL_CONSTANT_EXT             = $87C3;
  GL_LOCAL_EXT                      = $87C4;
  GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
  GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
  GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
  GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
  GL_MAX_VERTEX_SHADER_LOCALS_EXT   = $87C9;
  GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
  GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
  GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
  GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
  GL_VERTEX_SHADER_VARIANTS_EXT     = $87D0;
  GL_VERTEX_SHADER_INVARIANTS_EXT   = $87D1;
  GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
  GL_VERTEX_SHADER_LOCALS_EXT       = $87D3;
  GL_VERTEX_SHADER_OPTIMIZED_EXT    = $87D4;
  GL_X_EXT                          = $87D5;
  GL_Y_EXT                          = $87D6;
  GL_Z_EXT                          = $87D7;
  GL_W_EXT                          = $87D8;
  GL_NEGATIVE_X_EXT                 = $87D9;
  GL_NEGATIVE_Y_EXT                 = $87DA;
  GL_NEGATIVE_Z_EXT                 = $87DB;
  GL_NEGATIVE_W_EXT                 = $87DC;
  GL_ZERO_EXT                       = $87DD;
  GL_ONE_EXT                        = $87DE;
  GL_NEGATIVE_ONE_EXT               = $87DF;
  GL_NORMALIZED_RANGE_EXT           = $87E0;
  GL_FULL_RANGE_EXT                 = $87E1;
  GL_CURRENT_VERTEX_EXT             = $87E2;
  GL_MVP_MATRIX_EXT                 = $87E3;
  GL_VARIANT_VALUE_EXT              = $87E4;
  GL_VARIANT_DATATYPE_EXT           = $87E5;
  GL_VARIANT_ARRAY_STRIDE_EXT       = $87E6;
  GL_VARIANT_ARRAY_TYPE_EXT         = $87E7;
  GL_VARIANT_ARRAY_EXT              = $87E8;
  GL_VARIANT_ARRAY_POINTER_EXT      = $87E9;
  GL_INVARIANT_VALUE_EXT            = $87EA;
  GL_INVARIANT_DATATYPE_EXT         = $87EB;
  GL_LOCAL_CONSTANT_VALUE_EXT       = $87EC;
  GL_LOCAL_CONSTANT_DATATYPE_EXT    = $87ED;

(*** GL_ATI_vertex_streams ***)
  GL_MAX_VERTEX_STREAMS_ATI         = $876B;
  GL_VERTEX_STREAM0_ATI             = $876C;
  GL_VERTEX_STREAM1_ATI             = $876D;
  GL_VERTEX_STREAM2_ATI             = $876E;
  GL_VERTEX_STREAM3_ATI             = $876F;
  GL_VERTEX_STREAM4_ATI             = $8770;
  GL_VERTEX_STREAM5_ATI             = $8771;
  GL_VERTEX_STREAM6_ATI             = $8772;
  GL_VERTEX_STREAM7_ATI             = $8773;
  GL_VERTEX_SOURCE_ATI              = $8774;

(*** GL_ATI_element_array ***)
  GL_ELEMENT_ARRAY_ATI              = $8768;
  GL_ELEMENT_ARRAY_TYPE_ATI         = $8769;
  GL_ELEMENT_ARRAY_POINTER_ATI      = $876A;

(*** GL_SUN_mesh_array ***)
  GL_QUAD_MESH_SUN                  = $8614;
  GL_TRIANGLE_MESH_SUN              = $8615;

(*** GL_SUN_slice_accum ***)
  GL_SLICE_ACCUM_SUN                = $85CC;

(*** GL_NV_multisample_filter_hint ***)
  GL_MULTISAMPLE_FILTER_HINT_NV     = $8534;

(*** GL_NV_depth_clamp ***)
  GL_DEPTH_CLAMP_NV                 = $864F;

(*** GL_NV_occlusion_query ***)
  GL_PIXEL_COUNTER_BITS_NV          = $8864;
  GL_CURRENT_OCCLUSION_QUERY_ID_NV  = $8865;
  GL_PIXEL_COUNT_NV                 = $8866;
  GL_PIXEL_COUNT_AVAILABLE_NV       = $8867;

(*** GL_NV_point_sprite ***)
  GL_POINT_SPRITE_NV                = $8861;
  GL_COORD_REPLACE_NV               = $8862;
  GL_POINT_SPRITE_R_MODE_NV         = $8863;

(*** GL_NV_texture_shader3 ***)
  GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
  GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
  GL_OFFSET_HILO_TEXTURE_2D_NV      = $8854;
  GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
  GL_DEPENDENT_HILO_TEXTURE_2D_NV   = $8858;
  GL_DEPENDENT_RGB_TEXTURE_3D_NV    = $8859;
  GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
  GL_DOT_PRODUCT_PASS_THROUGH_NV    = $885B;
  GL_DOT_PRODUCT_TEXTURE_1D_NV      = $885C;
  GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
  GL_HILO8_NV                       = $885E;
  GL_SIGNED_HILO8_NV                = $885F;
  GL_FORCE_BLUE_TO_ONE_NV           = $8860;

(*** GL_NV_vertex_program1_1 ***)

(*** GL_EXT_shadow_funcs ***)

(*** GL_EXT_stencil_two_side ***)
  GL_STENCIL_TEST_TWO_SIDE_EXT      = $8910;
  GL_ACTIVE_STENCIL_FACE_EXT        = $8911;

(*** GL_ATI_text_fragment_shader ***)
  GL_TEXT_FRAGMENT_SHADER_ATI       = $8200;

(*** GL_APPLE_client_storage ***)
  GL_UNPACK_CLIENT_STORAGE_APPLE    = $85B2;

(*** GL_APPLE_element_array ***)
  GL_ELEMENT_ARRAY_APPLE            = $8768;
  GL_ELEMENT_ARRAY_TYPE_APPLE       = $8769;
  GL_ELEMENT_ARRAY_POINTER_APPLE    = $876A;

(*** GL_APPLE_fence ***)
  GL_DRAW_PIXELS_APPLE              = $8A0A;
  GL_FENCE_APPLE                    = $8A0B;

(*** GL_APPLE_vertex_array_object ***)
  GL_VERTEX_ARRAY_BINDING_APPLE     = $85B5;

(*** GL_APPLE_vertex_array_range ***)
  GL_VERTEX_ARRAY_RANGE_APPLE       = $851D;
  GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
  GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
  GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
  GL_STORAGE_CACHED_APPLE           = $85BE;
  GL_STORAGE_SHARED_APPLE           = $85BF;

(*** GL_APPLE_ycbcr_422 ***)
  GL_YCBCR_422_APPLE                = $85B9;
  GL_UNSIGNED_SHORT_8_8_APPLE       = $85BA;
  GL_UNSIGNED_SHORT_8_8_REV_APPLE   = $85BB;

(*** GL_S3_s3tc ***)
  GL_RGB_S3TC                       = $83A0;
  GL_RGB4_S3TC                      = $83A1;
  GL_RGBA_S3TC                      = $83A2;
  GL_RGBA4_S3TC                     = $83A3;

(*** GL_ATI_draw_buffers ***)
  GL_MAX_DRAW_BUFFERS_ATI           = $8824;
  GL_DRAW_BUFFER0_ATI               = $8825;
  GL_DRAW_BUFFER1_ATI               = $8826;
  GL_DRAW_BUFFER2_ATI               = $8827;
  GL_DRAW_BUFFER3_ATI               = $8828;
  GL_DRAW_BUFFER4_ATI               = $8829;
  GL_DRAW_BUFFER5_ATI               = $882A;
  GL_DRAW_BUFFER6_ATI               = $882B;
  GL_DRAW_BUFFER7_ATI               = $882C;
  GL_DRAW_BUFFER8_ATI               = $882D;
  GL_DRAW_BUFFER9_ATI               = $882E;
  GL_DRAW_BUFFER10_ATI              = $882F;
  GL_DRAW_BUFFER11_ATI              = $8830;
  GL_DRAW_BUFFER12_ATI              = $8831;
  GL_DRAW_BUFFER13_ATI              = $8832;
  GL_DRAW_BUFFER14_ATI              = $8833;
  GL_DRAW_BUFFER15_ATI              = $8834;

(*** GL_ATI_pixel_format_float ***)
  GL_TYPE_RGBA_FLOAT_ATI            = $8820;
  GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;

(*** GL_ATI_texture_env_combine3 ***)
  GL_MODULATE_ADD_ATI               = $8744;
  GL_MODULATE_SIGNED_ADD_ATI        = $8745;
  GL_MODULATE_SUBTRACT_ATI          = $8746;

(*** GL_ATI_texture_float ***)
  GL_RGBA_FLOAT32_ATI               = $8814;
  GL_RGB_FLOAT32_ATI                = $8815;
  GL_ALPHA_FLOAT32_ATI              = $8816;
  GL_INTENSITY_FLOAT32_ATI          = $8817;
  GL_LUMINANCE_FLOAT32_ATI          = $8818;
  GL_LUMINANCE_ALPHA_FLOAT32_ATI    = $8819;
  GL_RGBA_FLOAT16_ATI               = $881A;
  GL_RGB_FLOAT16_ATI                = $881B;
  GL_ALPHA_FLOAT16_ATI              = $881C;
  GL_INTENSITY_FLOAT16_ATI          = $881D;
  GL_LUMINANCE_FLOAT16_ATI          = $881E;
  GL_LUMINANCE_ALPHA_FLOAT16_ATI    = $881F;

(*** GL_NV_float_buffer ***)
  GL_FLOAT_R_NV                     = $8880;
  GL_FLOAT_RG_NV                    = $8881;
  GL_FLOAT_RGB_NV                   = $8882;
  GL_FLOAT_RGBA_NV                  = $8883;
  GL_FLOAT_R16_NV                   = $8884;
  GL_FLOAT_R32_NV                   = $8885;
  GL_FLOAT_RG16_NV                  = $8886;
  GL_FLOAT_RG32_NV                  = $8887;
  GL_FLOAT_RGB16_NV                 = $8888;
  GL_FLOAT_RGB32_NV                 = $8889;
  GL_FLOAT_RGBA16_NV                = $888A;
  GL_FLOAT_RGBA32_NV                = $888B;
  GL_TEXTURE_FLOAT_COMPONENTS_NV    = $888C;
  GL_FLOAT_CLEAR_COLOR_VALUE_NV     = $888D;
  GL_FLOAT_RGBA_MODE_NV             = $888E;

(*** GL_NV_fragment_program ***)
  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
  GL_FRAGMENT_PROGRAM_NV            = $8870;
  GL_MAX_TEXTURE_COORDS_NV          = $8871;
  GL_MAX_TEXTURE_IMAGE_UNITS_NV     = $8872;
  GL_FRAGMENT_PROGRAM_BINDING_NV    = $8873;
  GL_PROGRAM_ERROR_STRING_NV        = $8874;

(*** GL_NV_half_float ***)
  GL_HALF_FLOAT_NV                  = $140B;

(*** GL_NV_pixel_data_range ***)
  GL_WRITE_PIXEL_DATA_RANGE_NV      = $8878;
  GL_READ_PIXEL_DATA_RANGE_NV       = $8879;
  GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
  GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
  GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
  GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;

(*** GL_NV_primitive_restart ***)
  GL_PRIMITIVE_RESTART_NV           = $8558;
  GL_PRIMITIVE_RESTART_INDEX_NV     = $8559;

(*** GL_NV_texture_expand_normal ***)
  GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;

(*** GL_NV_vertex_program2 ***)

(*** GL_ATI_map_object_buffer ***)

(*** GL_ATI_separate_stencil ***)
  GL_STENCIL_BACK_FUNC_ATI          = $8800;
  GL_STENCIL_BACK_FAIL_ATI          = $8801;
  GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
  GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;

(*** GL_ATI_vertex_attrib_array_object ***)

(*** GL_OES_read_format ***)
  GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = $8B9A;
  GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = $8B9B;

(*** GL_EXT_depth_bounds_test ***)
  GL_DEPTH_BOUNDS_TEST_EXT          = $8890;
  GL_DEPTH_BOUNDS_EXT               = $8891;

(*** GL_EXT_texture_mirror_clamp ***)
  GL_MIRROR_CLAMP_EXT               = $8742;
  GL_MIRROR_CLAMP_TO_EDGE_EXT       = $8743;
  GL_MIRROR_CLAMP_TO_BORDER_EXT     = $8912;

(*** GL_EXT_blend_equation_separate ***)
  GL_BLEND_EQUATION_RGB_EXT         = GL_BLEND_EQUATION;
  GL_BLEND_EQUATION_ALPHA_EXT       = $883D;

(*** GL_MESA_pack_invert ***)
  GL_PACK_INVERT_MESA               = $8758;

(*** GL_MESA_ycbcr_texture ***)
  GL_UNSIGNED_SHORT_8_8_MESA        = $85BA;
  GL_UNSIGNED_SHORT_8_8_REV_MESA    = $85BB;
  GL_YCBCR_MESA                     = $8757;

(*** GL_EXT_pixel_buffer_object ***)
  GL_PIXEL_PACK_BUFFER_EXT          = $88EB;
  GL_PIXEL_UNPACK_BUFFER_EXT        = $88EC;
  GL_PIXEL_PACK_BUFFER_BINDING_EXT  = $88ED;
  GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;

(*** GL_NV_fragment_program_option ***)

(*** GL_NV_fragment_program2 ***)
  GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
  GL_MAX_PROGRAM_CALL_DEPTH_NV      = $88F5;
  GL_MAX_PROGRAM_IF_DEPTH_NV        = $88F6;
  GL_MAX_PROGRAM_LOOP_DEPTH_NV      = $88F7;
  GL_MAX_PROGRAM_LOOP_COUNT_NV      = $88F8;

(*** GL_NV_vertex_program2_option ***)

(*** GL_NV_vertex_program3 ***)

(*** GL_EXT_framebuffer_object ***)
  GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
  GL_MAX_RENDERBUFFER_SIZE_EXT      = $84E8;
  GL_FRAMEBUFFER_BINDING_EXT        = $8CA6;
  GL_RENDERBUFFER_BINDING_EXT       = $8CA7;
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
  GL_FRAMEBUFFER_COMPLETE_EXT       = $8CD5;
  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENTS_EXT = $8CD6;
  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
  GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
  GL_FRAMEBUFFER_UNSUPPORTED_EXT    = $8CDD;
  GL_FRAMEBUFFER_STATUS_ERROR_EXT   = $8CDE;
  GL_MAX_COLOR_ATTACHMENTS_EXT      = $8CDF;
  GL_COLOR_ATTACHMENT0_EXT          = $8CE0;
  GL_COLOR_ATTACHMENT1_EXT          = $8CE1;
  GL_COLOR_ATTACHMENT2_EXT          = $8CE2;
  GL_COLOR_ATTACHMENT3_EXT          = $8CE3;
  GL_COLOR_ATTACHMENT4_EXT          = $8CE4;
  GL_COLOR_ATTACHMENT5_EXT          = $8CE5;
  GL_COLOR_ATTACHMENT6_EXT          = $8CE6;
  GL_COLOR_ATTACHMENT7_EXT          = $8CE7;
  GL_COLOR_ATTACHMENT8_EXT          = $8CE8;
  GL_COLOR_ATTACHMENT9_EXT          = $8CE9;
  GL_COLOR_ATTACHMENT10_EXT         = $8CEA;
  GL_COLOR_ATTACHMENT11_EXT         = $8CEB;
  GL_COLOR_ATTACHMENT12_EXT         = $8CEC;
  GL_COLOR_ATTACHMENT13_EXT         = $8CED;
  GL_COLOR_ATTACHMENT14_EXT         = $8CEE;
  GL_COLOR_ATTACHMENT15_EXT         = $8CEF;
  GL_DEPTH_ATTACHMENT_EXT           = $8D00;
  GL_STENCIL_ATTACHMENT_EXT         = $8D20;
  GL_FRAMEBUFFER_EXT                = $8D40;
  GL_RENDERBUFFER_EXT               = $8D41;
  GL_RENDERBUFFER_WIDTH_EXT         = $8D42;
  GL_RENDERBUFFER_HEIGHT_EXT        = $8D43;
  GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
  GL_STENCIL_INDEX_EXT              = $8D45;
  GL_STENCIL_INDEX1_EXT             = $8D46;
  GL_STENCIL_INDEX4_EXT             = $8D47;
  GL_STENCIL_INDEX8_EXT             = $8D48;
  GL_STENCIL_INDEX16_EXT            = $8D49;

(*** GL_GREMEDY_string_marker ***)

(*************************************************************)
(*                    T   Y   P   E   S                      *)
(*************************************************************)

type

(*** GL_VERSION_2_0 ***)
  GLchar = Char;
  PGLchar = ^GLchar;
  PPGLchar = ^PGLchar;

(*** GL_VERSION_1_5 ***)
  GLintptr = PGLint;
  PGLintptr = ^GLintptr;
  PPGLintptr = ^PGLintptr;
  GLsizeiptr = PGLint;
  PGLsizeiptr = ^GLsizeiptr;
  PPGLsizeiptr = ^PGLsizeiptr;

(*** GL_ARB_vertex_buffer_object ***)
  GLintptrARB = PGLint;
  PGLintptrARB = ^GLintptrARB;
  PPGLintptrARB = ^PGLintptrARB;
  GLsizeiptrARB = PGLint;
  PGLsizeiptrARB = ^GLsizeiptrARB;
  PPGLsizeiptrARB = ^PGLsizeiptrARB;

(*** GL_ARB_shader_objects ***)
  GLcharARB = Char;
  PGLcharARB = ^GLcharARB;
  PPGLcharARB = ^PGLcharARB;
  GLhandleARB = GLuint;
  PGLhandleARB = ^GLhandleARB;
  PPGLhandleARB = ^PGLhandleARB;

(*** GL_ARB_half_float_pixel ***)
  GLhalfARB = GLushort;
  PGLhalfARB = ^GLhalfARB;
  PPGLhalfARB = ^PGLhalfARB;

(*** GL_NV_half_float ***)
  GLhalfNV = GLushort;
  PGLhalfNV = ^GLhalfNV;
  PPGLhalfNV = ^PGLhalfNV;

(*************************************************************)
(*            F   U   N   C   T   I   O   N   S              *)
(*************************************************************)

var

(*** GL_VERSION_1_2 ***)
  GLBLENDCOLOR: procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); stdcall;
  GLBLENDEQUATION: procedure(mode: GLenum); stdcall;
  GLDRAWRANGEELEMENTS: procedure(mode: GLenum; aStart: GLuint; aEnd: GLuint; count: GLsizei; eType: GLenum; indices: PGLvoid); stdcall;
  GLCOLORTABLE: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; eType: GLenum; table: PGLvoid); stdcall;
  GLCOLORTABLEPARAMETERFV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLCOLORTABLEPARAMETERIV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLCOPYCOLORTABLE: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall;
  GLGETCOLORTABLE: procedure(target: GLenum; format: GLenum; eType: GLenum; table: PGLvoid); stdcall;
  GLGETCOLORTABLEPARAMETERFV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETCOLORTABLEPARAMETERIV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLCOLORSUBTABLE: procedure(target: GLenum; aStart: GLsizei; count: GLsizei; format: GLenum; eType: GLenum; data: PGLvoid); stdcall;
  GLCOPYCOLORSUBTABLE: procedure(target: GLenum; aStart: GLsizei; x: GLint; y: GLint; width: GLsizei); stdcall;
  GLCONVOLUTIONFILTER1D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; eType: GLenum; image: PGLvoid); stdcall;
  GLCONVOLUTIONFILTER2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; eType: GLenum; image: PGLvoid); stdcall;
  GLCONVOLUTIONPARAMETERF: procedure(target: GLenum; pname: GLenum; params: GLfloat); stdcall;
  GLCONVOLUTIONPARAMETERFV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLCONVOLUTIONPARAMETERI: procedure(target: GLenum; pname: GLenum; params: GLint); stdcall;
  GLCONVOLUTIONPARAMETERIV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLCOPYCONVOLUTIONFILTER1D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall;
  GLCOPYCONVOLUTIONFILTER2D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
  GLGETCONVOLUTIONFILTER: procedure(target: GLenum; format: GLenum; eType: GLenum; image: PGLvoid); stdcall;
  GLGETCONVOLUTIONPARAMETERFV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETCONVOLUTIONPARAMETERIV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETSEPARABLEFILTER: procedure(target: GLenum; format: GLenum; eType: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); stdcall;
  GLSEPARABLEFILTER2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; eType: GLenum; row: PGLvoid; column: PGLvoid); stdcall;
  GLGETHISTOGRAM: procedure(target: GLenum; reset: GLboolean; format: GLenum; eType: GLenum; values: PGLvoid); stdcall;
  GLGETHISTOGRAMPARAMETERFV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETHISTOGRAMPARAMETERIV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETMINMAX: procedure(target: GLenum; reset: GLboolean; format: GLenum; eType: GLenum; values: PGLvoid); stdcall;
  GLGETMINMAXPARAMETERFV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETMINMAXPARAMETERIV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLHISTOGRAM: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); stdcall;
  GLMINMAX: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); stdcall;
  GLRESETHISTOGRAM: procedure(target: GLenum); stdcall;
  GLRESETMINMAX: procedure(target: GLenum); stdcall;
  GLTEXIMAGE3D: procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; eType: GLenum; pixels: PGLvoid); stdcall;
  GLTEXSUBIMAGE3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; eType: GLenum; pixels: PGLvoid); stdcall;
  GLCOPYTEXSUBIMAGE3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;

(*** GL_VERSION_1_3 ***)
  GLACTIVETEXTURE: procedure(texture: GLenum); stdcall;
  GLCLIENTACTIVETEXTURE: procedure(texture: GLenum); stdcall;
  GLMULTITEXCOORD1D: procedure(target: GLenum; s: GLdouble); stdcall;
  GLMULTITEXCOORD1DV: procedure(target: GLenum; v: PGLdouble); stdcall;
  GLMULTITEXCOORD1F: procedure(target: GLenum; s: GLfloat); stdcall;
  GLMULTITEXCOORD1FV: procedure(target: GLenum; v: PGLfloat); stdcall;
  GLMULTITEXCOORD1I: procedure(target: GLenum; s: GLint); stdcall;
  GLMULTITEXCOORD1IV: procedure(target: GLenum; v: PGLint); stdcall;
  GLMULTITEXCOORD1S: procedure(target: GLenum; s: GLshort); stdcall;
  GLMULTITEXCOORD1SV: procedure(target: GLenum; v: PGLshort); stdcall;
  GLMULTITEXCOORD2D: procedure(target: GLenum; s: GLdouble; t: GLdouble); stdcall;
  GLMULTITEXCOORD2DV: procedure(target: GLenum; v: PGLdouble); stdcall;
  GLMULTITEXCOORD2F: procedure(target: GLenum; s: GLfloat; t: GLfloat); stdcall;
  GLMULTITEXCOORD2FV: procedure(target: GLenum; v: PGLfloat); stdcall;
  GLMULTITEXCOORD2I: procedure(target: GLenum; s: GLint; t: GLint); stdcall;
  GLMULTITEXCOORD2IV: procedure(target: GLenum; v: PGLint); stdcall;
  GLMULTITEXCOORD2S: procedure(target: GLenum; s: GLshort; t: GLshort); stdcall;
  GLMULTITEXCOORD2SV: procedure(target: GLenum; v: PGLshort); stdcall;
  GLMULTITEXCOORD3D: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); stdcall;
  GLMULTITEXCOORD3DV: procedure(target: GLenum; v: PGLdouble); stdcall;
  GLMULTITEXCOORD3F: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); stdcall;
  GLMULTITEXCOORD3FV: procedure(target: GLenum; v: PGLfloat); stdcall;
  GLMULTITEXCOORD3I: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); stdcall;
  GLMULTITEXCOORD3IV: procedure(target: GLenum; v: PGLint); stdcall;
  GLMULTITEXCOORD3S: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); stdcall;
  GLMULTITEXCOORD3SV: procedure(target: GLenum; v: PGLshort); stdcall;
  GLMULTITEXCOORD4D: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); stdcall;
  GLMULTITEXCOORD4DV: procedure(target: GLenum; v: PGLdouble); stdcall;
  GLMULTITEXCOORD4F: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); stdcall;
  GLMULTITEXCOORD4FV: procedure(target: GLenum; v: PGLfloat); stdcall;
  GLMULTITEXCOORD4I: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); stdcall;
  GLMULTITEXCOORD4IV: procedure(target: GLenum; v: PGLint); stdcall;
  GLMULTITEXCOORD4S: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); stdcall;
  GLMULTITEXCOORD4SV: procedure(target: GLenum; v: PGLshort); stdcall;
  GLLOADTRANSPOSEMATRIXF: procedure(m: PGLfloat); stdcall;
  GLLOADTRANSPOSEMATRIXD: procedure(m: PGLdouble); stdcall;
  GLMULTTRANSPOSEMATRIXF: procedure(m: PGLfloat); stdcall;
  GLMULTTRANSPOSEMATRIXD: procedure(m: PGLdouble); stdcall;
  GLSAMPLECOVERAGE: procedure(value: GLclampf; invert: GLboolean); stdcall;
  GLCOMPRESSEDTEXIMAGE3D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXIMAGE2D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXIMAGE1D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXSUBIMAGE3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXSUBIMAGE2D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXSUBIMAGE1D: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLGETCOMPRESSEDTEXIMAGE: procedure(target: GLenum; level: GLint; img: PGLvoid); stdcall;

(*** GL_VERSION_1_4 ***)
  GLBLENDFUNCSEPARATE: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall;
  GLFOGCOORDF: procedure(coord: GLfloat); stdcall;
  GLFOGCOORDFV: procedure(coord: PGLfloat); stdcall;
  GLFOGCOORDD: procedure(coord: GLdouble); stdcall;
  GLFOGCOORDDV: procedure(coord: PGLdouble); stdcall;
  GLFOGCOORDPOINTER: procedure(eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;
  GLMULTIDRAWARRAYS: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); stdcall;
  GLMULTIDRAWELEMENTS: procedure(mode: GLenum; count: PGLsizei; eType: GLenum; indices: PGLvoid; primcount: GLsizei); stdcall;
  GLPOINTPARAMETERF: procedure(pname: GLenum; param: GLfloat); stdcall;
  GLPOINTPARAMETERFV: procedure(pname: GLenum; params: PGLfloat); stdcall;
  GLPOINTPARAMETERI: procedure(pname: GLenum; param: GLint); stdcall;
  GLPOINTPARAMETERIV: procedure(pname: GLenum; params: PGLint); stdcall;
  GLSECONDARYCOLOR3B: procedure(red: GLbyte; green: GLbyte; blue: GLbyte); stdcall;
  GLSECONDARYCOLOR3BV: procedure(v: PGLbyte); stdcall;
  GLSECONDARYCOLOR3D: procedure(red: GLdouble; green: GLdouble; blue: GLdouble); stdcall;
  GLSECONDARYCOLOR3DV: procedure(v: PGLdouble); stdcall;
  GLSECONDARYCOLOR3F: procedure(red: GLfloat; green: GLfloat; blue: GLfloat); stdcall;
  GLSECONDARYCOLOR3FV: procedure(v: PGLfloat); stdcall;
  GLSECONDARYCOLOR3I: procedure(red: GLint; green: GLint; blue: GLint); stdcall;
  GLSECONDARYCOLOR3IV: procedure(v: PGLint); stdcall;
  GLSECONDARYCOLOR3S: procedure(red: GLshort; green: GLshort; blue: GLshort); stdcall;
  GLSECONDARYCOLOR3SV: procedure(v: PGLshort); stdcall;
  GLSECONDARYCOLOR3UB: procedure(red: GLubyte; green: GLubyte; blue: GLubyte); stdcall;
  GLSECONDARYCOLOR3UBV: procedure(v: PGLubyte); stdcall;
  GLSECONDARYCOLOR3UI: procedure(red: GLuint; green: GLuint; blue: GLuint); stdcall;
  GLSECONDARYCOLOR3UIV: procedure(v: PGLuint); stdcall;
  GLSECONDARYCOLOR3US: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall;
  GLSECONDARYCOLOR3USV: procedure(v: PGLushort); stdcall;
  GLSECONDARYCOLORPOINTER: procedure(size: GLint; eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;
  GLWINDOWPOS2D: procedure(x: GLdouble; y: GLdouble); stdcall;
  GLWINDOWPOS2DV: procedure(v: PGLdouble); stdcall;
  GLWINDOWPOS2F: procedure(x: GLfloat; y: GLfloat); stdcall;
  GLWINDOWPOS2FV: procedure(v: PGLfloat); stdcall;
  GLWINDOWPOS2I: procedure(x: GLint; y: GLint); stdcall;
  GLWINDOWPOS2IV: procedure(v: PGLint); stdcall;
  GLWINDOWPOS2S: procedure(x: GLshort; y: GLshort); stdcall;
  GLWINDOWPOS2SV: procedure(v: PGLshort); stdcall;
  GLWINDOWPOS3D: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
  GLWINDOWPOS3DV: procedure(v: PGLdouble); stdcall;
  GLWINDOWPOS3F: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLWINDOWPOS3FV: procedure(v: PGLfloat); stdcall;
  GLWINDOWPOS3I: procedure(x: GLint; y: GLint; z: GLint); stdcall;
  GLWINDOWPOS3IV: procedure(v: PGLint); stdcall;
  GLWINDOWPOS3S: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall;
  GLWINDOWPOS3SV: procedure(v: PGLshort); stdcall;

(*** GL_VERSION_1_5 ***)
  GLGENQUERIES: procedure(n: GLsizei; ids: PGLuint); stdcall;
  GLDELETEQUERIES: procedure(n: GLsizei; ids: PGLuint); stdcall;
  GLISQUERY: function(id: GLuint): GLboolean; stdcall;
  GLBEGINQUERY: procedure(target: GLenum; id: GLuint); stdcall;
  GLENDQUERY: procedure(target: GLenum); stdcall;
  GLGETQUERYIV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETQUERYOBJECTIV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETQUERYOBJECTUIV: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall;
  GLBINDBUFFER: procedure(target: GLenum; buffer: GLuint); stdcall;
  GLDELETEBUFFERS: procedure(n: GLsizei; buffers: PGLuint); stdcall;
  GLGENBUFFERS: procedure(n: GLsizei; buffers: PGLuint); stdcall;
  GLISBUFFER: function(buffer: GLuint): GLboolean; stdcall;
  GLBUFFERDATA: procedure(target: GLenum; size: GLsizeiptr; data: PGLvoid; usage: GLenum); stdcall;
  GLBUFFERSUBDATA: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); stdcall;
  GLGETBUFFERSUBDATA: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); stdcall;
  GLMAPBUFFER: function(target: GLenum; access: GLenum): PGLvoid; stdcall;
  GLUNMAPBUFFER: function(target: GLenum): GLboolean; stdcall;
  GLGETBUFFERPARAMETERIV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETBUFFERPOINTERV: procedure(target: GLenum; pname: GLenum; params: PGLvoid); stdcall;

(*** GL_VERSION_2_0 ***)
  GLBLENDEQUATIONSEPARATE: procedure(modeRGB: GLenum; modeAlpha: GLenum); stdcall;
  GLDRAWBUFFERS: procedure(n: GLsizei; bufs: PGLenum); stdcall;
  GLSTENCILOPSEPARATE: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); stdcall;
  GLSTENCILFUNCSEPARATE: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); stdcall;
  GLSTENCILMASKSEPARATE: procedure(face: GLenum; mask: GLuint); stdcall;
  GLATTACHSHADER: procedure(eProgram: GLuint; shader: GLuint); stdcall;
  GLBINDATTRIBLOCATION: procedure(eProgram: GLuint; index: GLuint; name: PGLchar); stdcall;
  GLCOMPILESHADER: procedure(shader: GLuint); stdcall;
  GLCREATEPROGRAM: function: GLuint; stdcall;
  GLCREATESHADER: function(eType: GLenum): GLuint; stdcall;
  GLDELETEPROGRAM: procedure(eProgram: GLuint); stdcall;
  GLDELETESHADER: procedure(shader: GLuint); stdcall;
  GLDETACHSHADER: procedure(eProgram: GLuint; shader: GLuint); stdcall;
  GLDISABLEVERTEXATTRIBARRAY: procedure(index: GLuint); stdcall;
  GLENABLEVERTEXATTRIBARRAY: procedure(index: GLuint); stdcall;
  GLGETACTIVEATTRIB: procedure(eProgram: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; eType: PGLenum; name: PGLchar); stdcall;
  GLGETACTIVEUNIFORM: procedure(eProgram: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; eType: PGLenum; name: PGLchar); stdcall;
  GLGETATTACHEDSHADERS: procedure(eProgram: GLuint; maxCount: GLsizei; count: PGLsizei; obj: PGLuint); stdcall;
  GLGETATTRIBLOCATION: function(eProgram: GLuint; name: PGLchar): GLint; stdcall;
  GLGETPROGRAMIV: procedure(eProgram: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETPROGRAMINFOLOG: procedure(eProgram: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall;
  GLGETSHADERIV: procedure(shader: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETSHADERINFOLOG: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall;
  GLGETSHADERSOURCE: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; source: PGLchar); stdcall;
  GLGETUNIFORMLOCATION: function(eProgram: GLuint; name: PGLchar): GLint; stdcall;
  GLGETUNIFORMFV: procedure(eProgram: GLuint; location: GLint; params: PGLfloat); stdcall;
  GLGETUNIFORMIV: procedure(eProgram: GLuint; location: GLint; params: PGLint); stdcall;
  GLGETVERTEXATTRIBDV: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
  GLGETVERTEXATTRIBFV: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLGETVERTEXATTRIBIV: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETVERTEXATTRIBPOINTERV: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall;
  GLISPROGRAM: function(eProgram: GLuint): GLboolean; stdcall;
  GLISSHADER: function(shader: GLuint): GLboolean; stdcall;
  GLLINKPROGRAM: procedure(eProgram: GLuint); stdcall;
  GLSHADERSOURCE: procedure(shader: GLuint; count: GLsizei; eString: PGLchar; length: PGLint); stdcall;
  GLUSEPROGRAM: procedure(eProgram: GLuint); stdcall;
  GLUNIFORM1F: procedure(location: GLint; v0: GLfloat); stdcall;
  GLUNIFORM2F: procedure(location: GLint; v0: GLfloat; v1: GLfloat); stdcall;
  GLUNIFORM3F: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall;
  GLUNIFORM4F: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall;
  GLUNIFORM1I: procedure(location: GLint; v0: GLint); stdcall;
  GLUNIFORM2I: procedure(location: GLint; v0: GLint; v1: GLint); stdcall;
  GLUNIFORM3I: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall;
  GLUNIFORM4I: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall;
  GLUNIFORM1FV: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall;
  GLUNIFORM2FV: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall;
  GLUNIFORM3FV: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall;
  GLUNIFORM4FV: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall;
  GLUNIFORM1IV: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall;
  GLUNIFORM2IV: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall;
  GLUNIFORM3IV: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall;
  GLUNIFORM4IV: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall;
  GLUNIFORMMATRIX2FV: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall;
  GLUNIFORMMATRIX3FV: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall;
  GLUNIFORMMATRIX4FV: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall;
  GLVALIDATEPROGRAM: procedure(eProgram: GLuint); stdcall;
  GLVERTEXATTRIB1D: procedure(index: GLuint; x: GLdouble); stdcall;
  GLVERTEXATTRIB1DV: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB1F: procedure(index: GLuint; x: GLfloat); stdcall;
  GLVERTEXATTRIB1FV: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB1S: procedure(index: GLuint; x: GLshort); stdcall;
  GLVERTEXATTRIB1SV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB2D: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall;
  GLVERTEXATTRIB2DV: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB2F: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall;
  GLVERTEXATTRIB2FV: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB2S: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall;
  GLVERTEXATTRIB2SV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB3D: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
  GLVERTEXATTRIB3DV: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB3F: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLVERTEXATTRIB3FV: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB3S: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall;
  GLVERTEXATTRIB3SV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB4NBV: procedure(index: GLuint; v: PGLbyte); stdcall;
  GLVERTEXATTRIB4NIV: procedure(index: GLuint; v: PGLint); stdcall;
  GLVERTEXATTRIB4NSV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB4NUB: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall;
  GLVERTEXATTRIB4NUBV: procedure(index: GLuint; v: PGLubyte); stdcall;
  GLVERTEXATTRIB4NUIV: procedure(index: GLuint; v: PGLuint); stdcall;
  GLVERTEXATTRIB4NUSV: procedure(index: GLuint; v: PGLushort); stdcall;
  GLVERTEXATTRIB4BV: procedure(index: GLuint; v: PGLbyte); stdcall;
  GLVERTEXATTRIB4D: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLVERTEXATTRIB4DV: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB4F: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLVERTEXATTRIB4FV: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB4IV: procedure(index: GLuint; v: PGLint); stdcall;
  GLVERTEXATTRIB4S: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
  GLVERTEXATTRIB4SV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB4UBV: procedure(index: GLuint; v: PGLubyte); stdcall;
  GLVERTEXATTRIB4UIV: procedure(index: GLuint; v: PGLuint); stdcall;
  GLVERTEXATTRIB4USV: procedure(index: GLuint; v: PGLushort); stdcall;
  GLVERTEXATTRIBPOINTER: procedure(index: GLuint; size: GLint; eType: GLenum; normalized: GLboolean; stride: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_ARB_multitexture ***)
  GLACTIVETEXTUREARB: procedure(texture: GLenum); stdcall;
  GLCLIENTACTIVETEXTUREARB: procedure(texture: GLenum); stdcall;
  GLMULTITEXCOORD1DARB: procedure(target: GLenum; s: GLdouble); stdcall;
  GLMULTITEXCOORD1DVARB: procedure(target: GLenum; v: PGLdouble); stdcall;
  GLMULTITEXCOORD1FARB: procedure(target: GLenum; s: GLfloat); stdcall;
  GLMULTITEXCOORD1FVARB: procedure(target: GLenum; v: PGLfloat); stdcall;
  GLMULTITEXCOORD1IARB: procedure(target: GLenum; s: GLint); stdcall;
  GLMULTITEXCOORD1IVARB: procedure(target: GLenum; v: PGLint); stdcall;
  GLMULTITEXCOORD1SARB: procedure(target: GLenum; s: GLshort); stdcall;
  GLMULTITEXCOORD1SVARB: procedure(target: GLenum; v: PGLshort); stdcall;
  GLMULTITEXCOORD2DARB: procedure(target: GLenum; s: GLdouble; t: GLdouble); stdcall;
  GLMULTITEXCOORD2DVARB: procedure(target: GLenum; v: PGLdouble); stdcall;
  GLMULTITEXCOORD2FARB: procedure(target: GLenum; s: GLfloat; t: GLfloat); stdcall;
  GLMULTITEXCOORD2FVARB: procedure(target: GLenum; v: PGLfloat); stdcall;
  GLMULTITEXCOORD2IARB: procedure(target: GLenum; s: GLint; t: GLint); stdcall;
  GLMULTITEXCOORD2IVARB: procedure(target: GLenum; v: PGLint); stdcall;
  GLMULTITEXCOORD2SARB: procedure(target: GLenum; s: GLshort; t: GLshort); stdcall;
  GLMULTITEXCOORD2SVARB: procedure(target: GLenum; v: PGLshort); stdcall;
  GLMULTITEXCOORD3DARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); stdcall;
  GLMULTITEXCOORD3DVARB: procedure(target: GLenum; v: PGLdouble); stdcall;
  GLMULTITEXCOORD3FARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); stdcall;
  GLMULTITEXCOORD3FVARB: procedure(target: GLenum; v: PGLfloat); stdcall;
  GLMULTITEXCOORD3IARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); stdcall;
  GLMULTITEXCOORD3IVARB: procedure(target: GLenum; v: PGLint); stdcall;
  GLMULTITEXCOORD3SARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); stdcall;
  GLMULTITEXCOORD3SVARB: procedure(target: GLenum; v: PGLshort); stdcall;
  GLMULTITEXCOORD4DARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); stdcall;
  GLMULTITEXCOORD4DVARB: procedure(target: GLenum; v: PGLdouble); stdcall;
  GLMULTITEXCOORD4FARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); stdcall;
  GLMULTITEXCOORD4FVARB: procedure(target: GLenum; v: PGLfloat); stdcall;
  GLMULTITEXCOORD4IARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); stdcall;
  GLMULTITEXCOORD4IVARB: procedure(target: GLenum; v: PGLint); stdcall;
  GLMULTITEXCOORD4SARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); stdcall;
  GLMULTITEXCOORD4SVARB: procedure(target: GLenum; v: PGLshort); stdcall;

(*** GL_ARB_transpose_matrix ***)
  GLLOADTRANSPOSEMATRIXFARB: procedure(m: PGLfloat); stdcall;
  GLLOADTRANSPOSEMATRIXDARB: procedure(m: PGLdouble); stdcall;
  GLMULTTRANSPOSEMATRIXFARB: procedure(m: PGLfloat); stdcall;
  GLMULTTRANSPOSEMATRIXDARB: procedure(m: PGLdouble); stdcall;

(*** GL_ARB_multisample ***)
  GLSAMPLECOVERAGEARB: procedure(value: GLclampf; invert: GLboolean); stdcall;

(*** GL_ARB_texture_env_add ***)

(*** GL_ARB_texture_cube_map ***)

(*** GL_ARB_texture_compression ***)
  GLCOMPRESSEDTEXIMAGE3DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXIMAGE2DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXIMAGE1DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXSUBIMAGE3DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXSUBIMAGE2DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLCOMPRESSEDTEXSUBIMAGE1DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; data: PGLvoid); stdcall;
  GLGETCOMPRESSEDTEXIMAGEARB: procedure(target: GLenum; level: GLint; img: PGLvoid); stdcall;

(*** GL_ARB_texture_border_clamp ***)

(*** GL_ARB_point_parameters ***)
  GLPOINTPARAMETERFARB: procedure(pname: GLenum; param: GLfloat); stdcall;
  GLPOINTPARAMETERFVARB: procedure(pname: GLenum; params: PGLfloat); stdcall;

(*** GL_ARB_vertex_blend ***)
  GLWEIGHTBVARB: procedure(size: GLint; weights: PGLbyte); stdcall;
  GLWEIGHTSVARB: procedure(size: GLint; weights: PGLshort); stdcall;
  GLWEIGHTIVARB: procedure(size: GLint; weights: PGLint); stdcall;
  GLWEIGHTFVARB: procedure(size: GLint; weights: PGLfloat); stdcall;
  GLWEIGHTDVARB: procedure(size: GLint; weights: PGLdouble); stdcall;
  GLWEIGHTUBVARB: procedure(size: GLint; weights: PGLubyte); stdcall;
  GLWEIGHTUSVARB: procedure(size: GLint; weights: PGLushort); stdcall;
  GLWEIGHTUIVARB: procedure(size: GLint; weights: PGLuint); stdcall;
  GLWEIGHTPOINTERARB: procedure(size: GLint; eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;
  GLVERTEXBLENDARB: procedure(count: GLint); stdcall;

(*** GL_ARB_matrix_palette ***)
  GLCURRENTPALETTEMATRIXARB: procedure(index: GLint); stdcall;
  GLMATRIXINDEXUBVARB: procedure(size: GLint; indices: PGLubyte); stdcall;
  GLMATRIXINDEXUSVARB: procedure(size: GLint; indices: PGLushort); stdcall;
  GLMATRIXINDEXUIVARB: procedure(size: GLint; indices: PGLuint); stdcall;
  GLMATRIXINDEXPOINTERARB: procedure(size: GLint; eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_ARB_texture_env_combine ***)

(*** GL_ARB_texture_env_crossbar ***)

(*** GL_ARB_texture_env_dot3 ***)

(*** GL_ARB_texture_mirrored_repeat ***)

(*** GL_ARB_depth_texture ***)

(*** GL_ARB_shadow ***)

(*** GL_ARB_shadow_ambient ***)

(*** GL_ARB_window_pos ***)
  GLWINDOWPOS2DARB: procedure(x: GLdouble; y: GLdouble); stdcall;
  GLWINDOWPOS2DVARB: procedure(v: PGLdouble); stdcall;
  GLWINDOWPOS2FARB: procedure(x: GLfloat; y: GLfloat); stdcall;
  GLWINDOWPOS2FVARB: procedure(v: PGLfloat); stdcall;
  GLWINDOWPOS2IARB: procedure(x: GLint; y: GLint); stdcall;
  GLWINDOWPOS2IVARB: procedure(v: PGLint); stdcall;
  GLWINDOWPOS2SARB: procedure(x: GLshort; y: GLshort); stdcall;
  GLWINDOWPOS2SVARB: procedure(v: PGLshort); stdcall;
  GLWINDOWPOS3DARB: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
  GLWINDOWPOS3DVARB: procedure(v: PGLdouble); stdcall;
  GLWINDOWPOS3FARB: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLWINDOWPOS3FVARB: procedure(v: PGLfloat); stdcall;
  GLWINDOWPOS3IARB: procedure(x: GLint; y: GLint; z: GLint); stdcall;
  GLWINDOWPOS3IVARB: procedure(v: PGLint); stdcall;
  GLWINDOWPOS3SARB: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall;
  GLWINDOWPOS3SVARB: procedure(v: PGLshort); stdcall;

(*** GL_ARB_vertex_program ***)
  GLVERTEXATTRIB1DARB: procedure(index: GLuint; x: GLdouble); stdcall;
  GLVERTEXATTRIB1DVARB: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB1FARB: procedure(index: GLuint; x: GLfloat); stdcall;
  GLVERTEXATTRIB1FVARB: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB1SARB: procedure(index: GLuint; x: GLshort); stdcall;
  GLVERTEXATTRIB1SVARB: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB2DARB: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall;
  GLVERTEXATTRIB2DVARB: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB2FARB: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall;
  GLVERTEXATTRIB2FVARB: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB2SARB: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall;
  GLVERTEXATTRIB2SVARB: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB3DARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
  GLVERTEXATTRIB3DVARB: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB3FARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLVERTEXATTRIB3FVARB: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB3SARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall;
  GLVERTEXATTRIB3SVARB: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB4NBVARB: procedure(index: GLuint; v: PGLbyte); stdcall;
  GLVERTEXATTRIB4NIVARB: procedure(index: GLuint; v: PGLint); stdcall;
  GLVERTEXATTRIB4NSVARB: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB4NUBARB: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall;
  GLVERTEXATTRIB4NUBVARB: procedure(index: GLuint; v: PGLubyte); stdcall;
  GLVERTEXATTRIB4NUIVARB: procedure(index: GLuint; v: PGLuint); stdcall;
  GLVERTEXATTRIB4NUSVARB: procedure(index: GLuint; v: PGLushort); stdcall;
  GLVERTEXATTRIB4BVARB: procedure(index: GLuint; v: PGLbyte); stdcall;
  GLVERTEXATTRIB4DARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLVERTEXATTRIB4DVARB: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB4FARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLVERTEXATTRIB4FVARB: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB4IVARB: procedure(index: GLuint; v: PGLint); stdcall;
  GLVERTEXATTRIB4SARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
  GLVERTEXATTRIB4SVARB: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB4UBVARB: procedure(index: GLuint; v: PGLubyte); stdcall;
  GLVERTEXATTRIB4UIVARB: procedure(index: GLuint; v: PGLuint); stdcall;
  GLVERTEXATTRIB4USVARB: procedure(index: GLuint; v: PGLushort); stdcall;
  GLVERTEXATTRIBPOINTERARB: procedure(index: GLuint; size: GLint; eType: GLenum; normalized: GLboolean; stride: GLsizei; pointer: PGLvoid); stdcall;
  GLENABLEVERTEXATTRIBARRAYARB: procedure(index: GLuint); stdcall;
  GLDISABLEVERTEXATTRIBARRAYARB: procedure(index: GLuint); stdcall;
  GLPROGRAMSTRINGARB: procedure(target: GLenum; format: GLenum; len: GLsizei; eString: PGLvoid); stdcall;
  GLBINDPROGRAMARB: procedure(target: GLenum; eProgram: GLuint); stdcall;
  GLDELETEPROGRAMSARB: procedure(n: GLsizei; programs: PGLuint); stdcall;
  GLGENPROGRAMSARB: procedure(n: GLsizei; programs: PGLuint); stdcall;
  GLPROGRAMENVPARAMETER4DARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLPROGRAMENVPARAMETER4DVARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall;
  GLPROGRAMENVPARAMETER4FARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLPROGRAMENVPARAMETER4FVARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall;
  GLPROGRAMLOCALPARAMETER4DARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLPROGRAMLOCALPARAMETER4DVARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall;
  GLPROGRAMLOCALPARAMETER4FARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLPROGRAMLOCALPARAMETER4FVARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall;
  GLGETPROGRAMENVPARAMETERDVARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall;
  GLGETPROGRAMENVPARAMETERFVARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall;
  GLGETPROGRAMLOCALPARAMETERDVARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall;
  GLGETPROGRAMLOCALPARAMETERFVARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall;
  GLGETPROGRAMIVARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETPROGRAMSTRINGARB: procedure(target: GLenum; pname: GLenum; eString: PGLvoid); stdcall;
  GLGETVERTEXATTRIBDVARB: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
  GLGETVERTEXATTRIBFVARB: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLGETVERTEXATTRIBIVARB: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETVERTEXATTRIBPOINTERVARB: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall;
  GLISPROGRAMARB: function(eProgram: GLuint): GLboolean; stdcall;

(*** GL_ARB_fragment_program ***)

(*** GL_ARB_vertex_buffer_object ***)
  GLBINDBUFFERARB: procedure(target: GLenum; buffer: GLuint); stdcall;
  GLDELETEBUFFERSARB: procedure(n: GLsizei; buffers: PGLuint); stdcall;
  GLGENBUFFERSARB: procedure(n: GLsizei; buffers: PGLuint); stdcall;
  GLISBUFFERARB: function(buffer: GLuint): GLboolean; stdcall;
  GLBUFFERDATAARB: procedure(target: GLenum; size: GLsizeiptrARB; data: PGLvoid; usage: GLenum); stdcall;
  GLBUFFERSUBDATAARB: procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); stdcall;
  GLGETBUFFERSUBDATAARB: procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); stdcall;
  GLMAPBUFFERARB: function(target: GLenum; access: GLenum): PGLvoid; stdcall;
  GLUNMAPBUFFERARB: function(target: GLenum): GLboolean; stdcall;
  GLGETBUFFERPARAMETERIVARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETBUFFERPOINTERVARB: procedure(target: GLenum; pname: GLenum; params: PGLvoid); stdcall;

(*** GL_ARB_occlusion_query ***)
  GLGENQUERIESARB: procedure(n: GLsizei; ids: PGLuint); stdcall;
  GLDELETEQUERIESARB: procedure(n: GLsizei; ids: PGLuint); stdcall;
  GLISQUERYARB: function(id: GLuint): GLboolean; stdcall;
  GLBEGINQUERYARB: procedure(target: GLenum; id: GLuint); stdcall;
  GLENDQUERYARB: procedure(target: GLenum); stdcall;
  GLGETQUERYIVARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETQUERYOBJECTIVARB: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETQUERYOBJECTUIVARB: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall;

(*** GL_ARB_shader_objects ***)
  GLDELETEOBJECTARB: procedure(obj: GLhandleARB); stdcall;
  GLGETHANDLEARB: function(pname: GLenum): GLhandleARB; stdcall;
  GLDETACHOBJECTARB: procedure(containerObj: GLhandleARB; attachedObj: GLhandleARB); stdcall;
  GLCREATESHADEROBJECTARB: function(shaderType: GLenum): GLhandleARB; stdcall;
  GLSHADERSOURCEARB: procedure(shaderObj: GLhandleARB; count: GLsizei; eString: PGLcharARB; length: PGLint); stdcall;
  GLCOMPILESHADERARB: procedure(shaderObj: GLhandleARB); stdcall;
  GLCREATEPROGRAMOBJECTARB: function: GLhandleARB; stdcall;
  GLATTACHOBJECTARB: procedure(containerObj: GLhandleARB; obj: GLhandleARB); stdcall;
  GLLINKPROGRAMARB: procedure(programObj: GLhandleARB); stdcall;
  GLUSEPROGRAMOBJECTARB: procedure(programObj: GLhandleARB); stdcall;
  GLVALIDATEPROGRAMARB: procedure(programObj: GLhandleARB); stdcall;
  GLUNIFORM1FARB: procedure(location: GLint; v0: GLfloat); stdcall;
  GLUNIFORM2FARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat); stdcall;
  GLUNIFORM3FARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall;
  GLUNIFORM4FARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall;
  GLUNIFORM1IARB: procedure(location: GLint; v0: GLint); stdcall;
  GLUNIFORM2IARB: procedure(location: GLint; v0: GLint; v1: GLint); stdcall;
  GLUNIFORM3IARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall;
  GLUNIFORM4IARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall;
  GLUNIFORM1FVARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall;
  GLUNIFORM2FVARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall;
  GLUNIFORM3FVARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall;
  GLUNIFORM4FVARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall;
  GLUNIFORM1IVARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall;
  GLUNIFORM2IVARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall;
  GLUNIFORM3IVARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall;
  GLUNIFORM4IVARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall;
  GLUNIFORMMATRIX2FVARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall;
  GLUNIFORMMATRIX3FVARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall;
  GLUNIFORMMATRIX4FVARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall;
  GLGETOBJECTPARAMETERFVARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLfloat); stdcall;
  GLGETOBJECTPARAMETERIVARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLint); stdcall;
  GLGETINFOLOGARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; infoLog: PGLcharARB); stdcall;
  GLGETATTACHEDOBJECTSARB: procedure(containerObj: GLhandleARB; maxCount: GLsizei; count: PGLsizei; obj: PGLhandleARB); stdcall;
  GLGETUNIFORMLOCATIONARB: function(programObj: GLhandleARB; name: PGLcharARB): GLint; stdcall;
  GLGETACTIVEUNIFORMARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; eType: PGLenum; name: PGLcharARB); stdcall;
  GLGETUNIFORMFVARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); stdcall;
  GLGETUNIFORMIVARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLint); stdcall;
  GLGETSHADERSOURCEARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; source: PGLcharARB); stdcall;

(*** GL_ARB_vertex_shader ***)
  GLBINDATTRIBLOCATIONARB: procedure(programObj: GLhandleARB; index: GLuint; name: PGLcharARB); stdcall;
  GLGETACTIVEATTRIBARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; eType: PGLenum; name: PGLcharARB); stdcall;
  GLGETATTRIBLOCATIONARB: function(programObj: GLhandleARB; name: PGLcharARB): GLint; stdcall;

(*** GL_ARB_fragment_shader ***)

(*** GL_ARB_shading_language_100 ***)

(*** GL_ARB_texture_non_power_of_two ***)

(*** GL_ARB_point_sprite ***)

(*** GL_ARB_fragment_program_shadow ***)

(*** GL_ARB_draw_buffers ***)
  GLDRAWBUFFERSARB: procedure(n: GLsizei; bufs: PGLenum); stdcall;

(*** GL_ARB_texture_rectangle ***)

(*** GL_ARB_color_buffer_float ***)
  GLCLAMPCOLORARB: procedure(target: GLenum; clamp: GLenum); stdcall;

(*** GL_ARB_half_float_pixel ***)

(*** GL_ARB_texture_float ***)

(*** GL_ARB_pixel_buffer_object ***)

(*** GL_EXT_abgr ***)

(*** GL_EXT_blend_color ***)
  GLBLENDCOLOREXT: procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); stdcall;

(*** GL_EXT_polygon_offset ***)
  GLPOLYGONOFFSETEXT: procedure(factor: GLfloat; bias: GLfloat); stdcall;

(*** GL_EXT_texture ***)

(*** GL_EXT_texture3D ***)
  GLTEXIMAGE3DEXT: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; eType: GLenum; pixels: PGLvoid); stdcall;
  GLTEXSUBIMAGE3DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; eType: GLenum; pixels: PGLvoid); stdcall;

(*** GL_SGIS_texture_filter4 ***)
  GLGETTEXFILTERFUNCSGIS: procedure(target: GLenum; filter: GLenum; weights: PGLfloat); stdcall;
  GLTEXFILTERFUNCSGIS: procedure(target: GLenum; filter: GLenum; n: GLsizei; weights: PGLfloat); stdcall;

(*** GL_EXT_subtexture ***)
  GLTEXSUBIMAGE1DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; eType: GLenum; pixels: PGLvoid); stdcall;
  GLTEXSUBIMAGE2DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; eType: GLenum; pixels: PGLvoid); stdcall;

(*** GL_EXT_copy_texture ***)
  GLCOPYTEXIMAGE1DEXT: procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); stdcall;
  GLCOPYTEXIMAGE2DEXT: procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); stdcall;
  GLCOPYTEXSUBIMAGE1DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); stdcall;
  GLCOPYTEXSUBIMAGE2DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
  GLCOPYTEXSUBIMAGE3DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;

(*** GL_EXT_histogram ***)
  GLGETHISTOGRAMEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; eType: GLenum; values: PGLvoid); stdcall;
  GLGETHISTOGRAMPARAMETERFVEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETHISTOGRAMPARAMETERIVEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETMINMAXEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; eType: GLenum; values: PGLvoid); stdcall;
  GLGETMINMAXPARAMETERFVEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETMINMAXPARAMETERIVEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLHISTOGRAMEXT: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); stdcall;
  GLMINMAXEXT: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); stdcall;
  GLRESETHISTOGRAMEXT: procedure(target: GLenum); stdcall;
  GLRESETMINMAXEXT: procedure(target: GLenum); stdcall;

(*** GL_EXT_convolution ***)
  GLCONVOLUTIONFILTER1DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; eType: GLenum; image: PGLvoid); stdcall;
  GLCONVOLUTIONFILTER2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; eType: GLenum; image: PGLvoid); stdcall;
  GLCONVOLUTIONPARAMETERFEXT: procedure(target: GLenum; pname: GLenum; params: GLfloat); stdcall;
  GLCONVOLUTIONPARAMETERFVEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLCONVOLUTIONPARAMETERIEXT: procedure(target: GLenum; pname: GLenum; params: GLint); stdcall;
  GLCONVOLUTIONPARAMETERIVEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLCOPYCONVOLUTIONFILTER1DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall;
  GLCOPYCONVOLUTIONFILTER2DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
  GLGETCONVOLUTIONFILTEREXT: procedure(target: GLenum; format: GLenum; eType: GLenum; image: PGLvoid); stdcall;
  GLGETCONVOLUTIONPARAMETERFVEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETCONVOLUTIONPARAMETERIVEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETSEPARABLEFILTEREXT: procedure(target: GLenum; format: GLenum; eType: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); stdcall;
  GLSEPARABLEFILTER2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; eType: GLenum; row: PGLvoid; column: PGLvoid); stdcall;

(*** GL_EXT_color_matrix ***)

(*** GL_SGI_color_table ***)
  GLCOLORTABLESGI: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; eType: GLenum; table: PGLvoid); stdcall;
  GLCOLORTABLEPARAMETERFVSGI: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLCOLORTABLEPARAMETERIVSGI: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLCOPYCOLORTABLESGI: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall;
  GLGETCOLORTABLESGI: procedure(target: GLenum; format: GLenum; eType: GLenum; table: PGLvoid); stdcall;
  GLGETCOLORTABLEPARAMETERFVSGI: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETCOLORTABLEPARAMETERIVSGI: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;

(*** GL_SGIX_pixel_texture ***)
  GLPIXELTEXGENSGIX: procedure(mode: GLenum); stdcall;

(*** GL_SGIS_pixel_texture ***)
  GLPIXELTEXGENPARAMETERISGIS: procedure(pname: GLenum; param: GLint); stdcall;
  GLPIXELTEXGENPARAMETERIVSGIS: procedure(pname: GLenum; params: PGLint); stdcall;
  GLPIXELTEXGENPARAMETERFSGIS: procedure(pname: GLenum; param: GLfloat); stdcall;
  GLPIXELTEXGENPARAMETERFVSGIS: procedure(pname: GLenum; params: PGLfloat); stdcall;
  GLGETPIXELTEXGENPARAMETERIVSGIS: procedure(pname: GLenum; params: PGLint); stdcall;
  GLGETPIXELTEXGENPARAMETERFVSGIS: procedure(pname: GLenum; params: PGLfloat); stdcall;

(*** GL_SGIS_texture4D ***)
  GLTEXIMAGE4DSGIS: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; size4d: GLsizei; border: GLint; format: GLenum; eType: GLenum; pixels: PGLvoid); stdcall;
  GLTEXSUBIMAGE4DSGIS: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; woffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; size4d: GLsizei; format: GLenum; eType: GLenum; pixels: PGLvoid); stdcall;

(*** GL_SGI_texture_color_table ***)

(*** GL_EXT_cmyka ***)

(*** GL_EXT_texture_object ***)
  GLARETEXTURESRESIDENTEXT: function(n: GLsizei; textures: PGLuint; residences: PGLboolean): GLboolean; stdcall;
  GLBINDTEXTUREEXT: procedure(target: GLenum; texture: GLuint); stdcall;
  GLDELETETEXTURESEXT: procedure(n: GLsizei; textures: PGLuint); stdcall;
  GLGENTEXTURESEXT: procedure(n: GLsizei; textures: PGLuint); stdcall;
  GLISTEXTUREEXT: function(texture: GLuint): GLboolean; stdcall;
  GLPRIORITIZETEXTURESEXT: procedure(n: GLsizei; textures: PGLuint; priorities: PGLclampf); stdcall;

(*** GL_SGIS_detail_texture ***)
  GLDETAILTEXFUNCSGIS: procedure(target: GLenum; n: GLsizei; points: PGLfloat); stdcall;
  GLGETDETAILTEXFUNCSGIS: procedure(target: GLenum; points: PGLfloat); stdcall;

(*** GL_SGIS_sharpen_texture ***)
  GLSHARPENTEXFUNCSGIS: procedure(target: GLenum; n: GLsizei; points: PGLfloat); stdcall;
  GLGETSHARPENTEXFUNCSGIS: procedure(target: GLenum; points: PGLfloat); stdcall;

(*** GL_EXT_packed_pixels ***)

(*** GL_SGIS_texture_lod ***)

(*** GL_SGIS_multisample ***)
  GLSAMPLEMASKSGIS: procedure(value: GLclampf; invert: GLboolean); stdcall;
  GLSAMPLEPATTERNSGIS: procedure(pattern: GLenum); stdcall;

(*** GL_EXT_rescale_normal ***)

(*** GL_EXT_vertex_array ***)
  GLARRAYELEMENTEXT: procedure(i: GLint); stdcall;
  GLCOLORPOINTEREXT: procedure(size: GLint; eType: GLenum; stride: GLsizei; count: GLsizei; pointer: PGLvoid); stdcall;
  GLDRAWARRAYSEXT: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall;
  GLEDGEFLAGPOINTEREXT: procedure(stride: GLsizei; count: GLsizei; pointer: PGLboolean); stdcall;
  GLGETPOINTERVEXT: procedure(pname: GLenum; params: PGLvoid); stdcall;
  GLINDEXPOINTEREXT: procedure(eType: GLenum; stride: GLsizei; count: GLsizei; pointer: PGLvoid); stdcall;
  GLNORMALPOINTEREXT: procedure(eType: GLenum; stride: GLsizei; count: GLsizei; pointer: PGLvoid); stdcall;
  GLTEXCOORDPOINTEREXT: procedure(size: GLint; eType: GLenum; stride: GLsizei; count: GLsizei; pointer: PGLvoid); stdcall;
  GLVERTEXPOINTEREXT: procedure(size: GLint; eType: GLenum; stride: GLsizei; count: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_EXT_misc_attribute ***)

(*** GL_SGIS_generate_mipmap ***)

(*** GL_SGIX_clipmap ***)

(*** GL_SGIX_shadow ***)

(*** GL_SGIS_texture_edge_clamp ***)

(*** GL_SGIS_texture_border_clamp ***)

(*** GL_EXT_blend_minmax ***)
  GLBLENDEQUATIONEXT: procedure(mode: GLenum); stdcall;

(*** GL_EXT_blend_subtract ***)

(*** GL_EXT_blend_logic_op ***)

(*** GL_SGIX_interlace ***)

(*** GL_SGIX_pixel_tiles ***)

(*** GL_SGIX_texture_select ***)

(*** GL_SGIX_sprite ***)
  GLSPRITEPARAMETERFSGIX: procedure(pname: GLenum; param: GLfloat); stdcall;
  GLSPRITEPARAMETERFVSGIX: procedure(pname: GLenum; params: PGLfloat); stdcall;
  GLSPRITEPARAMETERISGIX: procedure(pname: GLenum; param: GLint); stdcall;
  GLSPRITEPARAMETERIVSGIX: procedure(pname: GLenum; params: PGLint); stdcall;

(*** GL_SGIX_texture_multi_buffer ***)

(*** GL_EXT_point_parameters ***)
  GLPOINTPARAMETERFEXT: procedure(pname: GLenum; param: GLfloat); stdcall;
  GLPOINTPARAMETERFVEXT: procedure(pname: GLenum; params: PGLfloat); stdcall;

(*** GL_SGIS_point_parameters ***)
  GLPOINTPARAMETERFSGIS: procedure(pname: GLenum; param: GLfloat); stdcall;
  GLPOINTPARAMETERFVSGIS: procedure(pname: GLenum; params: PGLfloat); stdcall;

(*** GL_SGIX_instruments ***)
  GLGETINSTRUMENTSSGIX: function: GLint; stdcall;
  GLINSTRUMENTSBUFFERSGIX: procedure(size: GLsizei; buffer: PGLint); stdcall;
  GLPOLLINSTRUMENTSSGIX: function(marker_p: PGLint): GLint; stdcall;
  GLREADINSTRUMENTSSGIX: procedure(marker: GLint); stdcall;
  GLSTARTINSTRUMENTSSGIX: procedure; stdcall;
  GLSTOPINSTRUMENTSSGIX: procedure(marker: GLint); stdcall;

(*** GL_SGIX_texture_scale_bias ***)

(*** GL_SGIX_framezoom ***)
  GLFRAMEZOOMSGIX: procedure(factor: GLint); stdcall;

(*** GL_SGIX_tag_sample_buffer ***)
  GLTAGSAMPLEBUFFERSGIX: procedure; stdcall;

(*** GL_SGIX_polynomial_ffd ***)
  GLDEFORMATIONMAP3DSGIX: procedure(target: GLenum; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; w1: GLdouble; w2: GLdouble; wstride: GLint; worder: GLint; points: PGLdouble); stdcall;
  GLDEFORMATIONMAP3FSGIX: procedure(target: GLenum; u1: GLfloat; u2: GLfloat; ustride: GLint; uorder: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; w1: GLfloat; w2: GLfloat; wstride: GLint; worder: GLint; points: PGLfloat); stdcall;
  GLDEFORMSGIX: procedure(mask: GLbitfield); stdcall;
  GLLOADIDENTITYDEFORMATIONMAPSGIX: procedure(mask: GLbitfield); stdcall;

(*** GL_SGIX_reference_plane ***)
  GLREFERENCEPLANESGIX: procedure(equation: PGLdouble); stdcall;

(*** GL_SGIX_flush_raster ***)
  GLFLUSHRASTERSGIX: procedure; stdcall;

(*** GL_SGIX_depth_texture ***)

(*** GL_SGIS_fog_function ***)
  GLFOGFUNCSGIS: procedure(n: GLsizei; points: PGLfloat); stdcall;
  GLGETFOGFUNCSGIS: procedure(points: PGLfloat); stdcall;

(*** GL_SGIX_fog_offset ***)

(*** GL_HP_image_transform ***)
  GLIMAGETRANSFORMPARAMETERIHP: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall;
  GLIMAGETRANSFORMPARAMETERFHP: procedure(target: GLenum; pname: GLenum; param: GLfloat); stdcall;
  GLIMAGETRANSFORMPARAMETERIVHP: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLIMAGETRANSFORMPARAMETERFVHP: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETIMAGETRANSFORMPARAMETERIVHP: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETIMAGETRANSFORMPARAMETERFVHP: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;

(*** GL_HP_convolution_border_modes ***)

(*** GL_SGIX_texture_add_env ***)

(*** GL_EXT_color_subtable ***)
  GLCOLORSUBTABLEEXT: procedure(target: GLenum; aStart: GLsizei; count: GLsizei; format: GLenum; eType: GLenum; data: PGLvoid); stdcall;
  GLCOPYCOLORSUBTABLEEXT: procedure(target: GLenum; aStart: GLsizei; x: GLint; y: GLint; width: GLsizei); stdcall;

(*** GL_PGI_vertex_hints ***)

(*** GL_PGI_misc_hints ***)
  GLHINTPGI: procedure(target: GLenum; mode: GLint); stdcall;

(*** GL_EXT_paletted_texture ***)
  GLCOLORTABLEEXT: procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; eType: GLenum; table: PGLvoid); stdcall;
  GLGETCOLORTABLEEXT: procedure(target: GLenum; format: GLenum; eType: GLenum; data: PGLvoid); stdcall;
  GLGETCOLORTABLEPARAMETERIVEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETCOLORTABLEPARAMETERFVEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;

(*** GL_EXT_clip_volume_hint ***)

(*** GL_SGIX_list_priority ***)
  GLGETLISTPARAMETERFVSGIX: procedure(list: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLGETLISTPARAMETERIVSGIX: procedure(list: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLLISTPARAMETERFSGIX: procedure(list: GLuint; pname: GLenum; param: GLfloat); stdcall;
  GLLISTPARAMETERFVSGIX: procedure(list: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLLISTPARAMETERISGIX: procedure(list: GLuint; pname: GLenum; param: GLint); stdcall;
  GLLISTPARAMETERIVSGIX: procedure(list: GLuint; pname: GLenum; params: PGLint); stdcall;

(*** GL_SGIX_ir_instrument1 ***)

(*** GL_SGIX_calligraphic_fragment ***)

(*** GL_SGIX_texture_lod_bias ***)

(*** GL_SGIX_shadow_ambient ***)

(*** GL_EXT_index_texture ***)

(*** GL_EXT_index_material ***)
  GLINDEXMATERIALEXT: procedure(face: GLenum; mode: GLenum); stdcall;

(*** GL_EXT_index_func ***)
  GLINDEXFUNCEXT: procedure(func: GLenum; ref: GLclampf); stdcall;

(*** GL_EXT_index_array_formats ***)

(*** GL_EXT_compiled_vertex_array ***)
  GLLOCKARRAYSEXT: procedure(first: GLint; count: GLsizei); stdcall;
  GLUNLOCKARRAYSEXT: procedure; stdcall;

(*** GL_EXT_cull_vertex ***)
  GLCULLPARAMETERDVEXT: procedure(pname: GLenum; params: PGLdouble); stdcall;
  GLCULLPARAMETERFVEXT: procedure(pname: GLenum; params: PGLfloat); stdcall;

(*** GL_SGIX_ycrcb ***)

(*** GL_SGIX_fragment_lighting ***)
  GLFRAGMENTCOLORMATERIALSGIX: procedure(face: GLenum; mode: GLenum); stdcall;
  GLFRAGMENTLIGHTFSGIX: procedure(light: GLenum; pname: GLenum; param: GLfloat); stdcall;
  GLFRAGMENTLIGHTFVSGIX: procedure(light: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLFRAGMENTLIGHTISGIX: procedure(light: GLenum; pname: GLenum; param: GLint); stdcall;
  GLFRAGMENTLIGHTIVSGIX: procedure(light: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLFRAGMENTLIGHTMODELFSGIX: procedure(pname: GLenum; param: GLfloat); stdcall;
  GLFRAGMENTLIGHTMODELFVSGIX: procedure(pname: GLenum; params: PGLfloat); stdcall;
  GLFRAGMENTLIGHTMODELISGIX: procedure(pname: GLenum; param: GLint); stdcall;
  GLFRAGMENTLIGHTMODELIVSGIX: procedure(pname: GLenum; params: PGLint); stdcall;
  GLFRAGMENTMATERIALFSGIX: procedure(face: GLenum; pname: GLenum; param: GLfloat); stdcall;
  GLFRAGMENTMATERIALFVSGIX: procedure(face: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLFRAGMENTMATERIALISGIX: procedure(face: GLenum; pname: GLenum; param: GLint); stdcall;
  GLFRAGMENTMATERIALIVSGIX: procedure(face: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETFRAGMENTLIGHTFVSGIX: procedure(light: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETFRAGMENTLIGHTIVSGIX: procedure(light: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETFRAGMENTMATERIALFVSGIX: procedure(face: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETFRAGMENTMATERIALIVSGIX: procedure(face: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLLIGHTENVISGIX: procedure(pname: GLenum; param: GLint); stdcall;

(*** GL_IBM_rasterpos_clip ***)

(*** GL_HP_texture_lighting ***)

(*** GL_EXT_draw_range_elements ***)
  GLDRAWRANGEELEMENTSEXT: procedure(mode: GLenum; aStart: GLuint; aEnd: GLuint; count: GLsizei; eType: GLenum; indices: PGLvoid); stdcall;

(*** GL_WIN_phong_shading ***)

(*** GL_WIN_specular_fog ***)

(*** GL_EXT_light_texture ***)
  GLAPPLYTEXTUREEXT: procedure(mode: GLenum); stdcall;
  GLTEXTURELIGHTEXT: procedure(pname: GLenum); stdcall;
  GLTEXTUREMATERIALEXT: procedure(face: GLenum; mode: GLenum); stdcall;

(*** GL_SGIX_blend_alpha_minmax ***)

(*** GL_EXT_bgra ***)

(*** GL_SGIX_async ***)
  GLASYNCMARKERSGIX: procedure(marker: GLuint); stdcall;
  GLFINISHASYNCSGIX: function(markerp: PGLuint): GLint; stdcall;
  GLPOLLASYNCSGIX: function(markerp: PGLuint): GLint; stdcall;
  GLGENASYNCMARKERSSGIX: function(range: GLsizei): GLuint; stdcall;
  GLDELETEASYNCMARKERSSGIX: procedure(marker: GLuint; range: GLsizei); stdcall;
  GLISASYNCMARKERSGIX: function(marker: GLuint): GLboolean; stdcall;

(*** GL_SGIX_async_pixel ***)

(*** GL_SGIX_async_histogram ***)

(*** GL_INTEL_parallel_arrays ***)
  GLVERTEXPOINTERVINTEL: procedure(size: GLint; eType: GLenum; pointer: PGLvoid); stdcall;
  GLNORMALPOINTERVINTEL: procedure(eType: GLenum; pointer: PGLvoid); stdcall;
  GLCOLORPOINTERVINTEL: procedure(size: GLint; eType: GLenum; pointer: PGLvoid); stdcall;
  GLTEXCOORDPOINTERVINTEL: procedure(size: GLint; eType: GLenum; pointer: PGLvoid); stdcall;

(*** GL_HP_occlusion_test ***)

(*** GL_EXT_pixel_transform ***)
  GLPIXELTRANSFORMPARAMETERIEXT: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall;
  GLPIXELTRANSFORMPARAMETERFEXT: procedure(target: GLenum; pname: GLenum; param: GLfloat); stdcall;
  GLPIXELTRANSFORMPARAMETERIVEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLPIXELTRANSFORMPARAMETERFVEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;

(*** GL_EXT_pixel_transform_color_table ***)

(*** GL_EXT_shared_texture_palette ***)

(*** GL_EXT_separate_specular_color ***)

(*** GL_EXT_secondary_color ***)
  GLSECONDARYCOLOR3BEXT: procedure(red: GLbyte; green: GLbyte; blue: GLbyte); stdcall;
  GLSECONDARYCOLOR3BVEXT: procedure(v: PGLbyte); stdcall;
  GLSECONDARYCOLOR3DEXT: procedure(red: GLdouble; green: GLdouble; blue: GLdouble); stdcall;
  GLSECONDARYCOLOR3DVEXT: procedure(v: PGLdouble); stdcall;
  GLSECONDARYCOLOR3FEXT: procedure(red: GLfloat; green: GLfloat; blue: GLfloat); stdcall;
  GLSECONDARYCOLOR3FVEXT: procedure(v: PGLfloat); stdcall;
  GLSECONDARYCOLOR3IEXT: procedure(red: GLint; green: GLint; blue: GLint); stdcall;
  GLSECONDARYCOLOR3IVEXT: procedure(v: PGLint); stdcall;
  GLSECONDARYCOLOR3SEXT: procedure(red: GLshort; green: GLshort; blue: GLshort); stdcall;
  GLSECONDARYCOLOR3SVEXT: procedure(v: PGLshort); stdcall;
  GLSECONDARYCOLOR3UBEXT: procedure(red: GLubyte; green: GLubyte; blue: GLubyte); stdcall;
  GLSECONDARYCOLOR3UBVEXT: procedure(v: PGLubyte); stdcall;
  GLSECONDARYCOLOR3UIEXT: procedure(red: GLuint; green: GLuint; blue: GLuint); stdcall;
  GLSECONDARYCOLOR3UIVEXT: procedure(v: PGLuint); stdcall;
  GLSECONDARYCOLOR3USEXT: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall;
  GLSECONDARYCOLOR3USVEXT: procedure(v: PGLushort); stdcall;
  GLSECONDARYCOLORPOINTEREXT: procedure(size: GLint; eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_EXT_texture_perturb_normal ***)
  GLTEXTURENORMALEXT: procedure(mode: GLenum); stdcall;

(*** GL_EXT_multi_draw_arrays ***)
  GLMULTIDRAWARRAYSEXT: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); stdcall;
  GLMULTIDRAWELEMENTSEXT: procedure(mode: GLenum; count: PGLsizei; eType: GLenum; indices: PGLvoid; primcount: GLsizei); stdcall;

(*** GL_EXT_fog_coord ***)
  GLFOGCOORDFEXT: procedure(coord: GLfloat); stdcall;
  GLFOGCOORDFVEXT: procedure(coord: PGLfloat); stdcall;
  GLFOGCOORDDEXT: procedure(coord: GLdouble); stdcall;
  GLFOGCOORDDVEXT: procedure(coord: PGLdouble); stdcall;
  GLFOGCOORDPOINTEREXT: procedure(eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_REND_screen_coordinates ***)

(*** GL_EXT_coordinate_frame ***)
  GLTANGENT3BEXT: procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); stdcall;
  GLTANGENT3BVEXT: procedure(v: PGLbyte); stdcall;
  GLTANGENT3DEXT: procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); stdcall;
  GLTANGENT3DVEXT: procedure(v: PGLdouble); stdcall;
  GLTANGENT3FEXT: procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); stdcall;
  GLTANGENT3FVEXT: procedure(v: PGLfloat); stdcall;
  GLTANGENT3IEXT: procedure(tx: GLint; ty: GLint; tz: GLint); stdcall;
  GLTANGENT3IVEXT: procedure(v: PGLint); stdcall;
  GLTANGENT3SEXT: procedure(tx: GLshort; ty: GLshort; tz: GLshort); stdcall;
  GLTANGENT3SVEXT: procedure(v: PGLshort); stdcall;
  GLBINORMAL3BEXT: procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); stdcall;
  GLBINORMAL3BVEXT: procedure(v: PGLbyte); stdcall;
  GLBINORMAL3DEXT: procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); stdcall;
  GLBINORMAL3DVEXT: procedure(v: PGLdouble); stdcall;
  GLBINORMAL3FEXT: procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); stdcall;
  GLBINORMAL3FVEXT: procedure(v: PGLfloat); stdcall;
  GLBINORMAL3IEXT: procedure(bx: GLint; by: GLint; bz: GLint); stdcall;
  GLBINORMAL3IVEXT: procedure(v: PGLint); stdcall;
  GLBINORMAL3SEXT: procedure(bx: GLshort; by: GLshort; bz: GLshort); stdcall;
  GLBINORMAL3SVEXT: procedure(v: PGLshort); stdcall;
  GLTANGENTPOINTEREXT: procedure(eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;
  GLBINORMALPOINTEREXT: procedure(eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_EXT_texture_env_combine ***)

(*** GL_APPLE_specular_vector ***)

(*** GL_APPLE_transform_hint ***)

(*** GL_SGIX_fog_scale ***)

(*** GL_SUNX_constant_data ***)
  GLFINISHTEXTURESUNX: procedure; stdcall;

(*** GL_SUN_global_alpha ***)
  GLGLOBALALPHAFACTORBSUN: procedure(factor: GLbyte); stdcall;
  GLGLOBALALPHAFACTORSSUN: procedure(factor: GLshort); stdcall;
  GLGLOBALALPHAFACTORISUN: procedure(factor: GLint); stdcall;
  GLGLOBALALPHAFACTORFSUN: procedure(factor: GLfloat); stdcall;
  GLGLOBALALPHAFACTORDSUN: procedure(factor: GLdouble); stdcall;
  GLGLOBALALPHAFACTORUBSUN: procedure(factor: GLubyte); stdcall;
  GLGLOBALALPHAFACTORUSSUN: procedure(factor: GLushort); stdcall;
  GLGLOBALALPHAFACTORUISUN: procedure(factor: GLuint); stdcall;

(*** GL_SUN_triangle_list ***)
  GLREPLACEMENTCODEUISUN: procedure(code: GLuint); stdcall;
  GLREPLACEMENTCODEUSSUN: procedure(code: GLushort); stdcall;
  GLREPLACEMENTCODEUBSUN: procedure(code: GLubyte); stdcall;
  GLREPLACEMENTCODEUIVSUN: procedure(code: PGLuint); stdcall;
  GLREPLACEMENTCODEUSVSUN: procedure(code: PGLushort); stdcall;
  GLREPLACEMENTCODEUBVSUN: procedure(code: PGLubyte); stdcall;
  GLREPLACEMENTCODEPOINTERSUN: procedure(eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_SUN_vertex ***)
  GLCOLOR4UBVERTEX2FSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); stdcall;
  GLCOLOR4UBVERTEX2FVSUN: procedure(c: PGLubyte; v: PGLfloat); stdcall;
  GLCOLOR4UBVERTEX3FSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLCOLOR4UBVERTEX3FVSUN: procedure(c: PGLubyte; v: PGLfloat); stdcall;
  GLCOLOR3FVERTEX3FSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLCOLOR3FVERTEX3FVSUN: procedure(c: PGLfloat; v: PGLfloat); stdcall;
  GLNORMAL3FVERTEX3FSUN: procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLNORMAL3FVERTEX3FVSUN: procedure(n: PGLfloat; v: PGLfloat); stdcall;
  GLCOLOR4FNORMAL3FVERTEX3FSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLCOLOR4FNORMAL3FVERTEX3FVSUN: procedure(c: PGLfloat; n: PGLfloat; v: PGLfloat); stdcall;
  GLTEXCOORD2FVERTEX3FSUN: procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLTEXCOORD2FVERTEX3FVSUN: procedure(tc: PGLfloat; v: PGLfloat); stdcall;
  GLTEXCOORD4FVERTEX4FSUN: procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLTEXCOORD4FVERTEX4FVSUN: procedure(tc: PGLfloat; v: PGLfloat); stdcall;
  GLTEXCOORD2FCOLOR4UBVERTEX3FSUN: procedure(s: GLfloat; t: GLfloat; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLTEXCOORD2FCOLOR4UBVERTEX3FVSUN: procedure(tc: PGLfloat; c: PGLubyte; v: PGLfloat); stdcall;
  GLTEXCOORD2FCOLOR3FVERTEX3FSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLTEXCOORD2FCOLOR3FVERTEX3FVSUN: procedure(tc: PGLfloat; c: PGLfloat; v: PGLfloat); stdcall;
  GLTEXCOORD2FNORMAL3FVERTEX3FSUN: procedure(s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLTEXCOORD2FNORMAL3FVERTEX3FVSUN: procedure(tc: PGLfloat; n: PGLfloat; v: PGLfloat); stdcall;
  GLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUN: procedure(tc: PGLfloat; c: PGLfloat; n: PGLfloat; v: PGLfloat); stdcall;
  GLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUN: procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUN: procedure(tc: PGLfloat; c: PGLfloat; n: PGLfloat; v: PGLfloat); stdcall;
  GLREPLACEMENTCODEUIVERTEX3FSUN: procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLREPLACEMENTCODEUIVERTEX3FVSUN: procedure(rc: PGLuint; v: PGLfloat); stdcall;
  GLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUN: procedure(rc: GLuint; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUN: procedure(rc: PGLuint; c: PGLubyte; v: PGLfloat); stdcall;
  GLREPLACEMENTCODEUICOLOR3FVERTEX3FSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUN: procedure(rc: PGLuint; c: PGLfloat; v: PGLfloat); stdcall;
  GLREPLACEMENTCODEUINORMAL3FVERTEX3FSUN: procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUN: procedure(rc: PGLuint; n: PGLfloat; v: PGLfloat); stdcall;
  GLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUN: procedure(rc: PGLuint; c: PGLfloat; n: PGLfloat; v: PGLfloat); stdcall;
  GLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUN: procedure(rc: PGLuint; tc: PGLfloat; v: PGLfloat); stdcall;
  GLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUN: procedure(rc: PGLuint; tc: PGLfloat; n: PGLfloat; v: PGLfloat); stdcall;
  GLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUN: procedure(rc: PGLuint; tc: PGLfloat; c: PGLfloat; n: PGLfloat; v: PGLfloat); stdcall;

(*** GL_EXT_blend_func_separate ***)
  GLBLENDFUNCSEPARATEEXT: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall;

(*** GL_INGR_blend_func_separate ***)
  GLBLENDFUNCSEPARATEINGR: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall;

(*** GL_INGR_color_clamp ***)

(*** GL_INGR_interlace_read ***)

(*** GL_EXT_stencil_wrap ***)

(*** GL_EXT_422_pixels ***)

(*** GL_NV_texgen_reflection ***)

(*** GL_SUN_convolution_border_modes ***)

(*** GL_EXT_texture_env_add ***)

(*** GL_EXT_texture_lod_bias ***)

(*** GL_EXT_texture_filter_anisotropic ***)

(*** GL_EXT_vertex_weighting ***)
  GLVERTEXWEIGHTFEXT: procedure(weight: GLfloat); stdcall;
  GLVERTEXWEIGHTFVEXT: procedure(weight: PGLfloat); stdcall;
  GLVERTEXWEIGHTPOINTEREXT: procedure(size: GLsizei; eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_NV_light_max_exponent ***)

(*** GL_NV_vertex_array_range ***)
  GLFLUSHVERTEXARRAYRANGENV: procedure; stdcall;
  GLVERTEXARRAYRANGENV: procedure(length: GLsizei; pointer: PGLvoid); stdcall;

(*** GL_NV_register_combiners ***)
  GLCOMBINERPARAMETERFVNV: procedure(pname: GLenum; params: PGLfloat); stdcall;
  GLCOMBINERPARAMETERFNV: procedure(pname: GLenum; param: GLfloat); stdcall;
  GLCOMBINERPARAMETERIVNV: procedure(pname: GLenum; params: PGLint); stdcall;
  GLCOMBINERPARAMETERINV: procedure(pname: GLenum; param: GLint); stdcall;
  GLCOMBINERINPUTNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); stdcall;
  GLCOMBINEROUTPUTNV: procedure(stage: GLenum; portion: GLenum; abOutput: GLenum; cdOutput: GLenum; sumOutput: GLenum; scale: GLenum; bias: GLenum; abDotProduct: GLboolean; cdDotProduct: GLboolean; muxSum: GLboolean); stdcall;
  GLFINALCOMBINERINPUTNV: procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); stdcall;
  GLGETCOMBINERINPUTPARAMETERFVNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETCOMBINERINPUTPARAMETERIVNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETCOMBINEROUTPUTPARAMETERFVNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETCOMBINEROUTPUTPARAMETERIVNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETFINALCOMBINERINPUTPARAMETERFVNV: procedure(variable: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETFINALCOMBINERINPUTPARAMETERIVNV: procedure(variable: GLenum; pname: GLenum; params: PGLint); stdcall;

(*** GL_NV_fog_distance ***)

(*** GL_NV_texgen_emboss ***)

(*** GL_NV_blend_square ***)

(*** GL_NV_texture_env_combine4 ***)

(*** GL_MESA_resize_buffers ***)
  GLRESIZEBUFFERSMESA: procedure; stdcall;

(*** GL_MESA_window_pos ***)
  GLWINDOWPOS2DMESA: procedure(x: GLdouble; y: GLdouble); stdcall;
  GLWINDOWPOS2DVMESA: procedure(v: PGLdouble); stdcall;
  GLWINDOWPOS2FMESA: procedure(x: GLfloat; y: GLfloat); stdcall;
  GLWINDOWPOS2FVMESA: procedure(v: PGLfloat); stdcall;
  GLWINDOWPOS2IMESA: procedure(x: GLint; y: GLint); stdcall;
  GLWINDOWPOS2IVMESA: procedure(v: PGLint); stdcall;
  GLWINDOWPOS2SMESA: procedure(x: GLshort; y: GLshort); stdcall;
  GLWINDOWPOS2SVMESA: procedure(v: PGLshort); stdcall;
  GLWINDOWPOS3DMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
  GLWINDOWPOS3DVMESA: procedure(v: PGLdouble); stdcall;
  GLWINDOWPOS3FMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLWINDOWPOS3FVMESA: procedure(v: PGLfloat); stdcall;
  GLWINDOWPOS3IMESA: procedure(x: GLint; y: GLint; z: GLint); stdcall;
  GLWINDOWPOS3IVMESA: procedure(v: PGLint); stdcall;
  GLWINDOWPOS3SMESA: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall;
  GLWINDOWPOS3SVMESA: procedure(v: PGLshort); stdcall;
  GLWINDOWPOS4DMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLWINDOWPOS4DVMESA: procedure(v: PGLdouble); stdcall;
  GLWINDOWPOS4FMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLWINDOWPOS4FVMESA: procedure(v: PGLfloat); stdcall;
  GLWINDOWPOS4IMESA: procedure(x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
  GLWINDOWPOS4IVMESA: procedure(v: PGLint); stdcall;
  GLWINDOWPOS4SMESA: procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
  GLWINDOWPOS4SVMESA: procedure(v: PGLshort); stdcall;

(*** GL_IBM_cull_vertex ***)

(*** GL_IBM_multimode_draw_arrays ***)
  GLMULTIMODEDRAWARRAYSIBM: procedure(mode: PGLenum; first: PGLint; count: PGLsizei; primcount: GLsizei; modestride: GLint); stdcall;
  GLMULTIMODEDRAWELEMENTSIBM: procedure(mode: PGLenum; count: PGLsizei; eType: GLenum; indices: PGLvoid; primcount: GLsizei; modestride: GLint); stdcall;

(*** GL_IBM_vertex_array_lists ***)
  GLCOLORPOINTERLISTIBM: procedure(size: GLint; eType: GLenum; stride: GLint; pointer: PGLvoid; ptrstride: GLint); stdcall;
  GLSECONDARYCOLORPOINTERLISTIBM: procedure(size: GLint; eType: GLenum; stride: GLint; pointer: PGLvoid; ptrstride: GLint); stdcall;
  GLEDGEFLAGPOINTERLISTIBM: procedure(stride: GLint; pointer: PGLboolean; ptrstride: GLint); stdcall;
  GLFOGCOORDPOINTERLISTIBM: procedure(eType: GLenum; stride: GLint; pointer: PGLvoid; ptrstride: GLint); stdcall;
  GLINDEXPOINTERLISTIBM: procedure(eType: GLenum; stride: GLint; pointer: PGLvoid; ptrstride: GLint); stdcall;
  GLNORMALPOINTERLISTIBM: procedure(eType: GLenum; stride: GLint; pointer: PGLvoid; ptrstride: GLint); stdcall;
  GLTEXCOORDPOINTERLISTIBM: procedure(size: GLint; eType: GLenum; stride: GLint; pointer: PGLvoid; ptrstride: GLint); stdcall;
  GLVERTEXPOINTERLISTIBM: procedure(size: GLint; eType: GLenum; stride: GLint; pointer: PGLvoid; ptrstride: GLint); stdcall;

(*** GL_SGIX_subsample ***)

(*** GL_SGIX_ycrcba ***)

(*** GL_SGIX_ycrcb_subsample ***)

(*** GL_SGIX_depth_pass_instrument ***)

(*** GL_3DFX_texture_compression_FXT1 ***)

(*** GL_3DFX_multisample ***)

(*** GL_3DFX_tbuffer ***)
  GLTBUFFERMASK3DFX: procedure(mask: GLuint); stdcall;

(*** GL_EXT_multisample ***)
  GLSAMPLEMASKEXT: procedure(value: GLclampf; invert: GLboolean); stdcall;
  GLSAMPLEPATTERNEXT: procedure(pattern: GLenum); stdcall;

(*** GL_SGIX_vertex_preclip ***)

(*** GL_SGIX_convolution_accuracy ***)

(*** GL_SGIX_resample ***)

(*** GL_SGIS_point_line_texgen ***)

(*** GL_SGIS_texture_color_mask ***)
  GLTEXTURECOLORMASKSGIS: procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); stdcall;

(*** GL_SGIX_igloo_interface ***)
  GLIGLOOINTERFACESGIX: procedure(pname: GLenum; params: PGLvoid); stdcall;

(*** GL_EXT_texture_env_dot3 ***)

(*** GL_ATI_texture_mirror_once ***)

(*** GL_NV_fence ***)
  GLDELETEFENCESNV: procedure(n: GLsizei; fences: PGLuint); stdcall;
  GLGENFENCESNV: procedure(n: GLsizei; fences: PGLuint); stdcall;
  GLISFENCENV: function(fence: GLuint): GLboolean; stdcall;
  GLTESTFENCENV: function(fence: GLuint): GLboolean; stdcall;
  GLGETFENCEIVNV: procedure(fence: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLFINISHFENCENV: procedure(fence: GLuint); stdcall;
  GLSETFENCENV: procedure(fence: GLuint; condition: GLenum); stdcall;

(*** GL_NV_evaluators ***)
  GLMAPCONTROLPOINTSNV: procedure(target: GLenum; index: GLuint; eType: GLenum; ustride: GLsizei; vstride: GLsizei; uorder: GLint; vorder: GLint; ePacked: GLboolean; points: PGLvoid); stdcall;
  GLMAPPARAMETERIVNV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLMAPPARAMETERFVNV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETMAPCONTROLPOINTSNV: procedure(target: GLenum; index: GLuint; eType: GLenum; ustride: GLsizei; vstride: GLsizei; ePacked: GLboolean; points: PGLvoid); stdcall;
  GLGETMAPPARAMETERIVNV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGETMAPPARAMETERFVNV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETMAPATTRIBPARAMETERIVNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETMAPATTRIBPARAMETERFVNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLEVALMAPSNV: procedure(target: GLenum; mode: GLenum); stdcall;

(*** GL_NV_packed_depth_stencil ***)

(*** GL_NV_register_combiners2 ***)
  GLCOMBINERSTAGEPARAMETERFVNV: procedure(stage: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETCOMBINERSTAGEPARAMETERFVNV: procedure(stage: GLenum; pname: GLenum; params: PGLfloat); stdcall;

(*** GL_NV_texture_compression_vtc ***)

(*** GL_NV_texture_rectangle ***)

(*** GL_NV_texture_shader ***)

(*** GL_NV_texture_shader2 ***)

(*** GL_NV_vertex_array_range2 ***)

(*** GL_NV_vertex_program ***)
  GLAREPROGRAMSRESIDENTNV: function(n: GLsizei; programs: PGLuint; residences: PGLboolean): GLboolean; stdcall;
  GLBINDPROGRAMNV: procedure(target: GLenum; id: GLuint); stdcall;
  GLDELETEPROGRAMSNV: procedure(n: GLsizei; programs: PGLuint); stdcall;
  GLEXECUTEPROGRAMNV: procedure(target: GLenum; id: GLuint; params: PGLfloat); stdcall;
  GLGENPROGRAMSNV: procedure(n: GLsizei; programs: PGLuint); stdcall;
  GLGETPROGRAMPARAMETERDVNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
  GLGETPROGRAMPARAMETERFVNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLGETPROGRAMIVNV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETPROGRAMSTRINGNV: procedure(id: GLuint; pname: GLenum; eProgram: PGLubyte); stdcall;
  GLGETTRACKMATRIXIVNV: procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETVERTEXATTRIBDVNV: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
  GLGETVERTEXATTRIBFVNV: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLGETVERTEXATTRIBIVNV: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETVERTEXATTRIBPOINTERVNV: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall;
  GLISPROGRAMNV: function(id: GLuint): GLboolean; stdcall;
  GLLOADPROGRAMNV: procedure(target: GLenum; id: GLuint; len: GLsizei; eProgram: PGLubyte); stdcall;
  GLPROGRAMPARAMETER4DNV: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLPROGRAMPARAMETER4DVNV: procedure(target: GLenum; index: GLuint; v: PGLdouble); stdcall;
  GLPROGRAMPARAMETER4FNV: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLPROGRAMPARAMETER4FVNV: procedure(target: GLenum; index: GLuint; v: PGLfloat); stdcall;
  GLPROGRAMPARAMETERS4DVNV: procedure(target: GLenum; index: GLuint; count: GLuint; v: PGLdouble); stdcall;
  GLPROGRAMPARAMETERS4FVNV: procedure(target: GLenum; index: GLuint; count: GLuint; v: PGLfloat); stdcall;
  GLREQUESTRESIDENTPROGRAMSNV: procedure(n: GLsizei; programs: PGLuint); stdcall;
  GLTRACKMATRIXNV: procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); stdcall;
  GLVERTEXATTRIBPOINTERNV: procedure(index: GLuint; fsize: GLint; eType: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall;
  GLVERTEXATTRIB1DNV: procedure(index: GLuint; x: GLdouble); stdcall;
  GLVERTEXATTRIB1DVNV: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB1FNV: procedure(index: GLuint; x: GLfloat); stdcall;
  GLVERTEXATTRIB1FVNV: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB1SNV: procedure(index: GLuint; x: GLshort); stdcall;
  GLVERTEXATTRIB1SVNV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB2DNV: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall;
  GLVERTEXATTRIB2DVNV: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB2FNV: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall;
  GLVERTEXATTRIB2FVNV: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB2SNV: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall;
  GLVERTEXATTRIB2SVNV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB3DNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
  GLVERTEXATTRIB3DVNV: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB3FNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLVERTEXATTRIB3FVNV: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB3SNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall;
  GLVERTEXATTRIB3SVNV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB4DNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLVERTEXATTRIB4DVNV: procedure(index: GLuint; v: PGLdouble); stdcall;
  GLVERTEXATTRIB4FNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLVERTEXATTRIB4FVNV: procedure(index: GLuint; v: PGLfloat); stdcall;
  GLVERTEXATTRIB4SNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
  GLVERTEXATTRIB4SVNV: procedure(index: GLuint; v: PGLshort); stdcall;
  GLVERTEXATTRIB4UBNV: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall;
  GLVERTEXATTRIB4UBVNV: procedure(index: GLuint; v: PGLubyte); stdcall;
  GLVERTEXATTRIBS1DVNV: procedure(index: GLuint; count: GLsizei; v: PGLdouble); stdcall;
  GLVERTEXATTRIBS1FVNV: procedure(index: GLuint; count: GLsizei; v: PGLfloat); stdcall;
  GLVERTEXATTRIBS1SVNV: procedure(index: GLuint; count: GLsizei; v: PGLshort); stdcall;
  GLVERTEXATTRIBS2DVNV: procedure(index: GLuint; count: GLsizei; v: PGLdouble); stdcall;
  GLVERTEXATTRIBS2FVNV: procedure(index: GLuint; count: GLsizei; v: PGLfloat); stdcall;
  GLVERTEXATTRIBS2SVNV: procedure(index: GLuint; count: GLsizei; v: PGLshort); stdcall;
  GLVERTEXATTRIBS3DVNV: procedure(index: GLuint; count: GLsizei; v: PGLdouble); stdcall;
  GLVERTEXATTRIBS3FVNV: procedure(index: GLuint; count: GLsizei; v: PGLfloat); stdcall;
  GLVERTEXATTRIBS3SVNV: procedure(index: GLuint; count: GLsizei; v: PGLshort); stdcall;
  GLVERTEXATTRIBS4DVNV: procedure(index: GLuint; count: GLsizei; v: PGLdouble); stdcall;
  GLVERTEXATTRIBS4FVNV: procedure(index: GLuint; count: GLsizei; v: PGLfloat); stdcall;
  GLVERTEXATTRIBS4SVNV: procedure(index: GLuint; count: GLsizei; v: PGLshort); stdcall;
  GLVERTEXATTRIBS4UBVNV: procedure(index: GLuint; count: GLsizei; v: PGLubyte); stdcall;

(*** GL_SGIX_texture_coordinate_clamp ***)

(*** GL_SGIX_scalebias_hint ***)

(*** GL_OML_interlace ***)

(*** GL_OML_subsample ***)

(*** GL_OML_resample ***)

(*** GL_NV_copy_depth_to_color ***)

(*** GL_ATI_envmap_bumpmap ***)
  GLTEXBUMPPARAMETERIVATI: procedure(pname: GLenum; param: PGLint); stdcall;
  GLTEXBUMPPARAMETERFVATI: procedure(pname: GLenum; param: PGLfloat); stdcall;
  GLGETTEXBUMPPARAMETERIVATI: procedure(pname: GLenum; param: PGLint); stdcall;
  GLGETTEXBUMPPARAMETERFVATI: procedure(pname: GLenum; param: PGLfloat); stdcall;

(*** GL_ATI_fragment_shader ***)
  GLGENFRAGMENTSHADERSATI: function(range: GLuint): GLuint; stdcall;
  GLBINDFRAGMENTSHADERATI: procedure(id: GLuint); stdcall;
  GLDELETEFRAGMENTSHADERATI: procedure(id: GLuint); stdcall;
  GLBEGINFRAGMENTSHADERATI: procedure; stdcall;
  GLENDFRAGMENTSHADERATI: procedure; stdcall;
  GLPASSTEXCOORDATI: procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); stdcall;
  GLSAMPLEMAPATI: procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); stdcall;
  GLCOLORFRAGMENTOP1ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); stdcall;
  GLCOLORFRAGMENTOP2ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); stdcall;
  GLCOLORFRAGMENTOP3ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); stdcall;
  GLALPHAFRAGMENTOP1ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); stdcall;
  GLALPHAFRAGMENTOP2ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); stdcall;
  GLALPHAFRAGMENTOP3ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); stdcall;
  GLSETFRAGMENTSHADERCONSTANTATI: procedure(dst: GLuint; value: PGLfloat); stdcall;

(*** GL_ATI_pn_triangles ***)
  GLPNTRIANGLESIATI: procedure(pname: GLenum; param: GLint); stdcall;
  GLPNTRIANGLESFATI: procedure(pname: GLenum; param: GLfloat); stdcall;

(*** GL_ATI_vertex_array_object ***)
  GLNEWOBJECTBUFFERATI: function(size: GLsizei; pointer: PGLvoid; usage: GLenum): GLuint; stdcall;
  GLISOBJECTBUFFERATI: function(buffer: GLuint): GLboolean; stdcall;
  GLUPDATEOBJECTBUFFERATI: procedure(buffer: GLuint; offset: GLuint; size: GLsizei; pointer: PGLvoid; preserve: GLenum); stdcall;
  GLGETOBJECTBUFFERFVATI: procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLGETOBJECTBUFFERIVATI: procedure(buffer: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLFREEOBJECTBUFFERATI: procedure(buffer: GLuint); stdcall;
  GLARRAYOBJECTATI: procedure(eArray: GLenum; size: GLint; eType: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall;
  GLGETARRAYOBJECTFVATI: procedure(eArray: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  GLGETARRAYOBJECTIVATI: procedure(eArray: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLVARIANTARRAYOBJECTATI: procedure(id: GLuint; eType: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall;
  GLGETVARIANTARRAYOBJECTFVATI: procedure(id: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLGETVARIANTARRAYOBJECTIVATI: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;

(*** GL_EXT_vertex_shader ***)
  GLBEGINVERTEXSHADEREXT: procedure; stdcall;
  GLENDVERTEXSHADEREXT: procedure; stdcall;
  GLBINDVERTEXSHADEREXT: procedure(id: GLuint); stdcall;
  GLGENVERTEXSHADERSEXT: function(range: GLuint): GLuint; stdcall;
  GLDELETEVERTEXSHADEREXT: procedure(id: GLuint); stdcall;
  GLSHADEROP1EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint); stdcall;
  GLSHADEROP2EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); stdcall;
  GLSHADEROP3EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); stdcall;
  GLSWIZZLEEXT: procedure(res: GLuint; eIn: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); stdcall;
  GLWRITEMASKEXT: procedure(res: GLuint; eIn: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); stdcall;
  GLINSERTCOMPONENTEXT: procedure(res: GLuint; src: GLuint; num: GLuint); stdcall;
  GLEXTRACTCOMPONENTEXT: procedure(res: GLuint; src: GLuint; num: GLuint); stdcall;
  GLGENSYMBOLSEXT: function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; stdcall;
  GLSETINVARIANTEXT: procedure(id: GLuint; eType: GLenum; addr: PGLvoid); stdcall;
  GLSETLOCALCONSTANTEXT: procedure(id: GLuint; eType: GLenum; addr: PGLvoid); stdcall;
  GLVARIANTBVEXT: procedure(id: GLuint; addr: PGLbyte); stdcall;
  GLVARIANTSVEXT: procedure(id: GLuint; addr: PGLshort); stdcall;
  GLVARIANTIVEXT: procedure(id: GLuint; addr: PGLint); stdcall;
  GLVARIANTFVEXT: procedure(id: GLuint; addr: PGLfloat); stdcall;
  GLVARIANTDVEXT: procedure(id: GLuint; addr: PGLdouble); stdcall;
  GLVARIANTUBVEXT: procedure(id: GLuint; addr: PGLubyte); stdcall;
  GLVARIANTUSVEXT: procedure(id: GLuint; addr: PGLushort); stdcall;
  GLVARIANTUIVEXT: procedure(id: GLuint; addr: PGLuint); stdcall;
  GLVARIANTPOINTEREXT: procedure(id: GLuint; eType: GLenum; stride: GLuint; addr: PGLvoid); stdcall;
  GLENABLEVARIANTCLIENTSTATEEXT: procedure(id: GLuint); stdcall;
  GLDISABLEVARIANTCLIENTSTATEEXT: procedure(id: GLuint); stdcall;
  GLBINDLIGHTPARAMETEREXT: function(light: GLenum; value: GLenum): GLuint; stdcall;
  GLBINDMATERIALPARAMETEREXT: function(face: GLenum; value: GLenum): GLuint; stdcall;
  GLBINDTEXGENPARAMETEREXT: function(eUnit: GLenum; coord: GLenum; value: GLenum): GLuint; stdcall;
  GLBINDTEXTUREUNITPARAMETEREXT: function(eUnit: GLenum; value: GLenum): GLuint; stdcall;
  GLBINDPARAMETEREXT: function(value: GLenum): GLuint; stdcall;
  GLISVARIANTENABLEDEXT: function(id: GLuint; cap: GLenum): GLboolean; stdcall;
  GLGETVARIANTBOOLEANVEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall;
  GLGETVARIANTINTEGERVEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall;
  GLGETVARIANTFLOATVEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall;
  GLGETVARIANTPOINTERVEXT: procedure(id: GLuint; value: GLenum; data: PGLvoid); stdcall;
  GLGETINVARIANTBOOLEANVEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall;
  GLGETINVARIANTINTEGERVEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall;
  GLGETINVARIANTFLOATVEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall;
  GLGETLOCALCONSTANTBOOLEANVEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall;
  GLGETLOCALCONSTANTINTEGERVEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall;
  GLGETLOCALCONSTANTFLOATVEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall;

(*** GL_ATI_vertex_streams ***)
  GLVERTEXSTREAM1SATI: procedure(stream: GLenum; x: GLshort); stdcall;
  GLVERTEXSTREAM1SVATI: procedure(stream: GLenum; coords: PGLshort); stdcall;
  GLVERTEXSTREAM1IATI: procedure(stream: GLenum; x: GLint); stdcall;
  GLVERTEXSTREAM1IVATI: procedure(stream: GLenum; coords: PGLint); stdcall;
  GLVERTEXSTREAM1FATI: procedure(stream: GLenum; x: GLfloat); stdcall;
  GLVERTEXSTREAM1FVATI: procedure(stream: GLenum; coords: PGLfloat); stdcall;
  GLVERTEXSTREAM1DATI: procedure(stream: GLenum; x: GLdouble); stdcall;
  GLVERTEXSTREAM1DVATI: procedure(stream: GLenum; coords: PGLdouble); stdcall;
  GLVERTEXSTREAM2SATI: procedure(stream: GLenum; x: GLshort; y: GLshort); stdcall;
  GLVERTEXSTREAM2SVATI: procedure(stream: GLenum; coords: PGLshort); stdcall;
  GLVERTEXSTREAM2IATI: procedure(stream: GLenum; x: GLint; y: GLint); stdcall;
  GLVERTEXSTREAM2IVATI: procedure(stream: GLenum; coords: PGLint); stdcall;
  GLVERTEXSTREAM2FATI: procedure(stream: GLenum; x: GLfloat; y: GLfloat); stdcall;
  GLVERTEXSTREAM2FVATI: procedure(stream: GLenum; coords: PGLfloat); stdcall;
  GLVERTEXSTREAM2DATI: procedure(stream: GLenum; x: GLdouble; y: GLdouble); stdcall;
  GLVERTEXSTREAM2DVATI: procedure(stream: GLenum; coords: PGLdouble); stdcall;
  GLVERTEXSTREAM3SATI: procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); stdcall;
  GLVERTEXSTREAM3SVATI: procedure(stream: GLenum; coords: PGLshort); stdcall;
  GLVERTEXSTREAM3IATI: procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); stdcall;
  GLVERTEXSTREAM3IVATI: procedure(stream: GLenum; coords: PGLint); stdcall;
  GLVERTEXSTREAM3FATI: procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
  GLVERTEXSTREAM3FVATI: procedure(stream: GLenum; coords: PGLfloat); stdcall;
  GLVERTEXSTREAM3DATI: procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
  GLVERTEXSTREAM3DVATI: procedure(stream: GLenum; coords: PGLdouble); stdcall;
  GLVERTEXSTREAM4SATI: procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
  GLVERTEXSTREAM4SVATI: procedure(stream: GLenum; coords: PGLshort); stdcall;
  GLVERTEXSTREAM4IATI: procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
  GLVERTEXSTREAM4IVATI: procedure(stream: GLenum; coords: PGLint); stdcall;
  GLVERTEXSTREAM4FATI: procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLVERTEXSTREAM4FVATI: procedure(stream: GLenum; coords: PGLfloat); stdcall;
  GLVERTEXSTREAM4DATI: procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLVERTEXSTREAM4DVATI: procedure(stream: GLenum; coords: PGLdouble); stdcall;
  GLNORMALSTREAM3BATI: procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); stdcall;
  GLNORMALSTREAM3BVATI: procedure(stream: GLenum; coords: PGLbyte); stdcall;
  GLNORMALSTREAM3SATI: procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); stdcall;
  GLNORMALSTREAM3SVATI: procedure(stream: GLenum; coords: PGLshort); stdcall;
  GLNORMALSTREAM3IATI: procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); stdcall;
  GLNORMALSTREAM3IVATI: procedure(stream: GLenum; coords: PGLint); stdcall;
  GLNORMALSTREAM3FATI: procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); stdcall;
  GLNORMALSTREAM3FVATI: procedure(stream: GLenum; coords: PGLfloat); stdcall;
  GLNORMALSTREAM3DATI: procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); stdcall;
  GLNORMALSTREAM3DVATI: procedure(stream: GLenum; coords: PGLdouble); stdcall;
  GLCLIENTACTIVEVERTEXSTREAMATI: procedure(stream: GLenum); stdcall;
  GLVERTEXBLENDENVIATI: procedure(pname: GLenum; param: GLint); stdcall;
  GLVERTEXBLENDENVFATI: procedure(pname: GLenum; param: GLfloat); stdcall;

(*** GL_ATI_element_array ***)
  GLELEMENTPOINTERATI: procedure(eType: GLenum; pointer: PGLvoid); stdcall;
  GLDRAWELEMENTARRAYATI: procedure(mode: GLenum; count: GLsizei); stdcall;
  GLDRAWRANGEELEMENTARRAYATI: procedure(mode: GLenum; aStart: GLuint; aEnd: GLuint; count: GLsizei); stdcall;

(*** GL_SUN_mesh_array ***)
  GLDRAWMESHARRAYSSUN: procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); stdcall;

(*** GL_SUN_slice_accum ***)

(*** GL_NV_multisample_filter_hint ***)

(*** GL_NV_depth_clamp ***)

(*** GL_NV_occlusion_query ***)
  GLGENOCCLUSIONQUERIESNV: procedure(n: GLsizei; ids: PGLuint); stdcall;
  GLDELETEOCCLUSIONQUERIESNV: procedure(n: GLsizei; ids: PGLuint); stdcall;
  GLISOCCLUSIONQUERYNV: function(id: GLuint): GLboolean; stdcall;
  GLBEGINOCCLUSIONQUERYNV: procedure(id: GLuint); stdcall;
  GLENDOCCLUSIONQUERYNV: procedure; stdcall;
  GLGETOCCLUSIONQUERYIVNV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
  GLGETOCCLUSIONQUERYUIVNV: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall;

(*** GL_NV_point_sprite ***)
  GLPOINTPARAMETERINV: procedure(pname: GLenum; param: GLint); stdcall;
  GLPOINTPARAMETERIVNV: procedure(pname: GLenum; params: PGLint); stdcall;

(*** GL_NV_texture_shader3 ***)

(*** GL_NV_vertex_program1_1 ***)

(*** GL_EXT_shadow_funcs ***)

(*** GL_EXT_stencil_two_side ***)
  GLACTIVESTENCILFACEEXT: procedure(face: GLenum); stdcall;

(*** GL_ATI_text_fragment_shader ***)

(*** GL_APPLE_client_storage ***)

(*** GL_APPLE_element_array ***)
  GLELEMENTPOINTERAPPLE: procedure(eType: GLenum; pointer: PGLvoid); stdcall;
  GLDRAWELEMENTARRAYAPPLE: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall;
  GLDRAWRANGEELEMENTARRAYAPPLE: procedure(mode: GLenum; aStart: GLuint; aEnd: GLuint; first: GLint; count: GLsizei); stdcall;
  GLMULTIDRAWELEMENTARRAYAPPLE: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); stdcall;
  GLMULTIDRAWRANGEELEMENTARRAYAPPLE: procedure(mode: GLenum; aStart: GLuint; aEnd: GLuint; first: PGLint; count: PGLsizei; primcount: GLsizei); stdcall;

(*** GL_APPLE_fence ***)
  GLGENFENCESAPPLE: procedure(n: GLsizei; fences: PGLuint); stdcall;
  GLDELETEFENCESAPPLE: procedure(n: GLsizei; fences: PGLuint); stdcall;
  GLSETFENCEAPPLE: procedure(fence: GLuint); stdcall;
  GLISFENCEAPPLE: function(fence: GLuint): GLboolean; stdcall;
  GLTESTFENCEAPPLE: function(fence: GLuint): GLboolean; stdcall;
  GLFINISHFENCEAPPLE: procedure(fence: GLuint); stdcall;
  GLTESTOBJECTAPPLE: function(eObject: GLenum; name: GLuint): GLboolean; stdcall;
  GLFINISHOBJECTAPPLE: procedure(eObject: GLenum; name: GLint); stdcall;

(*** GL_APPLE_vertex_array_object ***)
  GLBINDVERTEXARRAYAPPLE: procedure(eArray: GLuint); stdcall;
  GLDELETEVERTEXARRAYSAPPLE: procedure(n: GLsizei; arrays: PGLuint); stdcall;
  GLGENVERTEXARRAYSAPPLE: procedure(n: GLsizei; arrays: PGLuint); stdcall;
  GLISVERTEXARRAYAPPLE: function(eArray: GLuint): GLboolean; stdcall;

(*** GL_APPLE_vertex_array_range ***)
  GLVERTEXARRAYRANGEAPPLE: procedure(length: GLsizei; pointer: PGLvoid); stdcall;
  GLFLUSHVERTEXARRAYRANGEAPPLE: procedure(length: GLsizei; pointer: PGLvoid); stdcall;
  GLVERTEXARRAYPARAMETERIAPPLE: procedure(pname: GLenum; param: GLint); stdcall;

(*** GL_APPLE_ycbcr_422 ***)

(*** GL_S3_s3tc ***)

(*** GL_ATI_draw_buffers ***)
  GLDRAWBUFFERSATI: procedure(n: GLsizei; bufs: PGLenum); stdcall;

(*** GL_ATI_pixel_format_float ***)

(*** GL_ATI_texture_env_combine3 ***)

(*** GL_ATI_texture_float ***)

(*** GL_NV_float_buffer ***)

(*** GL_NV_fragment_program ***)
  GLPROGRAMNAMEDPARAMETER4FNV: procedure(id: GLuint; len: GLsizei; name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
  GLPROGRAMNAMEDPARAMETER4DNV: procedure(id: GLuint; len: GLsizei; name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
  GLPROGRAMNAMEDPARAMETER4FVNV: procedure(id: GLuint; len: GLsizei; name: PGLubyte; v: PGLfloat); stdcall;
  GLPROGRAMNAMEDPARAMETER4DVNV: procedure(id: GLuint; len: GLsizei; name: PGLubyte; v: PGLdouble); stdcall;
  GLGETPROGRAMNAMEDPARAMETERFVNV: procedure(id: GLuint; len: GLsizei; name: PGLubyte; params: PGLfloat); stdcall;
  GLGETPROGRAMNAMEDPARAMETERDVNV: procedure(id: GLuint; len: GLsizei; name: PGLubyte; params: PGLdouble); stdcall;

(*** GL_NV_half_float ***)
  GLVERTEX2HNV: procedure(x: GLhalfNV; y: GLhalfNV); stdcall;
  GLVERTEX2HVNV: procedure(v: PGLhalfNV); stdcall;
  GLVERTEX3HNV: procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); stdcall;
  GLVERTEX3HVNV: procedure(v: PGLhalfNV); stdcall;
  GLVERTEX4HNV: procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); stdcall;
  GLVERTEX4HVNV: procedure(v: PGLhalfNV); stdcall;
  GLNORMAL3HNV: procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); stdcall;
  GLNORMAL3HVNV: procedure(v: PGLhalfNV); stdcall;
  GLCOLOR3HNV: procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); stdcall;
  GLCOLOR3HVNV: procedure(v: PGLhalfNV); stdcall;
  GLCOLOR4HNV: procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); stdcall;
  GLCOLOR4HVNV: procedure(v: PGLhalfNV); stdcall;
  GLTEXCOORD1HNV: procedure(s: GLhalfNV); stdcall;
  GLTEXCOORD1HVNV: procedure(v: PGLhalfNV); stdcall;
  GLTEXCOORD2HNV: procedure(s: GLhalfNV; t: GLhalfNV); stdcall;
  GLTEXCOORD2HVNV: procedure(v: PGLhalfNV); stdcall;
  GLTEXCOORD3HNV: procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); stdcall;
  GLTEXCOORD3HVNV: procedure(v: PGLhalfNV); stdcall;
  GLTEXCOORD4HNV: procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); stdcall;
  GLTEXCOORD4HVNV: procedure(v: PGLhalfNV); stdcall;
  GLMULTITEXCOORD1HNV: procedure(target: GLenum; s: GLhalfNV); stdcall;
  GLMULTITEXCOORD1HVNV: procedure(target: GLenum; v: PGLhalfNV); stdcall;
  GLMULTITEXCOORD2HNV: procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); stdcall;
  GLMULTITEXCOORD2HVNV: procedure(target: GLenum; v: PGLhalfNV); stdcall;
  GLMULTITEXCOORD3HNV: procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); stdcall;
  GLMULTITEXCOORD3HVNV: procedure(target: GLenum; v: PGLhalfNV); stdcall;
  GLMULTITEXCOORD4HNV: procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); stdcall;
  GLMULTITEXCOORD4HVNV: procedure(target: GLenum; v: PGLhalfNV); stdcall;
  GLFOGCOORDHNV: procedure(fog: GLhalfNV); stdcall;
  GLFOGCOORDHVNV: procedure(fog: PGLhalfNV); stdcall;
  GLSECONDARYCOLOR3HNV: procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); stdcall;
  GLSECONDARYCOLOR3HVNV: procedure(v: PGLhalfNV); stdcall;
  GLVERTEXWEIGHTHNV: procedure(weight: GLhalfNV); stdcall;
  GLVERTEXWEIGHTHVNV: procedure(weight: PGLhalfNV); stdcall;
  GLVERTEXATTRIB1HNV: procedure(index: GLuint; x: GLhalfNV); stdcall;
  GLVERTEXATTRIB1HVNV: procedure(index: GLuint; v: PGLhalfNV); stdcall;
  GLVERTEXATTRIB2HNV: procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); stdcall;
  GLVERTEXATTRIB2HVNV: procedure(index: GLuint; v: PGLhalfNV); stdcall;
  GLVERTEXATTRIB3HNV: procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); stdcall;
  GLVERTEXATTRIB3HVNV: procedure(index: GLuint; v: PGLhalfNV); stdcall;
  GLVERTEXATTRIB4HNV: procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); stdcall;
  GLVERTEXATTRIB4HVNV: procedure(index: GLuint; v: PGLhalfNV); stdcall;
  GLVERTEXATTRIBS1HVNV: procedure(index: GLuint; n: GLsizei; v: PGLhalfNV); stdcall;
  GLVERTEXATTRIBS2HVNV: procedure(index: GLuint; n: GLsizei; v: PGLhalfNV); stdcall;
  GLVERTEXATTRIBS3HVNV: procedure(index: GLuint; n: GLsizei; v: PGLhalfNV); stdcall;
  GLVERTEXATTRIBS4HVNV: procedure(index: GLuint; n: GLsizei; v: PGLhalfNV); stdcall;

(*** GL_NV_pixel_data_range ***)
  GLPIXELDATARANGENV: procedure(target: GLenum; length: GLsizei; pointer: PGLvoid); stdcall;
  GLFLUSHPIXELDATARANGENV: procedure(target: GLenum); stdcall;

(*** GL_NV_primitive_restart ***)
  GLPRIMITIVERESTARTNV: procedure; stdcall;
  GLPRIMITIVERESTARTINDEXNV: procedure(index: GLuint); stdcall;

(*** GL_NV_texture_expand_normal ***)

(*** GL_NV_vertex_program2 ***)

(*** GL_ATI_map_object_buffer ***)
  GLMAPOBJECTBUFFERATI: function(buffer: GLuint): PGLvoid; stdcall;
  GLUNMAPOBJECTBUFFERATI: procedure(buffer: GLuint); stdcall;

(*** GL_ATI_separate_stencil ***)
  GLSTENCILOPSEPARATEATI: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); stdcall;
  GLSTENCILFUNCSEPARATEATI: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); stdcall;

(*** GL_ATI_vertex_attrib_array_object ***)
  GLVERTEXATTRIBARRAYOBJECTATI: procedure(index: GLuint; size: GLint; eType: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall;
  GLGETVERTEXATTRIBARRAYOBJECTFVATI: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
  GLGETVERTEXATTRIBARRAYOBJECTIVATI: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;

(*** GL_OES_read_format ***)

(*** GL_EXT_depth_bounds_test ***)
  GLDEPTHBOUNDSEXT: procedure(zmin: GLclampd; zmax: GLclampd); stdcall;

(*** GL_EXT_texture_mirror_clamp ***)

(*** GL_EXT_blend_equation_separate ***)
  GLBLENDEQUATIONSEPARATEEXT: procedure(modeRGB: GLenum; modeAlpha: GLenum); stdcall;

(*** GL_MESA_pack_invert ***)

(*** GL_MESA_ycbcr_texture ***)

(*** GL_EXT_pixel_buffer_object ***)

(*** GL_NV_fragment_program_option ***)

(*** GL_NV_fragment_program2 ***)

(*** GL_NV_vertex_program2_option ***)

(*** GL_NV_vertex_program3 ***)

(*** GL_EXT_framebuffer_object ***)
  GLISRENDERBUFFEREXT: function(renderbuffer: GLuint): GLboolean; stdcall;
  GLBINDRENDERBUFFEREXT: procedure(target: GLenum; renderbuffer: GLuint); stdcall;
  GLDELETERENDERBUFFERSEXT: procedure(n: GLsizei; renderbuffers: PGLuint); stdcall;
  GLGENRENDERBUFFERSEXT: procedure(n: GLsizei; renderbuffers: PGLuint); stdcall;
  GLRENDERBUFFERSTORAGEEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
  GLGETRENDERBUFFERPARAMETERIVEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLISFRAMEBUFFEREXT: function(framebuffer: GLuint): GLboolean; stdcall;
  GLBINDFRAMEBUFFEREXT: procedure(target: GLenum; framebuffer: GLuint); stdcall;
  GLDELETEFRAMEBUFFERSEXT: procedure(n: GLsizei; framebuffers: PGLuint); stdcall;
  GLGENFRAMEBUFFERSEXT: procedure(n: GLsizei; framebuffers: PGLuint); stdcall;
  GLCHECKFRAMEBUFFERSTATUSEXT: function(target: GLenum): GLenum; stdcall;
  GLFRAMEBUFFERTEXTURE1DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
  GLFRAMEBUFFERTEXTURE2DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
  GLFRAMEBUFFERTEXTURE3DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); stdcall;
  GLFRAMEBUFFERRENDERBUFFEREXT: procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); stdcall;
  GLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXT: procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); stdcall;
  GLGENERATEMIPMAPEXT: procedure(target: GLenum); stdcall;

(*** GL_GREMEDY_string_marker ***)
  GLSTRINGMARKERGREMEDY: procedure(len: GLsizei; eString: PGLvoid); stdcall;

function Load_GL_VERSION_1_2: boolean;
function Load_GL_VERSION_1_3: boolean;
function Load_GL_VERSION_1_4: boolean;
function Load_GL_VERSION_1_5: boolean;
function Load_GL_VERSION_2_0: boolean;
function Load_GL_ARB_multitexture: boolean;
function Load_GL_ARB_transpose_matrix: boolean;
function Load_GL_ARB_multisample: boolean;
function Load_GL_ARB_texture_env_add: boolean;
function Load_GL_ARB_texture_cube_map: boolean;
function Load_GL_ARB_texture_compression: boolean;
function Load_GL_ARB_texture_border_clamp: boolean;
function Load_GL_ARB_point_parameters: boolean;
function Load_GL_ARB_vertex_blend: boolean;
function Load_GL_ARB_matrix_palette: boolean;
function Load_GL_ARB_texture_env_combine: boolean;
function Load_GL_ARB_texture_env_crossbar: boolean;
function Load_GL_ARB_texture_env_dot3: boolean;
function Load_GL_ARB_texture_mirrored_repeat: boolean;
function Load_GL_ARB_depth_texture: boolean;
function Load_GL_ARB_shadow: boolean;
function Load_GL_ARB_shadow_ambient: boolean;
function Load_GL_ARB_window_pos: boolean;
function Load_GL_ARB_vertex_program: boolean;
function Load_GL_ARB_fragment_program: boolean;
function Load_GL_ARB_vertex_buffer_object: boolean;
function Load_GL_ARB_occlusion_query: boolean;
function Load_GL_ARB_shader_objects: boolean;
function Load_GL_ARB_vertex_shader: boolean;
function Load_GL_ARB_fragment_shader: boolean;
function Load_GL_ARB_shading_language_100: boolean;
function Load_GL_ARB_texture_non_power_of_two: boolean;
function Load_GL_ARB_point_sprite: boolean;
function Load_GL_ARB_fragment_program_shadow: boolean;
function Load_GL_ARB_draw_buffers: boolean;
function Load_GL_ARB_texture_rectangle: boolean;
function Load_GL_ARB_color_buffer_float: boolean;
function Load_GL_ARB_half_float_pixel: boolean;
function Load_GL_ARB_texture_float: boolean;
function Load_GL_ARB_pixel_buffer_object: boolean;
function Load_GL_EXT_abgr: boolean;
function Load_GL_EXT_blend_color: boolean;
function Load_GL_EXT_polygon_offset: boolean;
function Load_GL_EXT_texture: boolean;
function Load_GL_EXT_texture3D: boolean;
function Load_GL_SGIS_texture_filter4: boolean;
function Load_GL_EXT_subtexture: boolean;
function Load_GL_EXT_copy_texture: boolean;
function Load_GL_EXT_histogram: boolean;
function Load_GL_EXT_convolution: boolean;
function Load_GL_EXT_color_matrix: boolean;
function Load_GL_SGI_color_table: boolean;
function Load_GL_SGIX_pixel_texture: boolean;
function Load_GL_SGIS_pixel_texture: boolean;
function Load_GL_SGIS_texture4D: boolean;
function Load_GL_SGI_texture_color_table: boolean;
function Load_GL_EXT_cmyka: boolean;
function Load_GL_EXT_texture_object: boolean;
function Load_GL_SGIS_detail_texture: boolean;
function Load_GL_SGIS_sharpen_texture: boolean;
function Load_GL_EXT_packed_pixels: boolean;
function Load_GL_SGIS_texture_lod: boolean;
function Load_GL_SGIS_multisample: boolean;
function Load_GL_EXT_rescale_normal: boolean;
function Load_GL_EXT_vertex_array: boolean;
function Load_GL_EXT_misc_attribute: boolean;
function Load_GL_SGIS_generate_mipmap: boolean;
function Load_GL_SGIX_clipmap: boolean;
function Load_GL_SGIX_shadow: boolean;
function Load_GL_SGIS_texture_edge_clamp: boolean;
function Load_GL_SGIS_texture_border_clamp: boolean;
function Load_GL_EXT_blend_minmax: boolean;
function Load_GL_EXT_blend_subtract: boolean;
function Load_GL_EXT_blend_logic_op: boolean;
function Load_GL_SGIX_interlace: boolean;
function Load_GL_SGIX_pixel_tiles: boolean;
function Load_GL_SGIX_texture_select: boolean;
function Load_GL_SGIX_sprite: boolean;
function Load_GL_SGIX_texture_multi_buffer: boolean;
function Load_GL_EXT_point_parameters: boolean;
function Load_GL_SGIS_point_parameters: boolean;
function Load_GL_SGIX_instruments: boolean;
function Load_GL_SGIX_texture_scale_bias: boolean;
function Load_GL_SGIX_framezoom: boolean;
function Load_GL_SGIX_tag_sample_buffer: boolean;
function Load_GL_SGIX_polynomial_ffd: boolean;
function Load_GL_SGIX_reference_plane: boolean;
function Load_GL_SGIX_flush_raster: boolean;
function Load_GL_SGIX_depth_texture: boolean;
function Load_GL_SGIS_fog_function: boolean;
function Load_GL_SGIX_fog_offset: boolean;
function Load_GL_HP_image_transform: boolean;
function Load_GL_HP_convolution_border_modes: boolean;
function Load_GL_SGIX_texture_add_env: boolean;
function Load_GL_EXT_color_subtable: boolean;
function Load_GL_PGI_vertex_hints: boolean;
function Load_GL_PGI_misc_hints: boolean;
function Load_GL_EXT_paletted_texture: boolean;
function Load_GL_EXT_clip_volume_hint: boolean;
function Load_GL_SGIX_list_priority: boolean;
function Load_GL_SGIX_ir_instrument1: boolean;
function Load_GL_SGIX_calligraphic_fragment: boolean;
function Load_GL_SGIX_texture_lod_bias: boolean;
function Load_GL_SGIX_shadow_ambient: boolean;
function Load_GL_EXT_index_texture: boolean;
function Load_GL_EXT_index_material: boolean;
function Load_GL_EXT_index_func: boolean;
function Load_GL_EXT_index_array_formats: boolean;
function Load_GL_EXT_compiled_vertex_array: boolean;
function Load_GL_EXT_cull_vertex: boolean;
function Load_GL_SGIX_ycrcb: boolean;
function Load_GL_SGIX_fragment_lighting: boolean;
function Load_GL_IBM_rasterpos_clip: boolean;
function Load_GL_HP_texture_lighting: boolean;
function Load_GL_EXT_draw_range_elements: boolean;
function Load_GL_WIN_phong_shading: boolean;
function Load_GL_WIN_specular_fog: boolean;
function Load_GL_EXT_light_texture: boolean;
function Load_GL_SGIX_blend_alpha_minmax: boolean;
function Load_GL_EXT_bgra: boolean;
function Load_GL_SGIX_async: boolean;
function Load_GL_SGIX_async_pixel: boolean;
function Load_GL_SGIX_async_histogram: boolean;
function Load_GL_INTEL_parallel_arrays: boolean;
function Load_GL_HP_occlusion_test: boolean;
function Load_GL_EXT_pixel_transform: boolean;
function Load_GL_EXT_pixel_transform_color_table: boolean;
function Load_GL_EXT_shared_texture_palette: boolean;
function Load_GL_EXT_separate_specular_color: boolean;
function Load_GL_EXT_secondary_color: boolean;
function Load_GL_EXT_texture_perturb_normal: boolean;
function Load_GL_EXT_multi_draw_arrays: boolean;
function Load_GL_EXT_fog_coord: boolean;
function Load_GL_REND_screen_coordinates: boolean;
function Load_GL_EXT_coordinate_frame: boolean;
function Load_GL_EXT_texture_env_combine: boolean;
function Load_GL_APPLE_specular_vector: boolean;
function Load_GL_APPLE_transform_hint: boolean;
function Load_GL_SGIX_fog_scale: boolean;
function Load_GL_SUNX_constant_data: boolean;
function Load_GL_SUN_global_alpha: boolean;
function Load_GL_SUN_triangle_list: boolean;
function Load_GL_SUN_vertex: boolean;
function Load_GL_EXT_blend_func_separate: boolean;
function Load_GL_INGR_blend_func_separate: boolean;
function Load_GL_INGR_color_clamp: boolean;
function Load_GL_INGR_interlace_read: boolean;
function Load_GL_EXT_stencil_wrap: boolean;
function Load_GL_EXT_422_pixels: boolean;
function Load_GL_NV_texgen_reflection: boolean;
function Load_GL_SUN_convolution_border_modes: boolean;
function Load_GL_EXT_texture_env_add: boolean;
function Load_GL_EXT_texture_lod_bias: boolean;
function Load_GL_EXT_texture_filter_anisotropic: boolean;
function Load_GL_EXT_vertex_weighting: boolean;
function Load_GL_NV_light_max_exponent: boolean;
function Load_GL_NV_vertex_array_range: boolean;
function Load_GL_NV_register_combiners: boolean;
function Load_GL_NV_fog_distance: boolean;
function Load_GL_NV_texgen_emboss: boolean;
function Load_GL_NV_blend_square: boolean;
function Load_GL_NV_texture_env_combine4: boolean;
function Load_GL_MESA_resize_buffers: boolean;
function Load_GL_MESA_window_pos: boolean;
function Load_GL_IBM_cull_vertex: boolean;
function Load_GL_IBM_multimode_draw_arrays: boolean;
function Load_GL_IBM_vertex_array_lists: boolean;
function Load_GL_SGIX_subsample: boolean;
function Load_GL_SGIX_ycrcba: boolean;
function Load_GL_SGIX_ycrcb_subsample: boolean;
function Load_GL_SGIX_depth_pass_instrument: boolean;
function Load_GL_3DFX_texture_compression_FXT1: boolean;
function Load_GL_3DFX_multisample: boolean;
function Load_GL_3DFX_tbuffer: boolean;
function Load_GL_EXT_multisample: boolean;
function Load_GL_SGIX_vertex_preclip: boolean;
function Load_GL_SGIX_convolution_accuracy: boolean;
function Load_GL_SGIX_resample: boolean;
function Load_GL_SGIS_point_line_texgen: boolean;
function Load_GL_SGIS_texture_color_mask: boolean;
function Load_GL_SGIX_igloo_interface: boolean;
function Load_GL_EXT_texture_env_dot3: boolean;
function Load_GL_ATI_texture_mirror_once: boolean;
function Load_GL_NV_fence: boolean;
function Load_GL_NV_evaluators: boolean;
function Load_GL_NV_packed_depth_stencil: boolean;
function Load_GL_NV_register_combiners2: boolean;
function Load_GL_NV_texture_compression_vtc: boolean;
function Load_GL_NV_texture_rectangle: boolean;
function Load_GL_NV_texture_shader: boolean;
function Load_GL_NV_texture_shader2: boolean;
function Load_GL_NV_vertex_array_range2: boolean;
function Load_GL_NV_vertex_program: boolean;
function Load_GL_SGIX_texture_coordinate_clamp: boolean;
function Load_GL_SGIX_scalebias_hint: boolean;
function Load_GL_OML_interlace: boolean;
function Load_GL_OML_subsample: boolean;
function Load_GL_OML_resample: boolean;
function Load_GL_NV_copy_depth_to_color: boolean;
function Load_GL_ATI_envmap_bumpmap: boolean;
function Load_GL_ATI_fragment_shader: boolean;
function Load_GL_ATI_pn_triangles: boolean;
function Load_GL_ATI_vertex_array_object: boolean;
function Load_GL_EXT_vertex_shader: boolean;
function Load_GL_ATI_vertex_streams: boolean;
function Load_GL_ATI_element_array: boolean;
function Load_GL_SUN_mesh_array: boolean;
function Load_GL_SUN_slice_accum: boolean;
function Load_GL_NV_multisample_filter_hint: boolean;
function Load_GL_NV_depth_clamp: boolean;
function Load_GL_NV_occlusion_query: boolean;
function Load_GL_NV_point_sprite: boolean;
function Load_GL_NV_texture_shader3: boolean;
function Load_GL_NV_vertex_program1_1: boolean;
function Load_GL_EXT_shadow_funcs: boolean;
function Load_GL_EXT_stencil_two_side: boolean;
function Load_GL_ATI_text_fragment_shader: boolean;
function Load_GL_APPLE_client_storage: boolean;
function Load_GL_APPLE_element_array: boolean;
function Load_GL_APPLE_fence: boolean;
function Load_GL_APPLE_vertex_array_object: boolean;
function Load_GL_APPLE_vertex_array_range: boolean;
function Load_GL_APPLE_ycbcr_422: boolean;
function Load_GL_S3_s3tc: boolean;
function Load_GL_ATI_draw_buffers: boolean;
function Load_GL_ATI_pixel_format_float: boolean;
function Load_GL_ATI_texture_env_combine3: boolean;
function Load_GL_ATI_texture_float: boolean;
function Load_GL_NV_float_buffer: boolean;
function Load_GL_NV_fragment_program: boolean;
function Load_GL_NV_half_float: boolean;
function Load_GL_NV_pixel_data_range: boolean;
function Load_GL_NV_primitive_restart: boolean;
function Load_GL_NV_texture_expand_normal: boolean;
function Load_GL_NV_vertex_program2: boolean;
function Load_GL_ATI_map_object_buffer: boolean;
function Load_GL_ATI_separate_stencil: boolean;
function Load_GL_ATI_vertex_attrib_array_object: boolean;
function Load_GL_OES_read_format: boolean;
function Load_GL_EXT_depth_bounds_test: boolean;
function Load_GL_EXT_texture_mirror_clamp: boolean;
function Load_GL_EXT_blend_equation_separate: boolean;
function Load_GL_MESA_pack_invert: boolean;
function Load_GL_MESA_ycbcr_texture: boolean;
function Load_GL_EXT_pixel_buffer_object: boolean;
function Load_GL_NV_fragment_program_option: boolean;
function Load_GL_NV_fragment_program2: boolean;
function Load_GL_NV_vertex_program2_option: boolean;
function Load_GL_NV_vertex_program3: boolean;
function Load_GL_EXT_framebuffer_object: boolean;
function Load_GL_GREMEDY_string_marker: boolean;

(***) implementation (***)

(*** GL_VERSION_1_2 ***)
function Load_GL_VERSION_1_2: boolean;
begin
  result := false;
  glBlendColor := wglGetProcAddress('glBlendColor');
  if not Assigned(glBlendColor) then exit;
  glBlendEquation := wglGetProcAddress('glBlendEquation');
  if not Assigned(glBlendEquation) then exit;
  glDrawRangeElements := wglGetProcAddress('glDrawRangeElements');
  if not Assigned(glDrawRangeElements) then exit;
  glColorTable := wglGetProcAddress('glColorTable');
  if not Assigned(glColorTable) then exit;
  glColorTableParameterfv := wglGetProcAddress('glColorTableParameterfv');
  if not Assigned(glColorTableParameterfv) then exit;
  glColorTableParameteriv := wglGetProcAddress('glColorTableParameteriv');
  if not Assigned(glColorTableParameteriv) then exit;
  glCopyColorTable := wglGetProcAddress('glCopyColorTable');
  if not Assigned(glCopyColorTable) then exit;
  glGetColorTable := wglGetProcAddress('glGetColorTable');
  if not Assigned(glGetColorTable) then exit;
  glGetColorTableParameterfv := wglGetProcAddress('glGetColorTableParameterfv');
  if not Assigned(glGetColorTableParameterfv) then exit;
  glGetColorTableParameteriv := wglGetProcAddress('glGetColorTableParameteriv');
  if not Assigned(glGetColorTableParameteriv) then exit;
  glColorSubTable := wglGetProcAddress('glColorSubTable');
  if not Assigned(glColorSubTable) then exit;
  glCopyColorSubTable := wglGetProcAddress('glCopyColorSubTable');
  if not Assigned(glCopyColorSubTable) then exit;
  glConvolutionFilter1D := wglGetProcAddress('glConvolutionFilter1D');
  if not Assigned(glConvolutionFilter1D) then exit;
  glConvolutionFilter2D := wglGetProcAddress('glConvolutionFilter2D');
  if not Assigned(glConvolutionFilter2D) then exit;
  glConvolutionParameterf := wglGetProcAddress('glConvolutionParameterf');
  if not Assigned(glConvolutionParameterf) then exit;
  glConvolutionParameterfv := wglGetProcAddress('glConvolutionParameterfv');
  if not Assigned(glConvolutionParameterfv) then exit;
  glConvolutionParameteri := wglGetProcAddress('glConvolutionParameteri');
  if not Assigned(glConvolutionParameteri) then exit;
  glConvolutionParameteriv := wglGetProcAddress('glConvolutionParameteriv');
  if not Assigned(glConvolutionParameteriv) then exit;
  glCopyConvolutionFilter1D := wglGetProcAddress('glCopyConvolutionFilter1D');
  if not Assigned(glCopyConvolutionFilter1D) then exit;
  glCopyConvolutionFilter2D := wglGetProcAddress('glCopyConvolutionFilter2D');
  if not Assigned(glCopyConvolutionFilter2D) then exit;
  glGetConvolutionFilter := wglGetProcAddress('glGetConvolutionFilter');
  if not Assigned(glGetConvolutionFilter) then exit;
  glGetConvolutionParameterfv := wglGetProcAddress('glGetConvolutionParameterfv');
  if not Assigned(glGetConvolutionParameterfv) then exit;
  glGetConvolutionParameteriv := wglGetProcAddress('glGetConvolutionParameteriv');
  if not Assigned(glGetConvolutionParameteriv) then exit;
  glGetSeparableFilter := wglGetProcAddress('glGetSeparableFilter');
  if not Assigned(glGetSeparableFilter) then exit;
  glSeparableFilter2D := wglGetProcAddress('glSeparableFilter2D');
  if not Assigned(glSeparableFilter2D) then exit;
  glGetHistogram := wglGetProcAddress('glGetHistogram');
  if not Assigned(glGetHistogram) then exit;
  glGetHistogramParameterfv := wglGetProcAddress('glGetHistogramParameterfv');
  if not Assigned(glGetHistogramParameterfv) then exit;
  glGetHistogramParameteriv := wglGetProcAddress('glGetHistogramParameteriv');
  if not Assigned(glGetHistogramParameteriv) then exit;
  glGetMinmax := wglGetProcAddress('glGetMinmax');
  if not Assigned(glGetMinmax) then exit;
  glGetMinmaxParameterfv := wglGetProcAddress('glGetMinmaxParameterfv');
  if not Assigned(glGetMinmaxParameterfv) then exit;
  glGetMinmaxParameteriv := wglGetProcAddress('glGetMinmaxParameteriv');
  if not Assigned(glGetMinmaxParameteriv) then exit;
  glHistogram := wglGetProcAddress('glHistogram');
  if not Assigned(glHistogram) then exit;
  glMinmax := wglGetProcAddress('glMinmax');
  if not Assigned(glMinmax) then exit;
  glResetHistogram := wglGetProcAddress('glResetHistogram');
  if not Assigned(glResetHistogram) then exit;
  glResetMinmax := wglGetProcAddress('glResetMinmax');
  if not Assigned(glResetMinmax) then exit;
  glTexImage3D := wglGetProcAddress('glTexImage3D');
  if not Assigned(glTexImage3D) then exit;
  glTexSubImage3D := wglGetProcAddress('glTexSubImage3D');
  if not Assigned(glTexSubImage3D) then exit;
  glCopyTexSubImage3D := wglGetProcAddress('glCopyTexSubImage3D');
  if not Assigned(glCopyTexSubImage3D) then exit;
  result := true;
end;

(*** GL_VERSION_1_3 ***)
function Load_GL_VERSION_1_3: boolean;
begin
  result := false;
  glActiveTexture := wglGetProcAddress('glActiveTexture');
  if not Assigned(glActiveTexture) then exit;
  glClientActiveTexture := wglGetProcAddress('glClientActiveTexture');
  if not Assigned(glClientActiveTexture) then exit;
  glMultiTexCoord1d := wglGetProcAddress('glMultiTexCoord1d');
  if not Assigned(glMultiTexCoord1d) then exit;
  glMultiTexCoord1dv := wglGetProcAddress('glMultiTexCoord1dv');
  if not Assigned(glMultiTexCoord1dv) then exit;
  glMultiTexCoord1f := wglGetProcAddress('glMultiTexCoord1f');
  if not Assigned(glMultiTexCoord1f) then exit;
  glMultiTexCoord1fv := wglGetProcAddress('glMultiTexCoord1fv');
  if not Assigned(glMultiTexCoord1fv) then exit;
  glMultiTexCoord1i := wglGetProcAddress('glMultiTexCoord1i');
  if not Assigned(glMultiTexCoord1i) then exit;
  glMultiTexCoord1iv := wglGetProcAddress('glMultiTexCoord1iv');
  if not Assigned(glMultiTexCoord1iv) then exit;
  glMultiTexCoord1s := wglGetProcAddress('glMultiTexCoord1s');
  if not Assigned(glMultiTexCoord1s) then exit;
  glMultiTexCoord1sv := wglGetProcAddress('glMultiTexCoord1sv');
  if not Assigned(glMultiTexCoord1sv) then exit;
  glMultiTexCoord2d := wglGetProcAddress('glMultiTexCoord2d');
  if not Assigned(glMultiTexCoord2d) then exit;
  glMultiTexCoord2dv := wglGetProcAddress('glMultiTexCoord2dv');
  if not Assigned(glMultiTexCoord2dv) then exit;
  glMultiTexCoord2f := wglGetProcAddress('glMultiTexCoord2f');
  if not Assigned(glMultiTexCoord2f) then exit;
  glMultiTexCoord2fv := wglGetProcAddress('glMultiTexCoord2fv');
  if not Assigned(glMultiTexCoord2fv) then exit;
  glMultiTexCoord2i := wglGetProcAddress('glMultiTexCoord2i');
  if not Assigned(glMultiTexCoord2i) then exit;
  glMultiTexCoord2iv := wglGetProcAddress('glMultiTexCoord2iv');
  if not Assigned(glMultiTexCoord2iv) then exit;
  glMultiTexCoord2s := wglGetProcAddress('glMultiTexCoord2s');
  if not Assigned(glMultiTexCoord2s) then exit;
  glMultiTexCoord2sv := wglGetProcAddress('glMultiTexCoord2sv');
  if not Assigned(glMultiTexCoord2sv) then exit;
  glMultiTexCoord3d := wglGetProcAddress('glMultiTexCoord3d');
  if not Assigned(glMultiTexCoord3d) then exit;
  glMultiTexCoord3dv := wglGetProcAddress('glMultiTexCoord3dv');
  if not Assigned(glMultiTexCoord3dv) then exit;
  glMultiTexCoord3f := wglGetProcAddress('glMultiTexCoord3f');
  if not Assigned(glMultiTexCoord3f) then exit;
  glMultiTexCoord3fv := wglGetProcAddress('glMultiTexCoord3fv');
  if not Assigned(glMultiTexCoord3fv) then exit;
  glMultiTexCoord3i := wglGetProcAddress('glMultiTexCoord3i');
  if not Assigned(glMultiTexCoord3i) then exit;
  glMultiTexCoord3iv := wglGetProcAddress('glMultiTexCoord3iv');
  if not Assigned(glMultiTexCoord3iv) then exit;
  glMultiTexCoord3s := wglGetProcAddress('glMultiTexCoord3s');
  if not Assigned(glMultiTexCoord3s) then exit;
  glMultiTexCoord3sv := wglGetProcAddress('glMultiTexCoord3sv');
  if not Assigned(glMultiTexCoord3sv) then exit;
  glMultiTexCoord4d := wglGetProcAddress('glMultiTexCoord4d');
  if not Assigned(glMultiTexCoord4d) then exit;
  glMultiTexCoord4dv := wglGetProcAddress('glMultiTexCoord4dv');
  if not Assigned(glMultiTexCoord4dv) then exit;
  glMultiTexCoord4f := wglGetProcAddress('glMultiTexCoord4f');
  if not Assigned(glMultiTexCoord4f) then exit;
  glMultiTexCoord4fv := wglGetProcAddress('glMultiTexCoord4fv');
  if not Assigned(glMultiTexCoord4fv) then exit;
  glMultiTexCoord4i := wglGetProcAddress('glMultiTexCoord4i');
  if not Assigned(glMultiTexCoord4i) then exit;
  glMultiTexCoord4iv := wglGetProcAddress('glMultiTexCoord4iv');
  if not Assigned(glMultiTexCoord4iv) then exit;
  glMultiTexCoord4s := wglGetProcAddress('glMultiTexCoord4s');
  if not Assigned(glMultiTexCoord4s) then exit;
  glMultiTexCoord4sv := wglGetProcAddress('glMultiTexCoord4sv');
  if not Assigned(glMultiTexCoord4sv) then exit;
  glLoadTransposeMatrixf := wglGetProcAddress('glLoadTransposeMatrixf');
  if not Assigned(glLoadTransposeMatrixf) then exit;
  glLoadTransposeMatrixd := wglGetProcAddress('glLoadTransposeMatrixd');
  if not Assigned(glLoadTransposeMatrixd) then exit;
  glMultTransposeMatrixf := wglGetProcAddress('glMultTransposeMatrixf');
  if not Assigned(glMultTransposeMatrixf) then exit;
  glMultTransposeMatrixd := wglGetProcAddress('glMultTransposeMatrixd');
  if not Assigned(glMultTransposeMatrixd) then exit;
  glSampleCoverage := wglGetProcAddress('glSampleCoverage');
  if not Assigned(glSampleCoverage) then exit;
  glCompressedTexImage3D := wglGetProcAddress('glCompressedTexImage3D');
  if not Assigned(glCompressedTexImage3D) then exit;
  glCompressedTexImage2D := wglGetProcAddress('glCompressedTexImage2D');
  if not Assigned(glCompressedTexImage2D) then exit;
  glCompressedTexImage1D := wglGetProcAddress('glCompressedTexImage1D');
  if not Assigned(glCompressedTexImage1D) then exit;
  glCompressedTexSubImage3D := wglGetProcAddress('glCompressedTexSubImage3D');
  if not Assigned(glCompressedTexSubImage3D) then exit;
  glCompressedTexSubImage2D := wglGetProcAddress('glCompressedTexSubImage2D');
  if not Assigned(glCompressedTexSubImage2D) then exit;
  glCompressedTexSubImage1D := wglGetProcAddress('glCompressedTexSubImage1D');
  if not Assigned(glCompressedTexSubImage1D) then exit;
  glGetCompressedTexImage := wglGetProcAddress('glGetCompressedTexImage');
  if not Assigned(glGetCompressedTexImage) then exit;
  result := true;
end;

(*** GL_VERSION_1_4 ***)
function Load_GL_VERSION_1_4: boolean;
begin
  result := false;
  glBlendFuncSeparate := wglGetProcAddress('glBlendFuncSeparate');
  if not Assigned(glBlendFuncSeparate) then exit;
  glFogCoordf := wglGetProcAddress('glFogCoordf');
  if not Assigned(glFogCoordf) then exit;
  glFogCoordfv := wglGetProcAddress('glFogCoordfv');
  if not Assigned(glFogCoordfv) then exit;
  glFogCoordd := wglGetProcAddress('glFogCoordd');
  if not Assigned(glFogCoordd) then exit;
  glFogCoorddv := wglGetProcAddress('glFogCoorddv');
  if not Assigned(glFogCoorddv) then exit;
  glFogCoordPointer := wglGetProcAddress('glFogCoordPointer');
  if not Assigned(glFogCoordPointer) then exit;
  glMultiDrawArrays := wglGetProcAddress('glMultiDrawArrays');
  if not Assigned(glMultiDrawArrays) then exit;
  glMultiDrawElements := wglGetProcAddress('glMultiDrawElements');
  if not Assigned(glMultiDrawElements) then exit;
  glPointParameterf := wglGetProcAddress('glPointParameterf');
  if not Assigned(glPointParameterf) then exit;
  glPointParameterfv := wglGetProcAddress('glPointParameterfv');
  if not Assigned(glPointParameterfv) then exit;
  glPointParameteri := wglGetProcAddress('glPointParameteri');
  if not Assigned(glPointParameteri) then exit;
  glPointParameteriv := wglGetProcAddress('glPointParameteriv');
  if not Assigned(glPointParameteriv) then exit;
  glSecondaryColor3b := wglGetProcAddress('glSecondaryColor3b');
  if not Assigned(glSecondaryColor3b) then exit;
  glSecondaryColor3bv := wglGetProcAddress('glSecondaryColor3bv');
  if not Assigned(glSecondaryColor3bv) then exit;
  glSecondaryColor3d := wglGetProcAddress('glSecondaryColor3d');
  if not Assigned(glSecondaryColor3d) then exit;
  glSecondaryColor3dv := wglGetProcAddress('glSecondaryColor3dv');
  if not Assigned(glSecondaryColor3dv) then exit;
  glSecondaryColor3f := wglGetProcAddress('glSecondaryColor3f');
  if not Assigned(glSecondaryColor3f) then exit;
  glSecondaryColor3fv := wglGetProcAddress('glSecondaryColor3fv');
  if not Assigned(glSecondaryColor3fv) then exit;
  glSecondaryColor3i := wglGetProcAddress('glSecondaryColor3i');
  if not Assigned(glSecondaryColor3i) then exit;
  glSecondaryColor3iv := wglGetProcAddress('glSecondaryColor3iv');
  if not Assigned(glSecondaryColor3iv) then exit;
  glSecondaryColor3s := wglGetProcAddress('glSecondaryColor3s');
  if not Assigned(glSecondaryColor3s) then exit;
  glSecondaryColor3sv := wglGetProcAddress('glSecondaryColor3sv');
  if not Assigned(glSecondaryColor3sv) then exit;
  glSecondaryColor3ub := wglGetProcAddress('glSecondaryColor3ub');
  if not Assigned(glSecondaryColor3ub) then exit;
  glSecondaryColor3ubv := wglGetProcAddress('glSecondaryColor3ubv');
  if not Assigned(glSecondaryColor3ubv) then exit;
  glSecondaryColor3ui := wglGetProcAddress('glSecondaryColor3ui');
  if not Assigned(glSecondaryColor3ui) then exit;
  glSecondaryColor3uiv := wglGetProcAddress('glSecondaryColor3uiv');
  if not Assigned(glSecondaryColor3uiv) then exit;
  glSecondaryColor3us := wglGetProcAddress('glSecondaryColor3us');
  if not Assigned(glSecondaryColor3us) then exit;
  glSecondaryColor3usv := wglGetProcAddress('glSecondaryColor3usv');
  if not Assigned(glSecondaryColor3usv) then exit;
  glSecondaryColorPointer := wglGetProcAddress('glSecondaryColorPointer');
  if not Assigned(glSecondaryColorPointer) then exit;
  glWindowPos2d := wglGetProcAddress('glWindowPos2d');
  if not Assigned(glWindowPos2d) then exit;
  glWindowPos2dv := wglGetProcAddress('glWindowPos2dv');
  if not Assigned(glWindowPos2dv) then exit;
  glWindowPos2f := wglGetProcAddress('glWindowPos2f');
  if not Assigned(glWindowPos2f) then exit;
  glWindowPos2fv := wglGetProcAddress('glWindowPos2fv');
  if not Assigned(glWindowPos2fv) then exit;
  glWindowPos2i := wglGetProcAddress('glWindowPos2i');
  if not Assigned(glWindowPos2i) then exit;
  glWindowPos2iv := wglGetProcAddress('glWindowPos2iv');
  if not Assigned(glWindowPos2iv) then exit;
  glWindowPos2s := wglGetProcAddress('glWindowPos2s');
  if not Assigned(glWindowPos2s) then exit;
  glWindowPos2sv := wglGetProcAddress('glWindowPos2sv');
  if not Assigned(glWindowPos2sv) then exit;
  glWindowPos3d := wglGetProcAddress('glWindowPos3d');
  if not Assigned(glWindowPos3d) then exit;
  glWindowPos3dv := wglGetProcAddress('glWindowPos3dv');
  if not Assigned(glWindowPos3dv) then exit;
  glWindowPos3f := wglGetProcAddress('glWindowPos3f');
  if not Assigned(glWindowPos3f) then exit;
  glWindowPos3fv := wglGetProcAddress('glWindowPos3fv');
  if not Assigned(glWindowPos3fv) then exit;
  glWindowPos3i := wglGetProcAddress('glWindowPos3i');
  if not Assigned(glWindowPos3i) then exit;
  glWindowPos3iv := wglGetProcAddress('glWindowPos3iv');
  if not Assigned(glWindowPos3iv) then exit;
  glWindowPos3s := wglGetProcAddress('glWindowPos3s');
  if not Assigned(glWindowPos3s) then exit;
  glWindowPos3sv := wglGetProcAddress('glWindowPos3sv');
  if not Assigned(glWindowPos3sv) then exit;
  result := true;
end;

(*** GL_VERSION_1_5 ***)
function Load_GL_VERSION_1_5: boolean;
begin
  result := false;
  glGenQueries := wglGetProcAddress('glGenQueries');
  if not Assigned(glGenQueries) then exit;
  glDeleteQueries := wglGetProcAddress('glDeleteQueries');
  if not Assigned(glDeleteQueries) then exit;
  glIsQuery := wglGetProcAddress('glIsQuery');
  if not Assigned(glIsQuery) then exit;
  glBeginQuery := wglGetProcAddress('glBeginQuery');
  if not Assigned(glBeginQuery) then exit;
  glEndQuery := wglGetProcAddress('glEndQuery');
  if not Assigned(glEndQuery) then exit;
  glGetQueryiv := wglGetProcAddress('glGetQueryiv');
  if not Assigned(glGetQueryiv) then exit;
  glGetQueryObjectiv := wglGetProcAddress('glGetQueryObjectiv');
  if not Assigned(glGetQueryObjectiv) then exit;
  glGetQueryObjectuiv := wglGetProcAddress('glGetQueryObjectuiv');
  if not Assigned(glGetQueryObjectuiv) then exit;
  glBindBuffer := wglGetProcAddress('glBindBuffer');
  if not Assigned(glBindBuffer) then exit;
  glDeleteBuffers := wglGetProcAddress('glDeleteBuffers');
  if not Assigned(glDeleteBuffers) then exit;
  glGenBuffers := wglGetProcAddress('glGenBuffers');
  if not Assigned(glGenBuffers) then exit;
  glIsBuffer := wglGetProcAddress('glIsBuffer');
  if not Assigned(glIsBuffer) then exit;
  glBufferData := wglGetProcAddress('glBufferData');
  if not Assigned(glBufferData) then exit;
  glBufferSubData := wglGetProcAddress('glBufferSubData');
  if not Assigned(glBufferSubData) then exit;
  glGetBufferSubData := wglGetProcAddress('glGetBufferSubData');
  if not Assigned(glGetBufferSubData) then exit;
  glMapBuffer := wglGetProcAddress('glMapBuffer');
  if not Assigned(glMapBuffer) then exit;
  glUnmapBuffer := wglGetProcAddress('glUnmapBuffer');
  if not Assigned(glUnmapBuffer) then exit;
  glGetBufferParameteriv := wglGetProcAddress('glGetBufferParameteriv');
  if not Assigned(glGetBufferParameteriv) then exit;
  glGetBufferPointerv := wglGetProcAddress('glGetBufferPointerv');
  if not Assigned(glGetBufferPointerv) then exit;
  result := true;
end;

(*** GL_VERSION_2_0 ***)
function Load_GL_VERSION_2_0: boolean;
begin
  result := false;
  glBlendEquationSeparate := wglGetProcAddress('glBlendEquationSeparate');
  if not Assigned(glBlendEquationSeparate) then exit;
  glDrawBuffers := wglGetProcAddress('glDrawBuffers');
  if not Assigned(glDrawBuffers) then exit;
  glStencilOpSeparate := wglGetProcAddress('glStencilOpSeparate');
  if not Assigned(glStencilOpSeparate) then exit;
  glStencilFuncSeparate := wglGetProcAddress('glStencilFuncSeparate');
  if not Assigned(glStencilFuncSeparate) then exit;
  glStencilMaskSeparate := wglGetProcAddress('glStencilMaskSeparate');
  if not Assigned(glStencilMaskSeparate) then exit;
  glAttachShader := wglGetProcAddress('glAttachShader');
  if not Assigned(glAttachShader) then exit;
  glBindAttribLocation := wglGetProcAddress('glBindAttribLocation');
  if not Assigned(glBindAttribLocation) then exit;
  glCompileShader := wglGetProcAddress('glCompileShader');
  if not Assigned(glCompileShader) then exit;
  glCreateProgram := wglGetProcAddress('glCreateProgram');
  if not Assigned(glCreateProgram) then exit;
  glCreateShader := wglGetProcAddress('glCreateShader');
  if not Assigned(glCreateShader) then exit;
  glDeleteProgram := wglGetProcAddress('glDeleteProgram');
  if not Assigned(glDeleteProgram) then exit;
  glDeleteShader := wglGetProcAddress('glDeleteShader');
  if not Assigned(glDeleteShader) then exit;
  glDetachShader := wglGetProcAddress('glDetachShader');
  if not Assigned(glDetachShader) then exit;
  glDisableVertexAttribArray := wglGetProcAddress('glDisableVertexAttribArray');
  if not Assigned(glDisableVertexAttribArray) then exit;
  glEnableVertexAttribArray := wglGetProcAddress('glEnableVertexAttribArray');
  if not Assigned(glEnableVertexAttribArray) then exit;
  glGetActiveAttrib := wglGetProcAddress('glGetActiveAttrib');
  if not Assigned(glGetActiveAttrib) then exit;
  glGetActiveUniform := wglGetProcAddress('glGetActiveUniform');
  if not Assigned(glGetActiveUniform) then exit;
  glGetAttachedShaders := wglGetProcAddress('glGetAttachedShaders');
  if not Assigned(glGetAttachedShaders) then exit;
  glGetAttribLocation := wglGetProcAddress('glGetAttribLocation');
  if not Assigned(glGetAttribLocation) then exit;
  glGetProgramiv := wglGetProcAddress('glGetProgramiv');
  if not Assigned(glGetProgramiv) then exit;
  glGetProgramInfoLog := wglGetProcAddress('glGetProgramInfoLog');
  if not Assigned(glGetProgramInfoLog) then exit;
  glGetShaderiv := wglGetProcAddress('glGetShaderiv');
  if not Assigned(glGetShaderiv) then exit;
  glGetShaderInfoLog := wglGetProcAddress('glGetShaderInfoLog');
  if not Assigned(glGetShaderInfoLog) then exit;
  glGetShaderSource := wglGetProcAddress('glGetShaderSource');
  if not Assigned(glGetShaderSource) then exit;
  glGetUniformLocation := wglGetProcAddress('glGetUniformLocation');
  if not Assigned(glGetUniformLocation) then exit;
  glGetUniformfv := wglGetProcAddress('glGetUniformfv');
  if not Assigned(glGetUniformfv) then exit;
  glGetUniformiv := wglGetProcAddress('glGetUniformiv');
  if not Assigned(glGetUniformiv) then exit;
  glGetVertexAttribdv := wglGetProcAddress('glGetVertexAttribdv');
  if not Assigned(glGetVertexAttribdv) then exit;
  glGetVertexAttribfv := wglGetProcAddress('glGetVertexAttribfv');
  if not Assigned(glGetVertexAttribfv) then exit;
  glGetVertexAttribiv := wglGetProcAddress('glGetVertexAttribiv');
  if not Assigned(glGetVertexAttribiv) then exit;
  glGetVertexAttribPointerv := wglGetProcAddress('glGetVertexAttribPointerv');
  if not Assigned(glGetVertexAttribPointerv) then exit;
  glIsProgram := wglGetProcAddress('glIsProgram');
  if not Assigned(glIsProgram) then exit;
  glIsShader := wglGetProcAddress('glIsShader');
  if not Assigned(glIsShader) then exit;
  glLinkProgram := wglGetProcAddress('glLinkProgram');
  if not Assigned(glLinkProgram) then exit;
  glShaderSource := wglGetProcAddress('glShaderSource');
  if not Assigned(glShaderSource) then exit;
  glUseProgram := wglGetProcAddress('glUseProgram');
  if not Assigned(glUseProgram) then exit;
  glUniform1f := wglGetProcAddress('glUniform1f');
  if not Assigned(glUniform1f) then exit;
  glUniform2f := wglGetProcAddress('glUniform2f');
  if not Assigned(glUniform2f) then exit;
  glUniform3f := wglGetProcAddress('glUniform3f');
  if not Assigned(glUniform3f) then exit;
  glUniform4f := wglGetProcAddress('glUniform4f');
  if not Assigned(glUniform4f) then exit;
  glUniform1i := wglGetProcAddress('glUniform1i');
  if not Assigned(glUniform1i) then exit;
  glUniform2i := wglGetProcAddress('glUniform2i');
  if not Assigned(glUniform2i) then exit;
  glUniform3i := wglGetProcAddress('glUniform3i');
  if not Assigned(glUniform3i) then exit;
  glUniform4i := wglGetProcAddress('glUniform4i');
  if not Assigned(glUniform4i) then exit;
  glUniform1fv := wglGetProcAddress('glUniform1fv');
  if not Assigned(glUniform1fv) then exit;
  glUniform2fv := wglGetProcAddress('glUniform2fv');
  if not Assigned(glUniform2fv) then exit;
  glUniform3fv := wglGetProcAddress('glUniform3fv');
  if not Assigned(glUniform3fv) then exit;
  glUniform4fv := wglGetProcAddress('glUniform4fv');
  if not Assigned(glUniform4fv) then exit;
  glUniform1iv := wglGetProcAddress('glUniform1iv');
  if not Assigned(glUniform1iv) then exit;
  glUniform2iv := wglGetProcAddress('glUniform2iv');
  if not Assigned(glUniform2iv) then exit;
  glUniform3iv := wglGetProcAddress('glUniform3iv');
  if not Assigned(glUniform3iv) then exit;
  glUniform4iv := wglGetProcAddress('glUniform4iv');
  if not Assigned(glUniform4iv) then exit;
  glUniformMatrix2fv := wglGetProcAddress('glUniformMatrix2fv');
  if not Assigned(glUniformMatrix2fv) then exit;
  glUniformMatrix3fv := wglGetProcAddress('glUniformMatrix3fv');
  if not Assigned(glUniformMatrix3fv) then exit;
  glUniformMatrix4fv := wglGetProcAddress('glUniformMatrix4fv');
  if not Assigned(glUniformMatrix4fv) then exit;
  glValidateProgram := wglGetProcAddress('glValidateProgram');
  if not Assigned(glValidateProgram) then exit;
  glVertexAttrib1d := wglGetProcAddress('glVertexAttrib1d');
  if not Assigned(glVertexAttrib1d) then exit;
  glVertexAttrib1dv := wglGetProcAddress('glVertexAttrib1dv');
  if not Assigned(glVertexAttrib1dv) then exit;
  glVertexAttrib1f := wglGetProcAddress('glVertexAttrib1f');
  if not Assigned(glVertexAttrib1f) then exit;
  glVertexAttrib1fv := wglGetProcAddress('glVertexAttrib1fv');
  if not Assigned(glVertexAttrib1fv) then exit;
  glVertexAttrib1s := wglGetProcAddress('glVertexAttrib1s');
  if not Assigned(glVertexAttrib1s) then exit;
  glVertexAttrib1sv := wglGetProcAddress('glVertexAttrib1sv');
  if not Assigned(glVertexAttrib1sv) then exit;
  glVertexAttrib2d := wglGetProcAddress('glVertexAttrib2d');
  if not Assigned(glVertexAttrib2d) then exit;
  glVertexAttrib2dv := wglGetProcAddress('glVertexAttrib2dv');
  if not Assigned(glVertexAttrib2dv) then exit;
  glVertexAttrib2f := wglGetProcAddress('glVertexAttrib2f');
  if not Assigned(glVertexAttrib2f) then exit;
  glVertexAttrib2fv := wglGetProcAddress('glVertexAttrib2fv');
  if not Assigned(glVertexAttrib2fv) then exit;
  glVertexAttrib2s := wglGetProcAddress('glVertexAttrib2s');
  if not Assigned(glVertexAttrib2s) then exit;
  glVertexAttrib2sv := wglGetProcAddress('glVertexAttrib2sv');
  if not Assigned(glVertexAttrib2sv) then exit;
  glVertexAttrib3d := wglGetProcAddress('glVertexAttrib3d');
  if not Assigned(glVertexAttrib3d) then exit;
  glVertexAttrib3dv := wglGetProcAddress('glVertexAttrib3dv');
  if not Assigned(glVertexAttrib3dv) then exit;
  glVertexAttrib3f := wglGetProcAddress('glVertexAttrib3f');
  if not Assigned(glVertexAttrib3f) then exit;
  glVertexAttrib3fv := wglGetProcAddress('glVertexAttrib3fv');
  if not Assigned(glVertexAttrib3fv) then exit;
  glVertexAttrib3s := wglGetProcAddress('glVertexAttrib3s');
  if not Assigned(glVertexAttrib3s) then exit;
  glVertexAttrib3sv := wglGetProcAddress('glVertexAttrib3sv');
  if not Assigned(glVertexAttrib3sv) then exit;
  glVertexAttrib4Nbv := wglGetProcAddress('glVertexAttrib4Nbv');
  if not Assigned(glVertexAttrib4Nbv) then exit;
  glVertexAttrib4Niv := wglGetProcAddress('glVertexAttrib4Niv');
  if not Assigned(glVertexAttrib4Niv) then exit;
  glVertexAttrib4Nsv := wglGetProcAddress('glVertexAttrib4Nsv');
  if not Assigned(glVertexAttrib4Nsv) then exit;
  glVertexAttrib4Nub := wglGetProcAddress('glVertexAttrib4Nub');
  if not Assigned(glVertexAttrib4Nub) then exit;
  glVertexAttrib4Nubv := wglGetProcAddress('glVertexAttrib4Nubv');
  if not Assigned(glVertexAttrib4Nubv) then exit;
  glVertexAttrib4Nuiv := wglGetProcAddress('glVertexAttrib4Nuiv');
  if not Assigned(glVertexAttrib4Nuiv) then exit;
  glVertexAttrib4Nusv := wglGetProcAddress('glVertexAttrib4Nusv');
  if not Assigned(glVertexAttrib4Nusv) then exit;
  glVertexAttrib4bv := wglGetProcAddress('glVertexAttrib4bv');
  if not Assigned(glVertexAttrib4bv) then exit;
  glVertexAttrib4d := wglGetProcAddress('glVertexAttrib4d');
  if not Assigned(glVertexAttrib4d) then exit;
  glVertexAttrib4dv := wglGetProcAddress('glVertexAttrib4dv');
  if not Assigned(glVertexAttrib4dv) then exit;
  glVertexAttrib4f := wglGetProcAddress('glVertexAttrib4f');
  if not Assigned(glVertexAttrib4f) then exit;
  glVertexAttrib4fv := wglGetProcAddress('glVertexAttrib4fv');
  if not Assigned(glVertexAttrib4fv) then exit;
  glVertexAttrib4iv := wglGetProcAddress('glVertexAttrib4iv');
  if not Assigned(glVertexAttrib4iv) then exit;
  glVertexAttrib4s := wglGetProcAddress('glVertexAttrib4s');
  if not Assigned(glVertexAttrib4s) then exit;
  glVertexAttrib4sv := wglGetProcAddress('glVertexAttrib4sv');
  if not Assigned(glVertexAttrib4sv) then exit;
  glVertexAttrib4ubv := wglGetProcAddress('glVertexAttrib4ubv');
  if not Assigned(glVertexAttrib4ubv) then exit;
  glVertexAttrib4uiv := wglGetProcAddress('glVertexAttrib4uiv');
  if not Assigned(glVertexAttrib4uiv) then exit;
  glVertexAttrib4usv := wglGetProcAddress('glVertexAttrib4usv');
  if not Assigned(glVertexAttrib4usv) then exit;
  glVertexAttribPointer := wglGetProcAddress('glVertexAttribPointer');
  if not Assigned(glVertexAttribPointer) then exit;
  result := true;
end;

(*** GL_ARB_multitexture ***)
function Load_GL_ARB_multitexture: boolean;
begin
  result := false;
  glActiveTextureARB := wglGetProcAddress('glActiveTextureARB');
  if not Assigned(glActiveTextureARB) then exit;
  glClientActiveTextureARB := wglGetProcAddress('glClientActiveTextureARB');
  if not Assigned(glClientActiveTextureARB) then exit;
  glMultiTexCoord1dARB := wglGetProcAddress('glMultiTexCoord1dARB');
  if not Assigned(glMultiTexCoord1dARB) then exit;
  glMultiTexCoord1dvARB := wglGetProcAddress('glMultiTexCoord1dvARB');
  if not Assigned(glMultiTexCoord1dvARB) then exit;
  glMultiTexCoord1fARB := wglGetProcAddress('glMultiTexCoord1fARB');
  if not Assigned(glMultiTexCoord1fARB) then exit;
  glMultiTexCoord1fvARB := wglGetProcAddress('glMultiTexCoord1fvARB');
  if not Assigned(glMultiTexCoord1fvARB) then exit;
  glMultiTexCoord1iARB := wglGetProcAddress('glMultiTexCoord1iARB');
  if not Assigned(glMultiTexCoord1iARB) then exit;
  glMultiTexCoord1ivARB := wglGetProcAddress('glMultiTexCoord1ivARB');
  if not Assigned(glMultiTexCoord1ivARB) then exit;
  glMultiTexCoord1sARB := wglGetProcAddress('glMultiTexCoord1sARB');
  if not Assigned(glMultiTexCoord1sARB) then exit;
  glMultiTexCoord1svARB := wglGetProcAddress('glMultiTexCoord1svARB');
  if not Assigned(glMultiTexCoord1svARB) then exit;
  glMultiTexCoord2dARB := wglGetProcAddress('glMultiTexCoord2dARB');
  if not Assigned(glMultiTexCoord2dARB) then exit;
  glMultiTexCoord2dvARB := wglGetProcAddress('glMultiTexCoord2dvARB');
  if not Assigned(glMultiTexCoord2dvARB) then exit;
  glMultiTexCoord2fARB := wglGetProcAddress('glMultiTexCoord2fARB');
  if not Assigned(glMultiTexCoord2fARB) then exit;
  glMultiTexCoord2fvARB := wglGetProcAddress('glMultiTexCoord2fvARB');
  if not Assigned(glMultiTexCoord2fvARB) then exit;
  glMultiTexCoord2iARB := wglGetProcAddress('glMultiTexCoord2iARB');
  if not Assigned(glMultiTexCoord2iARB) then exit;
  glMultiTexCoord2ivARB := wglGetProcAddress('glMultiTexCoord2ivARB');
  if not Assigned(glMultiTexCoord2ivARB) then exit;
  glMultiTexCoord2sARB := wglGetProcAddress('glMultiTexCoord2sARB');
  if not Assigned(glMultiTexCoord2sARB) then exit;
  glMultiTexCoord2svARB := wglGetProcAddress('glMultiTexCoord2svARB');
  if not Assigned(glMultiTexCoord2svARB) then exit;
  glMultiTexCoord3dARB := wglGetProcAddress('glMultiTexCoord3dARB');
  if not Assigned(glMultiTexCoord3dARB) then exit;
  glMultiTexCoord3dvARB := wglGetProcAddress('glMultiTexCoord3dvARB');
  if not Assigned(glMultiTexCoord3dvARB) then exit;
  glMultiTexCoord3fARB := wglGetProcAddress('glMultiTexCoord3fARB');
  if not Assigned(glMultiTexCoord3fARB) then exit;
  glMultiTexCoord3fvARB := wglGetProcAddress('glMultiTexCoord3fvARB');
  if not Assigned(glMultiTexCoord3fvARB) then exit;
  glMultiTexCoord3iARB := wglGetProcAddress('glMultiTexCoord3iARB');
  if not Assigned(glMultiTexCoord3iARB) then exit;
  glMultiTexCoord3ivARB := wglGetProcAddress('glMultiTexCoord3ivARB');
  if not Assigned(glMultiTexCoord3ivARB) then exit;
  glMultiTexCoord3sARB := wglGetProcAddress('glMultiTexCoord3sARB');
  if not Assigned(glMultiTexCoord3sARB) then exit;
  glMultiTexCoord3svARB := wglGetProcAddress('glMultiTexCoord3svARB');
  if not Assigned(glMultiTexCoord3svARB) then exit;
  glMultiTexCoord4dARB := wglGetProcAddress('glMultiTexCoord4dARB');
  if not Assigned(glMultiTexCoord4dARB) then exit;
  glMultiTexCoord4dvARB := wglGetProcAddress('glMultiTexCoord4dvARB');
  if not Assigned(glMultiTexCoord4dvARB) then exit;
  glMultiTexCoord4fARB := wglGetProcAddress('glMultiTexCoord4fARB');
  if not Assigned(glMultiTexCoord4fARB) then exit;
  glMultiTexCoord4fvARB := wglGetProcAddress('glMultiTexCoord4fvARB');
  if not Assigned(glMultiTexCoord4fvARB) then exit;
  glMultiTexCoord4iARB := wglGetProcAddress('glMultiTexCoord4iARB');
  if not Assigned(glMultiTexCoord4iARB) then exit;
  glMultiTexCoord4ivARB := wglGetProcAddress('glMultiTexCoord4ivARB');
  if not Assigned(glMultiTexCoord4ivARB) then exit;
  glMultiTexCoord4sARB := wglGetProcAddress('glMultiTexCoord4sARB');
  if not Assigned(glMultiTexCoord4sARB) then exit;
  glMultiTexCoord4svARB := wglGetProcAddress('glMultiTexCoord4svARB');
  if not Assigned(glMultiTexCoord4svARB) then exit;
  result := true;
end;

(*** GL_ARB_transpose_matrix ***)
function Load_GL_ARB_transpose_matrix: boolean;
begin
  result := false;
  glLoadTransposeMatrixfARB := wglGetProcAddress('glLoadTransposeMatrixfARB');
  if not Assigned(glLoadTransposeMatrixfARB) then exit;
  glLoadTransposeMatrixdARB := wglGetProcAddress('glLoadTransposeMatrixdARB');
  if not Assigned(glLoadTransposeMatrixdARB) then exit;
  glMultTransposeMatrixfARB := wglGetProcAddress('glMultTransposeMatrixfARB');
  if not Assigned(glMultTransposeMatrixfARB) then exit;
  glMultTransposeMatrixdARB := wglGetProcAddress('glMultTransposeMatrixdARB');
  if not Assigned(glMultTransposeMatrixdARB) then exit;
  result := true;
end;

(*** GL_ARB_multisample ***)
function Load_GL_ARB_multisample: boolean;
begin
  result := false;
  glSampleCoverageARB := wglGetProcAddress('glSampleCoverageARB');
  if not Assigned(glSampleCoverageARB) then exit;
  result := true;
end;

(*** GL_ARB_texture_env_add ***)
function Load_GL_ARB_texture_env_add: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_texture_cube_map ***)
function Load_GL_ARB_texture_cube_map: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_texture_compression ***)
function Load_GL_ARB_texture_compression: boolean;
begin
  result := false;
  glCompressedTexImage3DARB := wglGetProcAddress('glCompressedTexImage3DARB');
  if not Assigned(glCompressedTexImage3DARB) then exit;
  glCompressedTexImage2DARB := wglGetProcAddress('glCompressedTexImage2DARB');
  if not Assigned(glCompressedTexImage2DARB) then exit;
  glCompressedTexImage1DARB := wglGetProcAddress('glCompressedTexImage1DARB');
  if not Assigned(glCompressedTexImage1DARB) then exit;
  glCompressedTexSubImage3DARB := wglGetProcAddress('glCompressedTexSubImage3DARB');
  if not Assigned(glCompressedTexSubImage3DARB) then exit;
  glCompressedTexSubImage2DARB := wglGetProcAddress('glCompressedTexSubImage2DARB');
  if not Assigned(glCompressedTexSubImage2DARB) then exit;
  glCompressedTexSubImage1DARB := wglGetProcAddress('glCompressedTexSubImage1DARB');
  if not Assigned(glCompressedTexSubImage1DARB) then exit;
  glGetCompressedTexImageARB := wglGetProcAddress('glGetCompressedTexImageARB');
  if not Assigned(glGetCompressedTexImageARB) then exit;
  result := true;
end;

(*** GL_ARB_texture_border_clamp ***)
function Load_GL_ARB_texture_border_clamp: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_point_parameters ***)
function Load_GL_ARB_point_parameters: boolean;
begin
  result := false;
  glPointParameterfARB := wglGetProcAddress('glPointParameterfARB');
  if not Assigned(glPointParameterfARB) then exit;
  glPointParameterfvARB := wglGetProcAddress('glPointParameterfvARB');
  if not Assigned(glPointParameterfvARB) then exit;
  result := true;
end;

(*** GL_ARB_vertex_blend ***)
function Load_GL_ARB_vertex_blend: boolean;
begin
  result := false;
  glWeightbvARB := wglGetProcAddress('glWeightbvARB');
  if not Assigned(glWeightbvARB) then exit;
  glWeightsvARB := wglGetProcAddress('glWeightsvARB');
  if not Assigned(glWeightsvARB) then exit;
  glWeightivARB := wglGetProcAddress('glWeightivARB');
  if not Assigned(glWeightivARB) then exit;
  glWeightfvARB := wglGetProcAddress('glWeightfvARB');
  if not Assigned(glWeightfvARB) then exit;
  glWeightdvARB := wglGetProcAddress('glWeightdvARB');
  if not Assigned(glWeightdvARB) then exit;
  glWeightubvARB := wglGetProcAddress('glWeightubvARB');
  if not Assigned(glWeightubvARB) then exit;
  glWeightusvARB := wglGetProcAddress('glWeightusvARB');
  if not Assigned(glWeightusvARB) then exit;
  glWeightuivARB := wglGetProcAddress('glWeightuivARB');
  if not Assigned(glWeightuivARB) then exit;
  glWeightPointerARB := wglGetProcAddress('glWeightPointerARB');
  if not Assigned(glWeightPointerARB) then exit;
  glVertexBlendARB := wglGetProcAddress('glVertexBlendARB');
  if not Assigned(glVertexBlendARB) then exit;
  result := true;
end;

(*** GL_ARB_matrix_palette ***)
function Load_GL_ARB_matrix_palette: boolean;
begin
  result := false;
  glCurrentPaletteMatrixARB := wglGetProcAddress('glCurrentPaletteMatrixARB');
  if not Assigned(glCurrentPaletteMatrixARB) then exit;
  glMatrixIndexubvARB := wglGetProcAddress('glMatrixIndexubvARB');
  if not Assigned(glMatrixIndexubvARB) then exit;
  glMatrixIndexusvARB := wglGetProcAddress('glMatrixIndexusvARB');
  if not Assigned(glMatrixIndexusvARB) then exit;
  glMatrixIndexuivARB := wglGetProcAddress('glMatrixIndexuivARB');
  if not Assigned(glMatrixIndexuivARB) then exit;
  glMatrixIndexPointerARB := wglGetProcAddress('glMatrixIndexPointerARB');
  if not Assigned(glMatrixIndexPointerARB) then exit;
  result := true;
end;

(*** GL_ARB_texture_env_combine ***)
function Load_GL_ARB_texture_env_combine: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_texture_env_crossbar ***)
function Load_GL_ARB_texture_env_crossbar: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_texture_env_dot3 ***)
function Load_GL_ARB_texture_env_dot3: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_texture_mirrored_repeat ***)
function Load_GL_ARB_texture_mirrored_repeat: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_depth_texture ***)
function Load_GL_ARB_depth_texture: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_shadow ***)
function Load_GL_ARB_shadow: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_shadow_ambient ***)
function Load_GL_ARB_shadow_ambient: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_window_pos ***)
function Load_GL_ARB_window_pos: boolean;
begin
  result := false;
  glWindowPos2dARB := wglGetProcAddress('glWindowPos2dARB');
  if not Assigned(glWindowPos2dARB) then exit;
  glWindowPos2dvARB := wglGetProcAddress('glWindowPos2dvARB');
  if not Assigned(glWindowPos2dvARB) then exit;
  glWindowPos2fARB := wglGetProcAddress('glWindowPos2fARB');
  if not Assigned(glWindowPos2fARB) then exit;
  glWindowPos2fvARB := wglGetProcAddress('glWindowPos2fvARB');
  if not Assigned(glWindowPos2fvARB) then exit;
  glWindowPos2iARB := wglGetProcAddress('glWindowPos2iARB');
  if not Assigned(glWindowPos2iARB) then exit;
  glWindowPos2ivARB := wglGetProcAddress('glWindowPos2ivARB');
  if not Assigned(glWindowPos2ivARB) then exit;
  glWindowPos2sARB := wglGetProcAddress('glWindowPos2sARB');
  if not Assigned(glWindowPos2sARB) then exit;
  glWindowPos2svARB := wglGetProcAddress('glWindowPos2svARB');
  if not Assigned(glWindowPos2svARB) then exit;
  glWindowPos3dARB := wglGetProcAddress('glWindowPos3dARB');
  if not Assigned(glWindowPos3dARB) then exit;
  glWindowPos3dvARB := wglGetProcAddress('glWindowPos3dvARB');
  if not Assigned(glWindowPos3dvARB) then exit;
  glWindowPos3fARB := wglGetProcAddress('glWindowPos3fARB');
  if not Assigned(glWindowPos3fARB) then exit;
  glWindowPos3fvARB := wglGetProcAddress('glWindowPos3fvARB');
  if not Assigned(glWindowPos3fvARB) then exit;
  glWindowPos3iARB := wglGetProcAddress('glWindowPos3iARB');
  if not Assigned(glWindowPos3iARB) then exit;
  glWindowPos3ivARB := wglGetProcAddress('glWindowPos3ivARB');
  if not Assigned(glWindowPos3ivARB) then exit;
  glWindowPos3sARB := wglGetProcAddress('glWindowPos3sARB');
  if not Assigned(glWindowPos3sARB) then exit;
  glWindowPos3svARB := wglGetProcAddress('glWindowPos3svARB');
  if not Assigned(glWindowPos3svARB) then exit;
  result := true;
end;

(*** GL_ARB_vertex_program ***)
function Load_GL_ARB_vertex_program: boolean;
begin
  result := false;
  glVertexAttrib1dARB := wglGetProcAddress('glVertexAttrib1dARB');
  if not Assigned(glVertexAttrib1dARB) then exit;
  glVertexAttrib1dvARB := wglGetProcAddress('glVertexAttrib1dvARB');
  if not Assigned(glVertexAttrib1dvARB) then exit;
  glVertexAttrib1fARB := wglGetProcAddress('glVertexAttrib1fARB');
  if not Assigned(glVertexAttrib1fARB) then exit;
  glVertexAttrib1fvARB := wglGetProcAddress('glVertexAttrib1fvARB');
  if not Assigned(glVertexAttrib1fvARB) then exit;
  glVertexAttrib1sARB := wglGetProcAddress('glVertexAttrib1sARB');
  if not Assigned(glVertexAttrib1sARB) then exit;
  glVertexAttrib1svARB := wglGetProcAddress('glVertexAttrib1svARB');
  if not Assigned(glVertexAttrib1svARB) then exit;
  glVertexAttrib2dARB := wglGetProcAddress('glVertexAttrib2dARB');
  if not Assigned(glVertexAttrib2dARB) then exit;
  glVertexAttrib2dvARB := wglGetProcAddress('glVertexAttrib2dvARB');
  if not Assigned(glVertexAttrib2dvARB) then exit;
  glVertexAttrib2fARB := wglGetProcAddress('glVertexAttrib2fARB');
  if not Assigned(glVertexAttrib2fARB) then exit;
  glVertexAttrib2fvARB := wglGetProcAddress('glVertexAttrib2fvARB');
  if not Assigned(glVertexAttrib2fvARB) then exit;
  glVertexAttrib2sARB := wglGetProcAddress('glVertexAttrib2sARB');
  if not Assigned(glVertexAttrib2sARB) then exit;
  glVertexAttrib2svARB := wglGetProcAddress('glVertexAttrib2svARB');
  if not Assigned(glVertexAttrib2svARB) then exit;
  glVertexAttrib3dARB := wglGetProcAddress('glVertexAttrib3dARB');
  if not Assigned(glVertexAttrib3dARB) then exit;
  glVertexAttrib3dvARB := wglGetProcAddress('glVertexAttrib3dvARB');
  if not Assigned(glVertexAttrib3dvARB) then exit;
  glVertexAttrib3fARB := wglGetProcAddress('glVertexAttrib3fARB');
  if not Assigned(glVertexAttrib3fARB) then exit;
  glVertexAttrib3fvARB := wglGetProcAddress('glVertexAttrib3fvARB');
  if not Assigned(glVertexAttrib3fvARB) then exit;
  glVertexAttrib3sARB := wglGetProcAddress('glVertexAttrib3sARB');
  if not Assigned(glVertexAttrib3sARB) then exit;
  glVertexAttrib3svARB := wglGetProcAddress('glVertexAttrib3svARB');
  if not Assigned(glVertexAttrib3svARB) then exit;
  glVertexAttrib4NbvARB := wglGetProcAddress('glVertexAttrib4NbvARB');
  if not Assigned(glVertexAttrib4NbvARB) then exit;
  glVertexAttrib4NivARB := wglGetProcAddress('glVertexAttrib4NivARB');
  if not Assigned(glVertexAttrib4NivARB) then exit;
  glVertexAttrib4NsvARB := wglGetProcAddress('glVertexAttrib4NsvARB');
  if not Assigned(glVertexAttrib4NsvARB) then exit;
  glVertexAttrib4NubARB := wglGetProcAddress('glVertexAttrib4NubARB');
  if not Assigned(glVertexAttrib4NubARB) then exit;
  glVertexAttrib4NubvARB := wglGetProcAddress('glVertexAttrib4NubvARB');
  if not Assigned(glVertexAttrib4NubvARB) then exit;
  glVertexAttrib4NuivARB := wglGetProcAddress('glVertexAttrib4NuivARB');
  if not Assigned(glVertexAttrib4NuivARB) then exit;
  glVertexAttrib4NusvARB := wglGetProcAddress('glVertexAttrib4NusvARB');
  if not Assigned(glVertexAttrib4NusvARB) then exit;
  glVertexAttrib4bvARB := wglGetProcAddress('glVertexAttrib4bvARB');
  if not Assigned(glVertexAttrib4bvARB) then exit;
  glVertexAttrib4dARB := wglGetProcAddress('glVertexAttrib4dARB');
  if not Assigned(glVertexAttrib4dARB) then exit;
  glVertexAttrib4dvARB := wglGetProcAddress('glVertexAttrib4dvARB');
  if not Assigned(glVertexAttrib4dvARB) then exit;
  glVertexAttrib4fARB := wglGetProcAddress('glVertexAttrib4fARB');
  if not Assigned(glVertexAttrib4fARB) then exit;
  glVertexAttrib4fvARB := wglGetProcAddress('glVertexAttrib4fvARB');
  if not Assigned(glVertexAttrib4fvARB) then exit;
  glVertexAttrib4ivARB := wglGetProcAddress('glVertexAttrib4ivARB');
  if not Assigned(glVertexAttrib4ivARB) then exit;
  glVertexAttrib4sARB := wglGetProcAddress('glVertexAttrib4sARB');
  if not Assigned(glVertexAttrib4sARB) then exit;
  glVertexAttrib4svARB := wglGetProcAddress('glVertexAttrib4svARB');
  if not Assigned(glVertexAttrib4svARB) then exit;
  glVertexAttrib4ubvARB := wglGetProcAddress('glVertexAttrib4ubvARB');
  if not Assigned(glVertexAttrib4ubvARB) then exit;
  glVertexAttrib4uivARB := wglGetProcAddress('glVertexAttrib4uivARB');
  if not Assigned(glVertexAttrib4uivARB) then exit;
  glVertexAttrib4usvARB := wglGetProcAddress('glVertexAttrib4usvARB');
  if not Assigned(glVertexAttrib4usvARB) then exit;
  glVertexAttribPointerARB := wglGetProcAddress('glVertexAttribPointerARB');
  if not Assigned(glVertexAttribPointerARB) then exit;
  glEnableVertexAttribArrayARB := wglGetProcAddress('glEnableVertexAttribArrayARB');
  if not Assigned(glEnableVertexAttribArrayARB) then exit;
  glDisableVertexAttribArrayARB := wglGetProcAddress('glDisableVertexAttribArrayARB');
  if not Assigned(glDisableVertexAttribArrayARB) then exit;
  glProgramStringARB := wglGetProcAddress('glProgramStringARB');
  if not Assigned(glProgramStringARB) then exit;
  glBindProgramARB := wglGetProcAddress('glBindProgramARB');
  if not Assigned(glBindProgramARB) then exit;
  glDeleteProgramsARB := wglGetProcAddress('glDeleteProgramsARB');
  if not Assigned(glDeleteProgramsARB) then exit;
  glGenProgramsARB := wglGetProcAddress('glGenProgramsARB');
  if not Assigned(glGenProgramsARB) then exit;
  glProgramEnvParameter4dARB := wglGetProcAddress('glProgramEnvParameter4dARB');
  if not Assigned(glProgramEnvParameter4dARB) then exit;
  glProgramEnvParameter4dvARB := wglGetProcAddress('glProgramEnvParameter4dvARB');
  if not Assigned(glProgramEnvParameter4dvARB) then exit;
  glProgramEnvParameter4fARB := wglGetProcAddress('glProgramEnvParameter4fARB');
  if not Assigned(glProgramEnvParameter4fARB) then exit;
  glProgramEnvParameter4fvARB := wglGetProcAddress('glProgramEnvParameter4fvARB');
  if not Assigned(glProgramEnvParameter4fvARB) then exit;
  glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB');
  if not Assigned(glProgramLocalParameter4dARB) then exit;
  glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB');
  if not Assigned(glProgramLocalParameter4dvARB) then exit;
  glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB');
  if not Assigned(glProgramLocalParameter4fARB) then exit;
  glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB');
  if not Assigned(glProgramLocalParameter4fvARB) then exit;
  glGetProgramEnvParameterdvARB := wglGetProcAddress('glGetProgramEnvParameterdvARB');
  if not Assigned(glGetProgramEnvParameterdvARB) then exit;
  glGetProgramEnvParameterfvARB := wglGetProcAddress('glGetProgramEnvParameterfvARB');
  if not Assigned(glGetProgramEnvParameterfvARB) then exit;
  glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB');
  if not Assigned(glGetProgramLocalParameterdvARB) then exit;
  glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB');
  if not Assigned(glGetProgramLocalParameterfvARB) then exit;
  glGetProgramivARB := wglGetProcAddress('glGetProgramivARB');
  if not Assigned(glGetProgramivARB) then exit;
  glGetProgramStringARB := wglGetProcAddress('glGetProgramStringARB');
  if not Assigned(glGetProgramStringARB) then exit;
  glGetVertexAttribdvARB := wglGetProcAddress('glGetVertexAttribdvARB');
  if not Assigned(glGetVertexAttribdvARB) then exit;
  glGetVertexAttribfvARB := wglGetProcAddress('glGetVertexAttribfvARB');
  if not Assigned(glGetVertexAttribfvARB) then exit;
  glGetVertexAttribivARB := wglGetProcAddress('glGetVertexAttribivARB');
  if not Assigned(glGetVertexAttribivARB) then exit;
  glGetVertexAttribPointervARB := wglGetProcAddress('glGetVertexAttribPointervARB');
  if not Assigned(glGetVertexAttribPointervARB) then exit;
  glIsProgramARB := wglGetProcAddress('glIsProgramARB');
  if not Assigned(glIsProgramARB) then exit;
  result := true;
end;

(*** GL_ARB_fragment_program ***)
function Load_GL_ARB_fragment_program: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_vertex_buffer_object ***)
function Load_GL_ARB_vertex_buffer_object: boolean;
begin
  result := false;
  glBindBufferARB := wglGetProcAddress('glBindBufferARB');
  if not Assigned(glBindBufferARB) then exit;
  glDeleteBuffersARB := wglGetProcAddress('glDeleteBuffersARB');
  if not Assigned(glDeleteBuffersARB) then exit;
  glGenBuffersARB := wglGetProcAddress('glGenBuffersARB');
  if not Assigned(glGenBuffersARB) then exit;
  glIsBufferARB := wglGetProcAddress('glIsBufferARB');
  if not Assigned(glIsBufferARB) then exit;
  glBufferDataARB := wglGetProcAddress('glBufferDataARB');
  if not Assigned(glBufferDataARB) then exit;
  glBufferSubDataARB := wglGetProcAddress('glBufferSubDataARB');
  if not Assigned(glBufferSubDataARB) then exit;
  glGetBufferSubDataARB := wglGetProcAddress('glGetBufferSubDataARB');
  if not Assigned(glGetBufferSubDataARB) then exit;
  glMapBufferARB := wglGetProcAddress('glMapBufferARB');
  if not Assigned(glMapBufferARB) then exit;
  glUnmapBufferARB := wglGetProcAddress('glUnmapBufferARB');
  if not Assigned(glUnmapBufferARB) then exit;
  glGetBufferParameterivARB := wglGetProcAddress('glGetBufferParameterivARB');
  if not Assigned(glGetBufferParameterivARB) then exit;
  glGetBufferPointervARB := wglGetProcAddress('glGetBufferPointervARB');
  if not Assigned(glGetBufferPointervARB) then exit;
  result := true;
end;

(*** GL_ARB_occlusion_query ***)
function Load_GL_ARB_occlusion_query: boolean;
begin
  result := false;
  glGenQueriesARB := wglGetProcAddress('glGenQueriesARB');
  if not Assigned(glGenQueriesARB) then exit;
  glDeleteQueriesARB := wglGetProcAddress('glDeleteQueriesARB');
  if not Assigned(glDeleteQueriesARB) then exit;
  glIsQueryARB := wglGetProcAddress('glIsQueryARB');
  if not Assigned(glIsQueryARB) then exit;
  glBeginQueryARB := wglGetProcAddress('glBeginQueryARB');
  if not Assigned(glBeginQueryARB) then exit;
  glEndQueryARB := wglGetProcAddress('glEndQueryARB');
  if not Assigned(glEndQueryARB) then exit;
  glGetQueryivARB := wglGetProcAddress('glGetQueryivARB');
  if not Assigned(glGetQueryivARB) then exit;
  glGetQueryObjectivARB := wglGetProcAddress('glGetQueryObjectivARB');
  if not Assigned(glGetQueryObjectivARB) then exit;
  glGetQueryObjectuivARB := wglGetProcAddress('glGetQueryObjectuivARB');
  if not Assigned(glGetQueryObjectuivARB) then exit;
  result := true;
end;

(*** GL_ARB_shader_objects ***)
function Load_GL_ARB_shader_objects: boolean;
begin
  result := false;
  glDeleteObjectARB := wglGetProcAddress('glDeleteObjectARB');
  if not Assigned(glDeleteObjectARB) then exit;
  glGetHandleARB := wglGetProcAddress('glGetHandleARB');
  if not Assigned(glGetHandleARB) then exit;
  glDetachObjectARB := wglGetProcAddress('glDetachObjectARB');
  if not Assigned(glDetachObjectARB) then exit;
  glCreateShaderObjectARB := wglGetProcAddress('glCreateShaderObjectARB');
  if not Assigned(glCreateShaderObjectARB) then exit;
  glShaderSourceARB := wglGetProcAddress('glShaderSourceARB');
  if not Assigned(glShaderSourceARB) then exit;
  glCompileShaderARB := wglGetProcAddress('glCompileShaderARB');
  if not Assigned(glCompileShaderARB) then exit;
  glCreateProgramObjectARB := wglGetProcAddress('glCreateProgramObjectARB');
  if not Assigned(glCreateProgramObjectARB) then exit;
  glAttachObjectARB := wglGetProcAddress('glAttachObjectARB');
  if not Assigned(glAttachObjectARB) then exit;
  glLinkProgramARB := wglGetProcAddress('glLinkProgramARB');
  if not Assigned(glLinkProgramARB) then exit;
  glUseProgramObjectARB := wglGetProcAddress('glUseProgramObjectARB');
  if not Assigned(glUseProgramObjectARB) then exit;
  glValidateProgramARB := wglGetProcAddress('glValidateProgramARB');
  if not Assigned(glValidateProgramARB) then exit;
  glUniform1fARB := wglGetProcAddress('glUniform1fARB');
  if not Assigned(glUniform1fARB) then exit;
  glUniform2fARB := wglGetProcAddress('glUniform2fARB');
  if not Assigned(glUniform2fARB) then exit;
  glUniform3fARB := wglGetProcAddress('glUniform3fARB');
  if not Assigned(glUniform3fARB) then exit;
  glUniform4fARB := wglGetProcAddress('glUniform4fARB');
  if not Assigned(glUniform4fARB) then exit;
  glUniform1iARB := wglGetProcAddress('glUniform1iARB');
  if not Assigned(glUniform1iARB) then exit;
  glUniform2iARB := wglGetProcAddress('glUniform2iARB');
  if not Assigned(glUniform2iARB) then exit;
  glUniform3iARB := wglGetProcAddress('glUniform3iARB');
  if not Assigned(glUniform3iARB) then exit;
  glUniform4iARB := wglGetProcAddress('glUniform4iARB');
  if not Assigned(glUniform4iARB) then exit;
  glUniform1fvARB := wglGetProcAddress('glUniform1fvARB');
  if not Assigned(glUniform1fvARB) then exit;
  glUniform2fvARB := wglGetProcAddress('glUniform2fvARB');
  if not Assigned(glUniform2fvARB) then exit;
  glUniform3fvARB := wglGetProcAddress('glUniform3fvARB');
  if not Assigned(glUniform3fvARB) then exit;
  glUniform4fvARB := wglGetProcAddress('glUniform4fvARB');
  if not Assigned(glUniform4fvARB) then exit;
  glUniform1ivARB := wglGetProcAddress('glUniform1ivARB');
  if not Assigned(glUniform1ivARB) then exit;
  glUniform2ivARB := wglGetProcAddress('glUniform2ivARB');
  if not Assigned(glUniform2ivARB) then exit;
  glUniform3ivARB := wglGetProcAddress('glUniform3ivARB');
  if not Assigned(glUniform3ivARB) then exit;
  glUniform4ivARB := wglGetProcAddress('glUniform4ivARB');
  if not Assigned(glUniform4ivARB) then exit;
  glUniformMatrix2fvARB := wglGetProcAddress('glUniformMatrix2fvARB');
  if not Assigned(glUniformMatrix2fvARB) then exit;
  glUniformMatrix3fvARB := wglGetProcAddress('glUniformMatrix3fvARB');
  if not Assigned(glUniformMatrix3fvARB) then exit;
  glUniformMatrix4fvARB := wglGetProcAddress('glUniformMatrix4fvARB');
  if not Assigned(glUniformMatrix4fvARB) then exit;
  glGetObjectParameterfvARB := wglGetProcAddress('glGetObjectParameterfvARB');
  if not Assigned(glGetObjectParameterfvARB) then exit;
  glGetObjectParameterivARB := wglGetProcAddress('glGetObjectParameterivARB');
  if not Assigned(glGetObjectParameterivARB) then exit;
  glGetInfoLogARB := wglGetProcAddress('glGetInfoLogARB');
  if not Assigned(glGetInfoLogARB) then exit;
  glGetAttachedObjectsARB := wglGetProcAddress('glGetAttachedObjectsARB');
  if not Assigned(glGetAttachedObjectsARB) then exit;
  glGetUniformLocationARB := wglGetProcAddress('glGetUniformLocationARB');
  if not Assigned(glGetUniformLocationARB) then exit;
  glGetActiveUniformARB := wglGetProcAddress('glGetActiveUniformARB');
  if not Assigned(glGetActiveUniformARB) then exit;
  glGetUniformfvARB := wglGetProcAddress('glGetUniformfvARB');
  if not Assigned(glGetUniformfvARB) then exit;
  glGetUniformivARB := wglGetProcAddress('glGetUniformivARB');
  if not Assigned(glGetUniformivARB) then exit;
  glGetShaderSourceARB := wglGetProcAddress('glGetShaderSourceARB');
  if not Assigned(glGetShaderSourceARB) then exit;
  result := true;
end;

(*** GL_ARB_vertex_shader ***)
function Load_GL_ARB_vertex_shader: boolean;
begin
  result := false;
  glBindAttribLocationARB := wglGetProcAddress('glBindAttribLocationARB');
  if not Assigned(glBindAttribLocationARB) then exit;
  glGetActiveAttribARB := wglGetProcAddress('glGetActiveAttribARB');
  if not Assigned(glGetActiveAttribARB) then exit;
  glGetAttribLocationARB := wglGetProcAddress('glGetAttribLocationARB');
  if not Assigned(glGetAttribLocationARB) then exit;
  result := true;
end;

(*** GL_ARB_fragment_shader ***)
function Load_GL_ARB_fragment_shader: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_shading_language_100 ***)
function Load_GL_ARB_shading_language_100: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_texture_non_power_of_two ***)
function Load_GL_ARB_texture_non_power_of_two: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_point_sprite ***)
function Load_GL_ARB_point_sprite: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_fragment_program_shadow ***)
function Load_GL_ARB_fragment_program_shadow: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_draw_buffers ***)
function Load_GL_ARB_draw_buffers: boolean;
begin
  result := false;
  glDrawBuffersARB := wglGetProcAddress('glDrawBuffersARB');
  if not Assigned(glDrawBuffersARB) then exit;
  result := true;
end;

(*** GL_ARB_texture_rectangle ***)
function Load_GL_ARB_texture_rectangle: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_color_buffer_float ***)
function Load_GL_ARB_color_buffer_float: boolean;
begin
  result := false;
  glClampColorARB := wglGetProcAddress('glClampColorARB');
  if not Assigned(glClampColorARB) then exit;
  result := true;
end;

(*** GL_ARB_half_float_pixel ***)
function Load_GL_ARB_half_float_pixel: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_texture_float ***)
function Load_GL_ARB_texture_float: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ARB_pixel_buffer_object ***)
function Load_GL_ARB_pixel_buffer_object: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_abgr ***)
function Load_GL_EXT_abgr: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_blend_color ***)
function Load_GL_EXT_blend_color: boolean;
begin
  result := false;
  glBlendColorEXT := wglGetProcAddress('glBlendColorEXT');
  if not Assigned(glBlendColorEXT) then exit;
  result := true;
end;

(*** GL_EXT_polygon_offset ***)
function Load_GL_EXT_polygon_offset: boolean;
begin
  result := false;
  glPolygonOffsetEXT := wglGetProcAddress('glPolygonOffsetEXT');
  if not Assigned(glPolygonOffsetEXT) then exit;
  result := true;
end;

(*** GL_EXT_texture ***)
function Load_GL_EXT_texture: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_texture3D ***)
function Load_GL_EXT_texture3D: boolean;
begin
  result := false;
  glTexImage3DEXT := wglGetProcAddress('glTexImage3DEXT');
  if not Assigned(glTexImage3DEXT) then exit;
  glTexSubImage3DEXT := wglGetProcAddress('glTexSubImage3DEXT');
  if not Assigned(glTexSubImage3DEXT) then exit;
  result := true;
end;

(*** GL_SGIS_texture_filter4 ***)
function Load_GL_SGIS_texture_filter4: boolean;
begin
  result := false;
  glGetTexFilterFuncSGIS := wglGetProcAddress('glGetTexFilterFuncSGIS');
  if not Assigned(glGetTexFilterFuncSGIS) then exit;
  glTexFilterFuncSGIS := wglGetProcAddress('glTexFilterFuncSGIS');
  if not Assigned(glTexFilterFuncSGIS) then exit;
  result := true;
end;

(*** GL_EXT_subtexture ***)
function Load_GL_EXT_subtexture: boolean;
begin
  result := false;
  glTexSubImage1DEXT := wglGetProcAddress('glTexSubImage1DEXT');
  if not Assigned(glTexSubImage1DEXT) then exit;
  glTexSubImage2DEXT := wglGetProcAddress('glTexSubImage2DEXT');
  if not Assigned(glTexSubImage2DEXT) then exit;
  result := true;
end;

(*** GL_EXT_copy_texture ***)
function Load_GL_EXT_copy_texture: boolean;
begin
  result := false;
  glCopyTexImage1DEXT := wglGetProcAddress('glCopyTexImage1DEXT');
  if not Assigned(glCopyTexImage1DEXT) then exit;
  glCopyTexImage2DEXT := wglGetProcAddress('glCopyTexImage2DEXT');
  if not Assigned(glCopyTexImage2DEXT) then exit;
  glCopyTexSubImage1DEXT := wglGetProcAddress('glCopyTexSubImage1DEXT');
  if not Assigned(glCopyTexSubImage1DEXT) then exit;
  glCopyTexSubImage2DEXT := wglGetProcAddress('glCopyTexSubImage2DEXT');
  if not Assigned(glCopyTexSubImage2DEXT) then exit;
  glCopyTexSubImage3DEXT := wglGetProcAddress('glCopyTexSubImage3DEXT');
  if not Assigned(glCopyTexSubImage3DEXT) then exit;
  result := true;
end;

(*** GL_EXT_histogram ***)
function Load_GL_EXT_histogram: boolean;
begin
  result := false;
  glGetHistogramEXT := wglGetProcAddress('glGetHistogramEXT');
  if not Assigned(glGetHistogramEXT) then exit;
  glGetHistogramParameterfvEXT := wglGetProcAddress('glGetHistogramParameterfvEXT');
  if not Assigned(glGetHistogramParameterfvEXT) then exit;
  glGetHistogramParameterivEXT := wglGetProcAddress('glGetHistogramParameterivEXT');
  if not Assigned(glGetHistogramParameterivEXT) then exit;
  glGetMinmaxEXT := wglGetProcAddress('glGetMinmaxEXT');
  if not Assigned(glGetMinmaxEXT) then exit;
  glGetMinmaxParameterfvEXT := wglGetProcAddress('glGetMinmaxParameterfvEXT');
  if not Assigned(glGetMinmaxParameterfvEXT) then exit;
  glGetMinmaxParameterivEXT := wglGetProcAddress('glGetMinmaxParameterivEXT');
  if not Assigned(glGetMinmaxParameterivEXT) then exit;
  glHistogramEXT := wglGetProcAddress('glHistogramEXT');
  if not Assigned(glHistogramEXT) then exit;
  glMinmaxEXT := wglGetProcAddress('glMinmaxEXT');
  if not Assigned(glMinmaxEXT) then exit;
  glResetHistogramEXT := wglGetProcAddress('glResetHistogramEXT');
  if not Assigned(glResetHistogramEXT) then exit;
  glResetMinmaxEXT := wglGetProcAddress('glResetMinmaxEXT');
  if not Assigned(glResetMinmaxEXT) then exit;
  result := true;
end;

(*** GL_EXT_convolution ***)
function Load_GL_EXT_convolution: boolean;
begin
  result := false;
  glConvolutionFilter1DEXT := wglGetProcAddress('glConvolutionFilter1DEXT');
  if not Assigned(glConvolutionFilter1DEXT) then exit;
  glConvolutionFilter2DEXT := wglGetProcAddress('glConvolutionFilter2DEXT');
  if not Assigned(glConvolutionFilter2DEXT) then exit;
  glConvolutionParameterfEXT := wglGetProcAddress('glConvolutionParameterfEXT');
  if not Assigned(glConvolutionParameterfEXT) then exit;
  glConvolutionParameterfvEXT := wglGetProcAddress('glConvolutionParameterfvEXT');
  if not Assigned(glConvolutionParameterfvEXT) then exit;
  glConvolutionParameteriEXT := wglGetProcAddress('glConvolutionParameteriEXT');
  if not Assigned(glConvolutionParameteriEXT) then exit;
  glConvolutionParameterivEXT := wglGetProcAddress('glConvolutionParameterivEXT');
  if not Assigned(glConvolutionParameterivEXT) then exit;
  glCopyConvolutionFilter1DEXT := wglGetProcAddress('glCopyConvolutionFilter1DEXT');
  if not Assigned(glCopyConvolutionFilter1DEXT) then exit;
  glCopyConvolutionFilter2DEXT := wglGetProcAddress('glCopyConvolutionFilter2DEXT');
  if not Assigned(glCopyConvolutionFilter2DEXT) then exit;
  glGetConvolutionFilterEXT := wglGetProcAddress('glGetConvolutionFilterEXT');
  if not Assigned(glGetConvolutionFilterEXT) then exit;
  glGetConvolutionParameterfvEXT := wglGetProcAddress('glGetConvolutionParameterfvEXT');
  if not Assigned(glGetConvolutionParameterfvEXT) then exit;
  glGetConvolutionParameterivEXT := wglGetProcAddress('glGetConvolutionParameterivEXT');
  if not Assigned(glGetConvolutionParameterivEXT) then exit;
  glGetSeparableFilterEXT := wglGetProcAddress('glGetSeparableFilterEXT');
  if not Assigned(glGetSeparableFilterEXT) then exit;
  glSeparableFilter2DEXT := wglGetProcAddress('glSeparableFilter2DEXT');
  if not Assigned(glSeparableFilter2DEXT) then exit;
  result := true;
end;

(*** GL_EXT_color_matrix ***)
function Load_GL_EXT_color_matrix: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGI_color_table ***)
function Load_GL_SGI_color_table: boolean;
begin
  result := false;
  glColorTableSGI := wglGetProcAddress('glColorTableSGI');
  if not Assigned(glColorTableSGI) then exit;
  glColorTableParameterfvSGI := wglGetProcAddress('glColorTableParameterfvSGI');
  if not Assigned(glColorTableParameterfvSGI) then exit;
  glColorTableParameterivSGI := wglGetProcAddress('glColorTableParameterivSGI');
  if not Assigned(glColorTableParameterivSGI) then exit;
  glCopyColorTableSGI := wglGetProcAddress('glCopyColorTableSGI');
  if not Assigned(glCopyColorTableSGI) then exit;
  glGetColorTableSGI := wglGetProcAddress('glGetColorTableSGI');
  if not Assigned(glGetColorTableSGI) then exit;
  glGetColorTableParameterfvSGI := wglGetProcAddress('glGetColorTableParameterfvSGI');
  if not Assigned(glGetColorTableParameterfvSGI) then exit;
  glGetColorTableParameterivSGI := wglGetProcAddress('glGetColorTableParameterivSGI');
  if not Assigned(glGetColorTableParameterivSGI) then exit;
  result := true;
end;

(*** GL_SGIX_pixel_texture ***)
function Load_GL_SGIX_pixel_texture: boolean;
begin
  result := false;
  glPixelTexGenSGIX := wglGetProcAddress('glPixelTexGenSGIX');
  if not Assigned(glPixelTexGenSGIX) then exit;
  result := true;
end;

(*** GL_SGIS_pixel_texture ***)
function Load_GL_SGIS_pixel_texture: boolean;
begin
  result := false;
  glPixelTexGenParameteriSGIS := wglGetProcAddress('glPixelTexGenParameteriSGIS');
  if not Assigned(glPixelTexGenParameteriSGIS) then exit;
  glPixelTexGenParameterivSGIS := wglGetProcAddress('glPixelTexGenParameterivSGIS');
  if not Assigned(glPixelTexGenParameterivSGIS) then exit;
  glPixelTexGenParameterfSGIS := wglGetProcAddress('glPixelTexGenParameterfSGIS');
  if not Assigned(glPixelTexGenParameterfSGIS) then exit;
  glPixelTexGenParameterfvSGIS := wglGetProcAddress('glPixelTexGenParameterfvSGIS');
  if not Assigned(glPixelTexGenParameterfvSGIS) then exit;
  glGetPixelTexGenParameterivSGIS := wglGetProcAddress('glGetPixelTexGenParameterivSGIS');
  if not Assigned(glGetPixelTexGenParameterivSGIS) then exit;
  glGetPixelTexGenParameterfvSGIS := wglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
  if not Assigned(glGetPixelTexGenParameterfvSGIS) then exit;
  result := true;
end;

(*** GL_SGIS_texture4D ***)
function Load_GL_SGIS_texture4D: boolean;
begin
  result := false;
  glTexImage4DSGIS := wglGetProcAddress('glTexImage4DSGIS');
  if not Assigned(glTexImage4DSGIS) then exit;
  glTexSubImage4DSGIS := wglGetProcAddress('glTexSubImage4DSGIS');
  if not Assigned(glTexSubImage4DSGIS) then exit;
  result := true;
end;

(*** GL_SGI_texture_color_table ***)
function Load_GL_SGI_texture_color_table: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_cmyka ***)
function Load_GL_EXT_cmyka: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_texture_object ***)
function Load_GL_EXT_texture_object: boolean;
begin
  result := false;
  glAreTexturesResidentEXT := wglGetProcAddress('glAreTexturesResidentEXT');
  if not Assigned(glAreTexturesResidentEXT) then exit;
  glBindTextureEXT := wglGetProcAddress('glBindTextureEXT');
  if not Assigned(glBindTextureEXT) then exit;
  glDeleteTexturesEXT := wglGetProcAddress('glDeleteTexturesEXT');
  if not Assigned(glDeleteTexturesEXT) then exit;
  glGenTexturesEXT := wglGetProcAddress('glGenTexturesEXT');
  if not Assigned(glGenTexturesEXT) then exit;
  glIsTextureEXT := wglGetProcAddress('glIsTextureEXT');
  if not Assigned(glIsTextureEXT) then exit;
  glPrioritizeTexturesEXT := wglGetProcAddress('glPrioritizeTexturesEXT');
  if not Assigned(glPrioritizeTexturesEXT) then exit;
  result := true;
end;

(*** GL_SGIS_detail_texture ***)
function Load_GL_SGIS_detail_texture: boolean;
begin
  result := false;
  glDetailTexFuncSGIS := wglGetProcAddress('glDetailTexFuncSGIS');
  if not Assigned(glDetailTexFuncSGIS) then exit;
  glGetDetailTexFuncSGIS := wglGetProcAddress('glGetDetailTexFuncSGIS');
  if not Assigned(glGetDetailTexFuncSGIS) then exit;
  result := true;
end;

(*** GL_SGIS_sharpen_texture ***)
function Load_GL_SGIS_sharpen_texture: boolean;
begin
  result := false;
  glSharpenTexFuncSGIS := wglGetProcAddress('glSharpenTexFuncSGIS');
  if not Assigned(glSharpenTexFuncSGIS) then exit;
  glGetSharpenTexFuncSGIS := wglGetProcAddress('glGetSharpenTexFuncSGIS');
  if not Assigned(glGetSharpenTexFuncSGIS) then exit;
  result := true;
end;

(*** GL_EXT_packed_pixels ***)
function Load_GL_EXT_packed_pixels: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIS_texture_lod ***)
function Load_GL_SGIS_texture_lod: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIS_multisample ***)
function Load_GL_SGIS_multisample: boolean;
begin
  result := false;
  glSampleMaskSGIS := wglGetProcAddress('glSampleMaskSGIS');
  if not Assigned(glSampleMaskSGIS) then exit;
  glSamplePatternSGIS := wglGetProcAddress('glSamplePatternSGIS');
  if not Assigned(glSamplePatternSGIS) then exit;
  result := true;
end;

(*** GL_EXT_rescale_normal ***)
function Load_GL_EXT_rescale_normal: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_vertex_array ***)
function Load_GL_EXT_vertex_array: boolean;
begin
  result := false;
  glArrayElementEXT := wglGetProcAddress('glArrayElementEXT');
  if not Assigned(glArrayElementEXT) then exit;
  glColorPointerEXT := wglGetProcAddress('glColorPointerEXT');
  if not Assigned(glColorPointerEXT) then exit;
  glDrawArraysEXT := wglGetProcAddress('glDrawArraysEXT');
  if not Assigned(glDrawArraysEXT) then exit;
  glEdgeFlagPointerEXT := wglGetProcAddress('glEdgeFlagPointerEXT');
  if not Assigned(glEdgeFlagPointerEXT) then exit;
  glGetPointervEXT := wglGetProcAddress('glGetPointervEXT');
  if not Assigned(glGetPointervEXT) then exit;
  glIndexPointerEXT := wglGetProcAddress('glIndexPointerEXT');
  if not Assigned(glIndexPointerEXT) then exit;
  glNormalPointerEXT := wglGetProcAddress('glNormalPointerEXT');
  if not Assigned(glNormalPointerEXT) then exit;
  glTexCoordPointerEXT := wglGetProcAddress('glTexCoordPointerEXT');
  if not Assigned(glTexCoordPointerEXT) then exit;
  glVertexPointerEXT := wglGetProcAddress('glVertexPointerEXT');
  if not Assigned(glVertexPointerEXT) then exit;
  result := true;
end;

(*** GL_EXT_misc_attribute ***)
function Load_GL_EXT_misc_attribute: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIS_generate_mipmap ***)
function Load_GL_SGIS_generate_mipmap: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_clipmap ***)
function Load_GL_SGIX_clipmap: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_shadow ***)
function Load_GL_SGIX_shadow: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIS_texture_edge_clamp ***)
function Load_GL_SGIS_texture_edge_clamp: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIS_texture_border_clamp ***)
function Load_GL_SGIS_texture_border_clamp: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_blend_minmax ***)
function Load_GL_EXT_blend_minmax: boolean;
begin
  result := false;
  glBlendEquationEXT := wglGetProcAddress('glBlendEquationEXT');
  if not Assigned(glBlendEquationEXT) then exit;
  result := true;
end;

(*** GL_EXT_blend_subtract ***)
function Load_GL_EXT_blend_subtract: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_blend_logic_op ***)
function Load_GL_EXT_blend_logic_op: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_interlace ***)
function Load_GL_SGIX_interlace: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_pixel_tiles ***)
function Load_GL_SGIX_pixel_tiles: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_texture_select ***)
function Load_GL_SGIX_texture_select: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_sprite ***)
function Load_GL_SGIX_sprite: boolean;
begin
  result := false;
  glSpriteParameterfSGIX := wglGetProcAddress('glSpriteParameterfSGIX');
  if not Assigned(glSpriteParameterfSGIX) then exit;
  glSpriteParameterfvSGIX := wglGetProcAddress('glSpriteParameterfvSGIX');
  if not Assigned(glSpriteParameterfvSGIX) then exit;
  glSpriteParameteriSGIX := wglGetProcAddress('glSpriteParameteriSGIX');
  if not Assigned(glSpriteParameteriSGIX) then exit;
  glSpriteParameterivSGIX := wglGetProcAddress('glSpriteParameterivSGIX');
  if not Assigned(glSpriteParameterivSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_texture_multi_buffer ***)
function Load_GL_SGIX_texture_multi_buffer: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_point_parameters ***)
function Load_GL_EXT_point_parameters: boolean;
begin
  result := false;
  glPointParameterfEXT := wglGetProcAddress('glPointParameterfEXT');
  if not Assigned(glPointParameterfEXT) then exit;
  glPointParameterfvEXT := wglGetProcAddress('glPointParameterfvEXT');
  if not Assigned(glPointParameterfvEXT) then exit;
  result := true;
end;

(*** GL_SGIS_point_parameters ***)
function Load_GL_SGIS_point_parameters: boolean;
begin
  result := false;
  glPointParameterfSGIS := wglGetProcAddress('glPointParameterfSGIS');
  if not Assigned(glPointParameterfSGIS) then exit;
  glPointParameterfvSGIS := wglGetProcAddress('glPointParameterfvSGIS');
  if not Assigned(glPointParameterfvSGIS) then exit;
  result := true;
end;

(*** GL_SGIX_instruments ***)
function Load_GL_SGIX_instruments: boolean;
begin
  result := false;
  glGetInstrumentsSGIX := wglGetProcAddress('glGetInstrumentsSGIX');
  if not Assigned(glGetInstrumentsSGIX) then exit;
  glInstrumentsBufferSGIX := wglGetProcAddress('glInstrumentsBufferSGIX');
  if not Assigned(glInstrumentsBufferSGIX) then exit;
  glPollInstrumentsSGIX := wglGetProcAddress('glPollInstrumentsSGIX');
  if not Assigned(glPollInstrumentsSGIX) then exit;
  glReadInstrumentsSGIX := wglGetProcAddress('glReadInstrumentsSGIX');
  if not Assigned(glReadInstrumentsSGIX) then exit;
  glStartInstrumentsSGIX := wglGetProcAddress('glStartInstrumentsSGIX');
  if not Assigned(glStartInstrumentsSGIX) then exit;
  glStopInstrumentsSGIX := wglGetProcAddress('glStopInstrumentsSGIX');
  if not Assigned(glStopInstrumentsSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_texture_scale_bias ***)
function Load_GL_SGIX_texture_scale_bias: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_framezoom ***)
function Load_GL_SGIX_framezoom: boolean;
begin
  result := false;
  glFrameZoomSGIX := wglGetProcAddress('glFrameZoomSGIX');
  if not Assigned(glFrameZoomSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_tag_sample_buffer ***)
function Load_GL_SGIX_tag_sample_buffer: boolean;
begin
  result := false;
  glTagSampleBufferSGIX := wglGetProcAddress('glTagSampleBufferSGIX');
  if not Assigned(glTagSampleBufferSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_polynomial_ffd ***)
function Load_GL_SGIX_polynomial_ffd: boolean;
begin
  result := false;
  glDeformationMap3dSGIX := wglGetProcAddress('glDeformationMap3dSGIX');
  if not Assigned(glDeformationMap3dSGIX) then exit;
  glDeformationMap3fSGIX := wglGetProcAddress('glDeformationMap3fSGIX');
  if not Assigned(glDeformationMap3fSGIX) then exit;
  glDeformSGIX := wglGetProcAddress('glDeformSGIX');
  if not Assigned(glDeformSGIX) then exit;
  glLoadIdentityDeformationMapSGIX := wglGetProcAddress('glLoadIdentityDeformationMapSGIX');
  if not Assigned(glLoadIdentityDeformationMapSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_reference_plane ***)
function Load_GL_SGIX_reference_plane: boolean;
begin
  result := false;
  glReferencePlaneSGIX := wglGetProcAddress('glReferencePlaneSGIX');
  if not Assigned(glReferencePlaneSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_flush_raster ***)
function Load_GL_SGIX_flush_raster: boolean;
begin
  result := false;
  glFlushRasterSGIX := wglGetProcAddress('glFlushRasterSGIX');
  if not Assigned(glFlushRasterSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_depth_texture ***)
function Load_GL_SGIX_depth_texture: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIS_fog_function ***)
function Load_GL_SGIS_fog_function: boolean;
begin
  result := false;
  glFogFuncSGIS := wglGetProcAddress('glFogFuncSGIS');
  if not Assigned(glFogFuncSGIS) then exit;
  glGetFogFuncSGIS := wglGetProcAddress('glGetFogFuncSGIS');
  if not Assigned(glGetFogFuncSGIS) then exit;
  result := true;
end;

(*** GL_SGIX_fog_offset ***)
function Load_GL_SGIX_fog_offset: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_HP_image_transform ***)
function Load_GL_HP_image_transform: boolean;
begin
  result := false;
  glImageTransformParameteriHP := wglGetProcAddress('glImageTransformParameteriHP');
  if not Assigned(glImageTransformParameteriHP) then exit;
  glImageTransformParameterfHP := wglGetProcAddress('glImageTransformParameterfHP');
  if not Assigned(glImageTransformParameterfHP) then exit;
  glImageTransformParameterivHP := wglGetProcAddress('glImageTransformParameterivHP');
  if not Assigned(glImageTransformParameterivHP) then exit;
  glImageTransformParameterfvHP := wglGetProcAddress('glImageTransformParameterfvHP');
  if not Assigned(glImageTransformParameterfvHP) then exit;
  glGetImageTransformParameterivHP := wglGetProcAddress('glGetImageTransformParameterivHP');
  if not Assigned(glGetImageTransformParameterivHP) then exit;
  glGetImageTransformParameterfvHP := wglGetProcAddress('glGetImageTransformParameterfvHP');
  if not Assigned(glGetImageTransformParameterfvHP) then exit;
  result := true;
end;

(*** GL_HP_convolution_border_modes ***)
function Load_GL_HP_convolution_border_modes: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_texture_add_env ***)
function Load_GL_SGIX_texture_add_env: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_color_subtable ***)
function Load_GL_EXT_color_subtable: boolean;
begin
  result := false;
  glColorSubTableEXT := wglGetProcAddress('glColorSubTableEXT');
  if not Assigned(glColorSubTableEXT) then exit;
  glCopyColorSubTableEXT := wglGetProcAddress('glCopyColorSubTableEXT');
  if not Assigned(glCopyColorSubTableEXT) then exit;
  result := true;
end;

(*** GL_PGI_vertex_hints ***)
function Load_GL_PGI_vertex_hints: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_PGI_misc_hints ***)
function Load_GL_PGI_misc_hints: boolean;
begin
  result := false;
  glHintPGI := wglGetProcAddress('glHintPGI');
  if not Assigned(glHintPGI) then exit;
  result := true;
end;

(*** GL_EXT_paletted_texture ***)
function Load_GL_EXT_paletted_texture: boolean;
begin
  result := false;
  glColorTableEXT := wglGetProcAddress('glColorTableEXT');
  if not Assigned(glColorTableEXT) then exit;
  glGetColorTableEXT := wglGetProcAddress('glGetColorTableEXT');
  if not Assigned(glGetColorTableEXT) then exit;
  glGetColorTableParameterivEXT := wglGetProcAddress('glGetColorTableParameterivEXT');
  if not Assigned(glGetColorTableParameterivEXT) then exit;
  glGetColorTableParameterfvEXT := wglGetProcAddress('glGetColorTableParameterfvEXT');
  if not Assigned(glGetColorTableParameterfvEXT) then exit;
  result := true;
end;

(*** GL_EXT_clip_volume_hint ***)
function Load_GL_EXT_clip_volume_hint: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_list_priority ***)
function Load_GL_SGIX_list_priority: boolean;
begin
  result := false;
  glGetListParameterfvSGIX := wglGetProcAddress('glGetListParameterfvSGIX');
  if not Assigned(glGetListParameterfvSGIX) then exit;
  glGetListParameterivSGIX := wglGetProcAddress('glGetListParameterivSGIX');
  if not Assigned(glGetListParameterivSGIX) then exit;
  glListParameterfSGIX := wglGetProcAddress('glListParameterfSGIX');
  if not Assigned(glListParameterfSGIX) then exit;
  glListParameterfvSGIX := wglGetProcAddress('glListParameterfvSGIX');
  if not Assigned(glListParameterfvSGIX) then exit;
  glListParameteriSGIX := wglGetProcAddress('glListParameteriSGIX');
  if not Assigned(glListParameteriSGIX) then exit;
  glListParameterivSGIX := wglGetProcAddress('glListParameterivSGIX');
  if not Assigned(glListParameterivSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_ir_instrument1 ***)
function Load_GL_SGIX_ir_instrument1: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_calligraphic_fragment ***)
function Load_GL_SGIX_calligraphic_fragment: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_texture_lod_bias ***)
function Load_GL_SGIX_texture_lod_bias: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_shadow_ambient ***)
function Load_GL_SGIX_shadow_ambient: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_index_texture ***)
function Load_GL_EXT_index_texture: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_index_material ***)
function Load_GL_EXT_index_material: boolean;
begin
  result := false;
  glIndexMaterialEXT := wglGetProcAddress('glIndexMaterialEXT');
  if not Assigned(glIndexMaterialEXT) then exit;
  result := true;
end;

(*** GL_EXT_index_func ***)
function Load_GL_EXT_index_func: boolean;
begin
  result := false;
  glIndexFuncEXT := wglGetProcAddress('glIndexFuncEXT');
  if not Assigned(glIndexFuncEXT) then exit;
  result := true;
end;

(*** GL_EXT_index_array_formats ***)
function Load_GL_EXT_index_array_formats: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_compiled_vertex_array ***)
function Load_GL_EXT_compiled_vertex_array: boolean;
begin
  result := false;
  glLockArraysEXT := wglGetProcAddress('glLockArraysEXT');
  if not Assigned(glLockArraysEXT) then exit;
  glUnlockArraysEXT := wglGetProcAddress('glUnlockArraysEXT');
  if not Assigned(glUnlockArraysEXT) then exit;
  result := true;
end;

(*** GL_EXT_cull_vertex ***)
function Load_GL_EXT_cull_vertex: boolean;
begin
  result := false;
  glCullParameterdvEXT := wglGetProcAddress('glCullParameterdvEXT');
  if not Assigned(glCullParameterdvEXT) then exit;
  glCullParameterfvEXT := wglGetProcAddress('glCullParameterfvEXT');
  if not Assigned(glCullParameterfvEXT) then exit;
  result := true;
end;

(*** GL_SGIX_ycrcb ***)
function Load_GL_SGIX_ycrcb: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_fragment_lighting ***)
function Load_GL_SGIX_fragment_lighting: boolean;
begin
  result := false;
  glFragmentColorMaterialSGIX := wglGetProcAddress('glFragmentColorMaterialSGIX');
  if not Assigned(glFragmentColorMaterialSGIX) then exit;
  glFragmentLightfSGIX := wglGetProcAddress('glFragmentLightfSGIX');
  if not Assigned(glFragmentLightfSGIX) then exit;
  glFragmentLightfvSGIX := wglGetProcAddress('glFragmentLightfvSGIX');
  if not Assigned(glFragmentLightfvSGIX) then exit;
  glFragmentLightiSGIX := wglGetProcAddress('glFragmentLightiSGIX');
  if not Assigned(glFragmentLightiSGIX) then exit;
  glFragmentLightivSGIX := wglGetProcAddress('glFragmentLightivSGIX');
  if not Assigned(glFragmentLightivSGIX) then exit;
  glFragmentLightModelfSGIX := wglGetProcAddress('glFragmentLightModelfSGIX');
  if not Assigned(glFragmentLightModelfSGIX) then exit;
  glFragmentLightModelfvSGIX := wglGetProcAddress('glFragmentLightModelfvSGIX');
  if not Assigned(glFragmentLightModelfvSGIX) then exit;
  glFragmentLightModeliSGIX := wglGetProcAddress('glFragmentLightModeliSGIX');
  if not Assigned(glFragmentLightModeliSGIX) then exit;
  glFragmentLightModelivSGIX := wglGetProcAddress('glFragmentLightModelivSGIX');
  if not Assigned(glFragmentLightModelivSGIX) then exit;
  glFragmentMaterialfSGIX := wglGetProcAddress('glFragmentMaterialfSGIX');
  if not Assigned(glFragmentMaterialfSGIX) then exit;
  glFragmentMaterialfvSGIX := wglGetProcAddress('glFragmentMaterialfvSGIX');
  if not Assigned(glFragmentMaterialfvSGIX) then exit;
  glFragmentMaterialiSGIX := wglGetProcAddress('glFragmentMaterialiSGIX');
  if not Assigned(glFragmentMaterialiSGIX) then exit;
  glFragmentMaterialivSGIX := wglGetProcAddress('glFragmentMaterialivSGIX');
  if not Assigned(glFragmentMaterialivSGIX) then exit;
  glGetFragmentLightfvSGIX := wglGetProcAddress('glGetFragmentLightfvSGIX');
  if not Assigned(glGetFragmentLightfvSGIX) then exit;
  glGetFragmentLightivSGIX := wglGetProcAddress('glGetFragmentLightivSGIX');
  if not Assigned(glGetFragmentLightivSGIX) then exit;
  glGetFragmentMaterialfvSGIX := wglGetProcAddress('glGetFragmentMaterialfvSGIX');
  if not Assigned(glGetFragmentMaterialfvSGIX) then exit;
  glGetFragmentMaterialivSGIX := wglGetProcAddress('glGetFragmentMaterialivSGIX');
  if not Assigned(glGetFragmentMaterialivSGIX) then exit;
  glLightEnviSGIX := wglGetProcAddress('glLightEnviSGIX');
  if not Assigned(glLightEnviSGIX) then exit;
  result := true;
end;

(*** GL_IBM_rasterpos_clip ***)
function Load_GL_IBM_rasterpos_clip: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_HP_texture_lighting ***)
function Load_GL_HP_texture_lighting: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_draw_range_elements ***)
function Load_GL_EXT_draw_range_elements: boolean;
begin
  result := false;
  glDrawRangeElementsEXT := wglGetProcAddress('glDrawRangeElementsEXT');
  if not Assigned(glDrawRangeElementsEXT) then exit;
  result := true;
end;

(*** GL_WIN_phong_shading ***)
function Load_GL_WIN_phong_shading: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_WIN_specular_fog ***)
function Load_GL_WIN_specular_fog: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_light_texture ***)
function Load_GL_EXT_light_texture: boolean;
begin
  result := false;
  glApplyTextureEXT := wglGetProcAddress('glApplyTextureEXT');
  if not Assigned(glApplyTextureEXT) then exit;
  glTextureLightEXT := wglGetProcAddress('glTextureLightEXT');
  if not Assigned(glTextureLightEXT) then exit;
  glTextureMaterialEXT := wglGetProcAddress('glTextureMaterialEXT');
  if not Assigned(glTextureMaterialEXT) then exit;
  result := true;
end;

(*** GL_SGIX_blend_alpha_minmax ***)
function Load_GL_SGIX_blend_alpha_minmax: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_bgra ***)
function Load_GL_EXT_bgra: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_async ***)
function Load_GL_SGIX_async: boolean;
begin
  result := false;
  glAsyncMarkerSGIX := wglGetProcAddress('glAsyncMarkerSGIX');
  if not Assigned(glAsyncMarkerSGIX) then exit;
  glFinishAsyncSGIX := wglGetProcAddress('glFinishAsyncSGIX');
  if not Assigned(glFinishAsyncSGIX) then exit;
  glPollAsyncSGIX := wglGetProcAddress('glPollAsyncSGIX');
  if not Assigned(glPollAsyncSGIX) then exit;
  glGenAsyncMarkersSGIX := wglGetProcAddress('glGenAsyncMarkersSGIX');
  if not Assigned(glGenAsyncMarkersSGIX) then exit;
  glDeleteAsyncMarkersSGIX := wglGetProcAddress('glDeleteAsyncMarkersSGIX');
  if not Assigned(glDeleteAsyncMarkersSGIX) then exit;
  glIsAsyncMarkerSGIX := wglGetProcAddress('glIsAsyncMarkerSGIX');
  if not Assigned(glIsAsyncMarkerSGIX) then exit;
  result := true;
end;

(*** GL_SGIX_async_pixel ***)
function Load_GL_SGIX_async_pixel: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_async_histogram ***)
function Load_GL_SGIX_async_histogram: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_INTEL_parallel_arrays ***)
function Load_GL_INTEL_parallel_arrays: boolean;
begin
  result := false;
  glVertexPointervINTEL := wglGetProcAddress('glVertexPointervINTEL');
  if not Assigned(glVertexPointervINTEL) then exit;
  glNormalPointervINTEL := wglGetProcAddress('glNormalPointervINTEL');
  if not Assigned(glNormalPointervINTEL) then exit;
  glColorPointervINTEL := wglGetProcAddress('glColorPointervINTEL');
  if not Assigned(glColorPointervINTEL) then exit;
  glTexCoordPointervINTEL := wglGetProcAddress('glTexCoordPointervINTEL');
  if not Assigned(glTexCoordPointervINTEL) then exit;
  result := true;
end;

(*** GL_HP_occlusion_test ***)
function Load_GL_HP_occlusion_test: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_pixel_transform ***)
function Load_GL_EXT_pixel_transform: boolean;
begin
  result := false;
  glPixelTransformParameteriEXT := wglGetProcAddress('glPixelTransformParameteriEXT');
  if not Assigned(glPixelTransformParameteriEXT) then exit;
  glPixelTransformParameterfEXT := wglGetProcAddress('glPixelTransformParameterfEXT');
  if not Assigned(glPixelTransformParameterfEXT) then exit;
  glPixelTransformParameterivEXT := wglGetProcAddress('glPixelTransformParameterivEXT');
  if not Assigned(glPixelTransformParameterivEXT) then exit;
  glPixelTransformParameterfvEXT := wglGetProcAddress('glPixelTransformParameterfvEXT');
  if not Assigned(glPixelTransformParameterfvEXT) then exit;
  result := true;
end;

(*** GL_EXT_pixel_transform_color_table ***)
function Load_GL_EXT_pixel_transform_color_table: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_shared_texture_palette ***)
function Load_GL_EXT_shared_texture_palette: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_separate_specular_color ***)
function Load_GL_EXT_separate_specular_color: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_secondary_color ***)
function Load_GL_EXT_secondary_color: boolean;
begin
  result := false;
  glSecondaryColor3bEXT := wglGetProcAddress('glSecondaryColor3bEXT');
  if not Assigned(glSecondaryColor3bEXT) then exit;
  glSecondaryColor3bvEXT := wglGetProcAddress('glSecondaryColor3bvEXT');
  if not Assigned(glSecondaryColor3bvEXT) then exit;
  glSecondaryColor3dEXT := wglGetProcAddress('glSecondaryColor3dEXT');
  if not Assigned(glSecondaryColor3dEXT) then exit;
  glSecondaryColor3dvEXT := wglGetProcAddress('glSecondaryColor3dvEXT');
  if not Assigned(glSecondaryColor3dvEXT) then exit;
  glSecondaryColor3fEXT := wglGetProcAddress('glSecondaryColor3fEXT');
  if not Assigned(glSecondaryColor3fEXT) then exit;
  glSecondaryColor3fvEXT := wglGetProcAddress('glSecondaryColor3fvEXT');
  if not Assigned(glSecondaryColor3fvEXT) then exit;
  glSecondaryColor3iEXT := wglGetProcAddress('glSecondaryColor3iEXT');
  if not Assigned(glSecondaryColor3iEXT) then exit;
  glSecondaryColor3ivEXT := wglGetProcAddress('glSecondaryColor3ivEXT');
  if not Assigned(glSecondaryColor3ivEXT) then exit;
  glSecondaryColor3sEXT := wglGetProcAddress('glSecondaryColor3sEXT');
  if not Assigned(glSecondaryColor3sEXT) then exit;
  glSecondaryColor3svEXT := wglGetProcAddress('glSecondaryColor3svEXT');
  if not Assigned(glSecondaryColor3svEXT) then exit;
  glSecondaryColor3ubEXT := wglGetProcAddress('glSecondaryColor3ubEXT');
  if not Assigned(glSecondaryColor3ubEXT) then exit;
  glSecondaryColor3ubvEXT := wglGetProcAddress('glSecondaryColor3ubvEXT');
  if not Assigned(glSecondaryColor3ubvEXT) then exit;
  glSecondaryColor3uiEXT := wglGetProcAddress('glSecondaryColor3uiEXT');
  if not Assigned(glSecondaryColor3uiEXT) then exit;
  glSecondaryColor3uivEXT := wglGetProcAddress('glSecondaryColor3uivEXT');
  if not Assigned(glSecondaryColor3uivEXT) then exit;
  glSecondaryColor3usEXT := wglGetProcAddress('glSecondaryColor3usEXT');
  if not Assigned(glSecondaryColor3usEXT) then exit;
  glSecondaryColor3usvEXT := wglGetProcAddress('glSecondaryColor3usvEXT');
  if not Assigned(glSecondaryColor3usvEXT) then exit;
  glSecondaryColorPointerEXT := wglGetProcAddress('glSecondaryColorPointerEXT');
  if not Assigned(glSecondaryColorPointerEXT) then exit;
  result := true;
end;

(*** GL_EXT_texture_perturb_normal ***)
function Load_GL_EXT_texture_perturb_normal: boolean;
begin
  result := false;
  glTextureNormalEXT := wglGetProcAddress('glTextureNormalEXT');
  if not Assigned(glTextureNormalEXT) then exit;
  result := true;
end;

(*** GL_EXT_multi_draw_arrays ***)
function Load_GL_EXT_multi_draw_arrays: boolean;
begin
  result := false;
  glMultiDrawArraysEXT := wglGetProcAddress('glMultiDrawArraysEXT');
  if not Assigned(glMultiDrawArraysEXT) then exit;
  glMultiDrawElementsEXT := wglGetProcAddress('glMultiDrawElementsEXT');
  if not Assigned(glMultiDrawElementsEXT) then exit;
  result := true;
end;

(*** GL_EXT_fog_coord ***)
function Load_GL_EXT_fog_coord: boolean;
begin
  result := false;
  glFogCoordfEXT := wglGetProcAddress('glFogCoordfEXT');
  if not Assigned(glFogCoordfEXT) then exit;
  glFogCoordfvEXT := wglGetProcAddress('glFogCoordfvEXT');
  if not Assigned(glFogCoordfvEXT) then exit;
  glFogCoorddEXT := wglGetProcAddress('glFogCoorddEXT');
  if not Assigned(glFogCoorddEXT) then exit;
  glFogCoorddvEXT := wglGetProcAddress('glFogCoorddvEXT');
  if not Assigned(glFogCoorddvEXT) then exit;
  glFogCoordPointerEXT := wglGetProcAddress('glFogCoordPointerEXT');
  if not Assigned(glFogCoordPointerEXT) then exit;
  result := true;
end;

(*** GL_REND_screen_coordinates ***)
function Load_GL_REND_screen_coordinates: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_coordinate_frame ***)
function Load_GL_EXT_coordinate_frame: boolean;
begin
  result := false;
  glTangent3bEXT := wglGetProcAddress('glTangent3bEXT');
  if not Assigned(glTangent3bEXT) then exit;
  glTangent3bvEXT := wglGetProcAddress('glTangent3bvEXT');
  if not Assigned(glTangent3bvEXT) then exit;
  glTangent3dEXT := wglGetProcAddress('glTangent3dEXT');
  if not Assigned(glTangent3dEXT) then exit;
  glTangent3dvEXT := wglGetProcAddress('glTangent3dvEXT');
  if not Assigned(glTangent3dvEXT) then exit;
  glTangent3fEXT := wglGetProcAddress('glTangent3fEXT');
  if not Assigned(glTangent3fEXT) then exit;
  glTangent3fvEXT := wglGetProcAddress('glTangent3fvEXT');
  if not Assigned(glTangent3fvEXT) then exit;
  glTangent3iEXT := wglGetProcAddress('glTangent3iEXT');
  if not Assigned(glTangent3iEXT) then exit;
  glTangent3ivEXT := wglGetProcAddress('glTangent3ivEXT');
  if not Assigned(glTangent3ivEXT) then exit;
  glTangent3sEXT := wglGetProcAddress('glTangent3sEXT');
  if not Assigned(glTangent3sEXT) then exit;
  glTangent3svEXT := wglGetProcAddress('glTangent3svEXT');
  if not Assigned(glTangent3svEXT) then exit;
  glBinormal3bEXT := wglGetProcAddress('glBinormal3bEXT');
  if not Assigned(glBinormal3bEXT) then exit;
  glBinormal3bvEXT := wglGetProcAddress('glBinormal3bvEXT');
  if not Assigned(glBinormal3bvEXT) then exit;
  glBinormal3dEXT := wglGetProcAddress('glBinormal3dEXT');
  if not Assigned(glBinormal3dEXT) then exit;
  glBinormal3dvEXT := wglGetProcAddress('glBinormal3dvEXT');
  if not Assigned(glBinormal3dvEXT) then exit;
  glBinormal3fEXT := wglGetProcAddress('glBinormal3fEXT');
  if not Assigned(glBinormal3fEXT) then exit;
  glBinormal3fvEXT := wglGetProcAddress('glBinormal3fvEXT');
  if not Assigned(glBinormal3fvEXT) then exit;
  glBinormal3iEXT := wglGetProcAddress('glBinormal3iEXT');
  if not Assigned(glBinormal3iEXT) then exit;
  glBinormal3ivEXT := wglGetProcAddress('glBinormal3ivEXT');
  if not Assigned(glBinormal3ivEXT) then exit;
  glBinormal3sEXT := wglGetProcAddress('glBinormal3sEXT');
  if not Assigned(glBinormal3sEXT) then exit;
  glBinormal3svEXT := wglGetProcAddress('glBinormal3svEXT');
  if not Assigned(glBinormal3svEXT) then exit;
  glTangentPointerEXT := wglGetProcAddress('glTangentPointerEXT');
  if not Assigned(glTangentPointerEXT) then exit;
  glBinormalPointerEXT := wglGetProcAddress('glBinormalPointerEXT');
  if not Assigned(glBinormalPointerEXT) then exit;
  result := true;
end;

(*** GL_EXT_texture_env_combine ***)
function Load_GL_EXT_texture_env_combine: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_APPLE_specular_vector ***)
function Load_GL_APPLE_specular_vector: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_APPLE_transform_hint ***)
function Load_GL_APPLE_transform_hint: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_fog_scale ***)
function Load_GL_SGIX_fog_scale: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SUNX_constant_data ***)
function Load_GL_SUNX_constant_data: boolean;
begin
  result := false;
  glFinishTextureSUNX := wglGetProcAddress('glFinishTextureSUNX');
  if not Assigned(glFinishTextureSUNX) then exit;
  result := true;
end;

(*** GL_SUN_global_alpha ***)
function Load_GL_SUN_global_alpha: boolean;
begin
  result := false;
  glGlobalAlphaFactorbSUN := wglGetProcAddress('glGlobalAlphaFactorbSUN');
  if not Assigned(glGlobalAlphaFactorbSUN) then exit;
  glGlobalAlphaFactorsSUN := wglGetProcAddress('glGlobalAlphaFactorsSUN');
  if not Assigned(glGlobalAlphaFactorsSUN) then exit;
  glGlobalAlphaFactoriSUN := wglGetProcAddress('glGlobalAlphaFactoriSUN');
  if not Assigned(glGlobalAlphaFactoriSUN) then exit;
  glGlobalAlphaFactorfSUN := wglGetProcAddress('glGlobalAlphaFactorfSUN');
  if not Assigned(glGlobalAlphaFactorfSUN) then exit;
  glGlobalAlphaFactordSUN := wglGetProcAddress('glGlobalAlphaFactordSUN');
  if not Assigned(glGlobalAlphaFactordSUN) then exit;
  glGlobalAlphaFactorubSUN := wglGetProcAddress('glGlobalAlphaFactorubSUN');
  if not Assigned(glGlobalAlphaFactorubSUN) then exit;
  glGlobalAlphaFactorusSUN := wglGetProcAddress('glGlobalAlphaFactorusSUN');
  if not Assigned(glGlobalAlphaFactorusSUN) then exit;
  glGlobalAlphaFactoruiSUN := wglGetProcAddress('glGlobalAlphaFactoruiSUN');
  if not Assigned(glGlobalAlphaFactoruiSUN) then exit;
  result := true;
end;

(*** GL_SUN_triangle_list ***)
function Load_GL_SUN_triangle_list: boolean;
begin
  result := false;
  glReplacementCodeuiSUN := wglGetProcAddress('glReplacementCodeuiSUN');
  if not Assigned(glReplacementCodeuiSUN) then exit;
  glReplacementCodeusSUN := wglGetProcAddress('glReplacementCodeusSUN');
  if not Assigned(glReplacementCodeusSUN) then exit;
  glReplacementCodeubSUN := wglGetProcAddress('glReplacementCodeubSUN');
  if not Assigned(glReplacementCodeubSUN) then exit;
  glReplacementCodeuivSUN := wglGetProcAddress('glReplacementCodeuivSUN');
  if not Assigned(glReplacementCodeuivSUN) then exit;
  glReplacementCodeusvSUN := wglGetProcAddress('glReplacementCodeusvSUN');
  if not Assigned(glReplacementCodeusvSUN) then exit;
  glReplacementCodeubvSUN := wglGetProcAddress('glReplacementCodeubvSUN');
  if not Assigned(glReplacementCodeubvSUN) then exit;
  glReplacementCodePointerSUN := wglGetProcAddress('glReplacementCodePointerSUN');
  if not Assigned(glReplacementCodePointerSUN) then exit;
  result := true;
end;

(*** GL_SUN_vertex ***)
function Load_GL_SUN_vertex: boolean;
begin
  result := false;
  glColor4ubVertex2fSUN := wglGetProcAddress('glColor4ubVertex2fSUN');
  if not Assigned(glColor4ubVertex2fSUN) then exit;
  glColor4ubVertex2fvSUN := wglGetProcAddress('glColor4ubVertex2fvSUN');
  if not Assigned(glColor4ubVertex2fvSUN) then exit;
  glColor4ubVertex3fSUN := wglGetProcAddress('glColor4ubVertex3fSUN');
  if not Assigned(glColor4ubVertex3fSUN) then exit;
  glColor4ubVertex3fvSUN := wglGetProcAddress('glColor4ubVertex3fvSUN');
  if not Assigned(glColor4ubVertex3fvSUN) then exit;
  glColor3fVertex3fSUN := wglGetProcAddress('glColor3fVertex3fSUN');
  if not Assigned(glColor3fVertex3fSUN) then exit;
  glColor3fVertex3fvSUN := wglGetProcAddress('glColor3fVertex3fvSUN');
  if not Assigned(glColor3fVertex3fvSUN) then exit;
  glNormal3fVertex3fSUN := wglGetProcAddress('glNormal3fVertex3fSUN');
  if not Assigned(glNormal3fVertex3fSUN) then exit;
  glNormal3fVertex3fvSUN := wglGetProcAddress('glNormal3fVertex3fvSUN');
  if not Assigned(glNormal3fVertex3fvSUN) then exit;
  glColor4fNormal3fVertex3fSUN := wglGetProcAddress('glColor4fNormal3fVertex3fSUN');
  if not Assigned(glColor4fNormal3fVertex3fSUN) then exit;
  glColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
  if not Assigned(glColor4fNormal3fVertex3fvSUN) then exit;
  glTexCoord2fVertex3fSUN := wglGetProcAddress('glTexCoord2fVertex3fSUN');
  if not Assigned(glTexCoord2fVertex3fSUN) then exit;
  glTexCoord2fVertex3fvSUN := wglGetProcAddress('glTexCoord2fVertex3fvSUN');
  if not Assigned(glTexCoord2fVertex3fvSUN) then exit;
  glTexCoord4fVertex4fSUN := wglGetProcAddress('glTexCoord4fVertex4fSUN');
  if not Assigned(glTexCoord4fVertex4fSUN) then exit;
  glTexCoord4fVertex4fvSUN := wglGetProcAddress('glTexCoord4fVertex4fvSUN');
  if not Assigned(glTexCoord4fVertex4fvSUN) then exit;
  glTexCoord2fColor4ubVertex3fSUN := wglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
  if not Assigned(glTexCoord2fColor4ubVertex3fSUN) then exit;
  glTexCoord2fColor4ubVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
  if not Assigned(glTexCoord2fColor4ubVertex3fvSUN) then exit;
  glTexCoord2fColor3fVertex3fSUN := wglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
  if not Assigned(glTexCoord2fColor3fVertex3fSUN) then exit;
  glTexCoord2fColor3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
  if not Assigned(glTexCoord2fColor3fVertex3fvSUN) then exit;
  glTexCoord2fNormal3fVertex3fSUN := wglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
  if not Assigned(glTexCoord2fNormal3fVertex3fSUN) then exit;
  glTexCoord2fNormal3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
  if not Assigned(glTexCoord2fNormal3fVertex3fvSUN) then exit;
  glTexCoord2fColor4fNormal3fVertex3fSUN := wglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
  if not Assigned(glTexCoord2fColor4fNormal3fVertex3fSUN) then exit;
  glTexCoord2fColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
  if not Assigned(glTexCoord2fColor4fNormal3fVertex3fvSUN) then exit;
  glTexCoord4fColor4fNormal3fVertex4fSUN := wglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
  if not Assigned(glTexCoord4fColor4fNormal3fVertex4fSUN) then exit;
  glTexCoord4fColor4fNormal3fVertex4fvSUN := wglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
  if not Assigned(glTexCoord4fColor4fNormal3fVertex4fvSUN) then exit;
  glReplacementCodeuiVertex3fSUN := wglGetProcAddress('glReplacementCodeuiVertex3fSUN');
  if not Assigned(glReplacementCodeuiVertex3fSUN) then exit;
  glReplacementCodeuiVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
  if not Assigned(glReplacementCodeuiVertex3fvSUN) then exit;
  glReplacementCodeuiColor4ubVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
  if not Assigned(glReplacementCodeuiColor4ubVertex3fSUN) then exit;
  glReplacementCodeuiColor4ubVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
  if not Assigned(glReplacementCodeuiColor4ubVertex3fvSUN) then exit;
  glReplacementCodeuiColor3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
  if not Assigned(glReplacementCodeuiColor3fVertex3fSUN) then exit;
  glReplacementCodeuiColor3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
  if not Assigned(glReplacementCodeuiColor3fVertex3fvSUN) then exit;
  glReplacementCodeuiNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
  if not Assigned(glReplacementCodeuiNormal3fVertex3fSUN) then exit;
  glReplacementCodeuiNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
  if not Assigned(glReplacementCodeuiNormal3fVertex3fvSUN) then exit;
  glReplacementCodeuiColor4fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
  if not Assigned(glReplacementCodeuiColor4fNormal3fVertex3fSUN) then exit;
  glReplacementCodeuiColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
  if not Assigned(glReplacementCodeuiColor4fNormal3fVertex3fvSUN) then exit;
  glReplacementCodeuiTexCoord2fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
  if not Assigned(glReplacementCodeuiTexCoord2fVertex3fSUN) then exit;
  glReplacementCodeuiTexCoord2fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
  if not Assigned(glReplacementCodeuiTexCoord2fVertex3fvSUN) then exit;
  glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
  if not Assigned(glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) then exit;
  glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
  if not Assigned(glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) then exit;
  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
  if not Assigned(glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) then exit;
  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
  if not Assigned(glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) then exit;
  result := true;
end;

(*** GL_EXT_blend_func_separate ***)
function Load_GL_EXT_blend_func_separate: boolean;
begin
  result := false;
  glBlendFuncSeparateEXT := wglGetProcAddress('glBlendFuncSeparateEXT');
  if not Assigned(glBlendFuncSeparateEXT) then exit;
  result := true;
end;

(*** GL_INGR_blend_func_separate ***)
function Load_GL_INGR_blend_func_separate: boolean;
begin
  result := false;
  glBlendFuncSeparateINGR := wglGetProcAddress('glBlendFuncSeparateINGR');
  if not Assigned(glBlendFuncSeparateINGR) then exit;
  result := true;
end;

(*** GL_INGR_color_clamp ***)
function Load_GL_INGR_color_clamp: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_INGR_interlace_read ***)
function Load_GL_INGR_interlace_read: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_stencil_wrap ***)
function Load_GL_EXT_stencil_wrap: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_422_pixels ***)
function Load_GL_EXT_422_pixels: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_texgen_reflection ***)
function Load_GL_NV_texgen_reflection: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SUN_convolution_border_modes ***)
function Load_GL_SUN_convolution_border_modes: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_texture_env_add ***)
function Load_GL_EXT_texture_env_add: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_texture_lod_bias ***)
function Load_GL_EXT_texture_lod_bias: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_texture_filter_anisotropic ***)
function Load_GL_EXT_texture_filter_anisotropic: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_vertex_weighting ***)
function Load_GL_EXT_vertex_weighting: boolean;
begin
  result := false;
  glVertexWeightfEXT := wglGetProcAddress('glVertexWeightfEXT');
  if not Assigned(glVertexWeightfEXT) then exit;
  glVertexWeightfvEXT := wglGetProcAddress('glVertexWeightfvEXT');
  if not Assigned(glVertexWeightfvEXT) then exit;
  glVertexWeightPointerEXT := wglGetProcAddress('glVertexWeightPointerEXT');
  if not Assigned(glVertexWeightPointerEXT) then exit;
  result := true;
end;

(*** GL_NV_light_max_exponent ***)
function Load_GL_NV_light_max_exponent: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_vertex_array_range ***)
function Load_GL_NV_vertex_array_range: boolean;
begin
  result := false;
  glFlushVertexArrayRangeNV := wglGetProcAddress('glFlushVertexArrayRangeNV');
  if not Assigned(glFlushVertexArrayRangeNV) then exit;
  glVertexArrayRangeNV := wglGetProcAddress('glVertexArrayRangeNV');
  if not Assigned(glVertexArrayRangeNV) then exit;
  result := true;
end;

(*** GL_NV_register_combiners ***)
function Load_GL_NV_register_combiners: boolean;
begin
  result := false;
  glCombinerParameterfvNV := wglGetProcAddress('glCombinerParameterfvNV');
  if not Assigned(glCombinerParameterfvNV) then exit;
  glCombinerParameterfNV := wglGetProcAddress('glCombinerParameterfNV');
  if not Assigned(glCombinerParameterfNV) then exit;
  glCombinerParameterivNV := wglGetProcAddress('glCombinerParameterivNV');
  if not Assigned(glCombinerParameterivNV) then exit;
  glCombinerParameteriNV := wglGetProcAddress('glCombinerParameteriNV');
  if not Assigned(glCombinerParameteriNV) then exit;
  glCombinerInputNV := wglGetProcAddress('glCombinerInputNV');
  if not Assigned(glCombinerInputNV) then exit;
  glCombinerOutputNV := wglGetProcAddress('glCombinerOutputNV');
  if not Assigned(glCombinerOutputNV) then exit;
  glFinalCombinerInputNV := wglGetProcAddress('glFinalCombinerInputNV');
  if not Assigned(glFinalCombinerInputNV) then exit;
  glGetCombinerInputParameterfvNV := wglGetProcAddress('glGetCombinerInputParameterfvNV');
  if not Assigned(glGetCombinerInputParameterfvNV) then exit;
  glGetCombinerInputParameterivNV := wglGetProcAddress('glGetCombinerInputParameterivNV');
  if not Assigned(glGetCombinerInputParameterivNV) then exit;
  glGetCombinerOutputParameterfvNV := wglGetProcAddress('glGetCombinerOutputParameterfvNV');
  if not Assigned(glGetCombinerOutputParameterfvNV) then exit;
  glGetCombinerOutputParameterivNV := wglGetProcAddress('glGetCombinerOutputParameterivNV');
  if not Assigned(glGetCombinerOutputParameterivNV) then exit;
  glGetFinalCombinerInputParameterfvNV := wglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
  if not Assigned(glGetFinalCombinerInputParameterfvNV) then exit;
  glGetFinalCombinerInputParameterivNV := wglGetProcAddress('glGetFinalCombinerInputParameterivNV');
  if not Assigned(glGetFinalCombinerInputParameterivNV) then exit;
  result := true;
end;

(*** GL_NV_fog_distance ***)
function Load_GL_NV_fog_distance: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_texgen_emboss ***)
function Load_GL_NV_texgen_emboss: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_blend_square ***)
function Load_GL_NV_blend_square: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_texture_env_combine4 ***)
function Load_GL_NV_texture_env_combine4: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_MESA_resize_buffers ***)
function Load_GL_MESA_resize_buffers: boolean;
begin
  result := false;
  glResizeBuffersMESA := wglGetProcAddress('glResizeBuffersMESA');
  if not Assigned(glResizeBuffersMESA) then exit;
  result := true;
end;

(*** GL_MESA_window_pos ***)
function Load_GL_MESA_window_pos: boolean;
begin
  result := false;
  glWindowPos2dMESA := wglGetProcAddress('glWindowPos2dMESA');
  if not Assigned(glWindowPos2dMESA) then exit;
  glWindowPos2dvMESA := wglGetProcAddress('glWindowPos2dvMESA');
  if not Assigned(glWindowPos2dvMESA) then exit;
  glWindowPos2fMESA := wglGetProcAddress('glWindowPos2fMESA');
  if not Assigned(glWindowPos2fMESA) then exit;
  glWindowPos2fvMESA := wglGetProcAddress('glWindowPos2fvMESA');
  if not Assigned(glWindowPos2fvMESA) then exit;
  glWindowPos2iMESA := wglGetProcAddress('glWindowPos2iMESA');
  if not Assigned(glWindowPos2iMESA) then exit;
  glWindowPos2ivMESA := wglGetProcAddress('glWindowPos2ivMESA');
  if not Assigned(glWindowPos2ivMESA) then exit;
  glWindowPos2sMESA := wglGetProcAddress('glWindowPos2sMESA');
  if not Assigned(glWindowPos2sMESA) then exit;
  glWindowPos2svMESA := wglGetProcAddress('glWindowPos2svMESA');
  if not Assigned(glWindowPos2svMESA) then exit;
  glWindowPos3dMESA := wglGetProcAddress('glWindowPos3dMESA');
  if not Assigned(glWindowPos3dMESA) then exit;
  glWindowPos3dvMESA := wglGetProcAddress('glWindowPos3dvMESA');
  if not Assigned(glWindowPos3dvMESA) then exit;
  glWindowPos3fMESA := wglGetProcAddress('glWindowPos3fMESA');
  if not Assigned(glWindowPos3fMESA) then exit;
  glWindowPos3fvMESA := wglGetProcAddress('glWindowPos3fvMESA');
  if not Assigned(glWindowPos3fvMESA) then exit;
  glWindowPos3iMESA := wglGetProcAddress('glWindowPos3iMESA');
  if not Assigned(glWindowPos3iMESA) then exit;
  glWindowPos3ivMESA := wglGetProcAddress('glWindowPos3ivMESA');
  if not Assigned(glWindowPos3ivMESA) then exit;
  glWindowPos3sMESA := wglGetProcAddress('glWindowPos3sMESA');
  if not Assigned(glWindowPos3sMESA) then exit;
  glWindowPos3svMESA := wglGetProcAddress('glWindowPos3svMESA');
  if not Assigned(glWindowPos3svMESA) then exit;
  glWindowPos4dMESA := wglGetProcAddress('glWindowPos4dMESA');
  if not Assigned(glWindowPos4dMESA) then exit;
  glWindowPos4dvMESA := wglGetProcAddress('glWindowPos4dvMESA');
  if not Assigned(glWindowPos4dvMESA) then exit;
  glWindowPos4fMESA := wglGetProcAddress('glWindowPos4fMESA');
  if not Assigned(glWindowPos4fMESA) then exit;
  glWindowPos4fvMESA := wglGetProcAddress('glWindowPos4fvMESA');
  if not Assigned(glWindowPos4fvMESA) then exit;
  glWindowPos4iMESA := wglGetProcAddress('glWindowPos4iMESA');
  if not Assigned(glWindowPos4iMESA) then exit;
  glWindowPos4ivMESA := wglGetProcAddress('glWindowPos4ivMESA');
  if not Assigned(glWindowPos4ivMESA) then exit;
  glWindowPos4sMESA := wglGetProcAddress('glWindowPos4sMESA');
  if not Assigned(glWindowPos4sMESA) then exit;
  glWindowPos4svMESA := wglGetProcAddress('glWindowPos4svMESA');
  if not Assigned(glWindowPos4svMESA) then exit;
  result := true;
end;

(*** GL_IBM_cull_vertex ***)
function Load_GL_IBM_cull_vertex: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_IBM_multimode_draw_arrays ***)
function Load_GL_IBM_multimode_draw_arrays: boolean;
begin
  result := false;
  glMultiModeDrawArraysIBM := wglGetProcAddress('glMultiModeDrawArraysIBM');
  if not Assigned(glMultiModeDrawArraysIBM) then exit;
  glMultiModeDrawElementsIBM := wglGetProcAddress('glMultiModeDrawElementsIBM');
  if not Assigned(glMultiModeDrawElementsIBM) then exit;
  result := true;
end;

(*** GL_IBM_vertex_array_lists ***)
function Load_GL_IBM_vertex_array_lists: boolean;
begin
  result := false;
  glColorPointerListIBM := wglGetProcAddress('glColorPointerListIBM');
  if not Assigned(glColorPointerListIBM) then exit;
  glSecondaryColorPointerListIBM := wglGetProcAddress('glSecondaryColorPointerListIBM');
  if not Assigned(glSecondaryColorPointerListIBM) then exit;
  glEdgeFlagPointerListIBM := wglGetProcAddress('glEdgeFlagPointerListIBM');
  if not Assigned(glEdgeFlagPointerListIBM) then exit;
  glFogCoordPointerListIBM := wglGetProcAddress('glFogCoordPointerListIBM');
  if not Assigned(glFogCoordPointerListIBM) then exit;
  glIndexPointerListIBM := wglGetProcAddress('glIndexPointerListIBM');
  if not Assigned(glIndexPointerListIBM) then exit;
  glNormalPointerListIBM := wglGetProcAddress('glNormalPointerListIBM');
  if not Assigned(glNormalPointerListIBM) then exit;
  glTexCoordPointerListIBM := wglGetProcAddress('glTexCoordPointerListIBM');
  if not Assigned(glTexCoordPointerListIBM) then exit;
  glVertexPointerListIBM := wglGetProcAddress('glVertexPointerListIBM');
  if not Assigned(glVertexPointerListIBM) then exit;
  result := true;
end;

(*** GL_SGIX_subsample ***)
function Load_GL_SGIX_subsample: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_ycrcba ***)
function Load_GL_SGIX_ycrcba: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_ycrcb_subsample ***)
function Load_GL_SGIX_ycrcb_subsample: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_depth_pass_instrument ***)
function Load_GL_SGIX_depth_pass_instrument: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_3DFX_texture_compression_FXT1 ***)
function Load_GL_3DFX_texture_compression_FXT1: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_3DFX_multisample ***)
function Load_GL_3DFX_multisample: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_3DFX_tbuffer ***)
function Load_GL_3DFX_tbuffer: boolean;
begin
  result := false;
  glTbufferMask3DFX := wglGetProcAddress('glTbufferMask3DFX');
  if not Assigned(glTbufferMask3DFX) then exit;
  result := true;
end;

(*** GL_EXT_multisample ***)
function Load_GL_EXT_multisample: boolean;
begin
  result := false;
  glSampleMaskEXT := wglGetProcAddress('glSampleMaskEXT');
  if not Assigned(glSampleMaskEXT) then exit;
  glSamplePatternEXT := wglGetProcAddress('glSamplePatternEXT');
  if not Assigned(glSamplePatternEXT) then exit;
  result := true;
end;

(*** GL_SGIX_vertex_preclip ***)
function Load_GL_SGIX_vertex_preclip: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_convolution_accuracy ***)
function Load_GL_SGIX_convolution_accuracy: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_resample ***)
function Load_GL_SGIX_resample: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIS_point_line_texgen ***)
function Load_GL_SGIS_point_line_texgen: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIS_texture_color_mask ***)
function Load_GL_SGIS_texture_color_mask: boolean;
begin
  result := false;
  glTextureColorMaskSGIS := wglGetProcAddress('glTextureColorMaskSGIS');
  if not Assigned(glTextureColorMaskSGIS) then exit;
  result := true;
end;

(*** GL_SGIX_igloo_interface ***)
function Load_GL_SGIX_igloo_interface: boolean;
begin
  result := false;
  glIglooInterfaceSGIX := wglGetProcAddress('glIglooInterfaceSGIX');
  if not Assigned(glIglooInterfaceSGIX) then exit;
  result := true;
end;

(*** GL_EXT_texture_env_dot3 ***)
function Load_GL_EXT_texture_env_dot3: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ATI_texture_mirror_once ***)
function Load_GL_ATI_texture_mirror_once: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_fence ***)
function Load_GL_NV_fence: boolean;
begin
  result := false;
  glDeleteFencesNV := wglGetProcAddress('glDeleteFencesNV');
  if not Assigned(glDeleteFencesNV) then exit;
  glGenFencesNV := wglGetProcAddress('glGenFencesNV');
  if not Assigned(glGenFencesNV) then exit;
  glIsFenceNV := wglGetProcAddress('glIsFenceNV');
  if not Assigned(glIsFenceNV) then exit;
  glTestFenceNV := wglGetProcAddress('glTestFenceNV');
  if not Assigned(glTestFenceNV) then exit;
  glGetFenceivNV := wglGetProcAddress('glGetFenceivNV');
  if not Assigned(glGetFenceivNV) then exit;
  glFinishFenceNV := wglGetProcAddress('glFinishFenceNV');
  if not Assigned(glFinishFenceNV) then exit;
  glSetFenceNV := wglGetProcAddress('glSetFenceNV');
  if not Assigned(glSetFenceNV) then exit;
  result := true;
end;

(*** GL_NV_evaluators ***)
function Load_GL_NV_evaluators: boolean;
begin
  result := false;
  glMapControlPointsNV := wglGetProcAddress('glMapControlPointsNV');
  if not Assigned(glMapControlPointsNV) then exit;
  glMapParameterivNV := wglGetProcAddress('glMapParameterivNV');
  if not Assigned(glMapParameterivNV) then exit;
  glMapParameterfvNV := wglGetProcAddress('glMapParameterfvNV');
  if not Assigned(glMapParameterfvNV) then exit;
  glGetMapControlPointsNV := wglGetProcAddress('glGetMapControlPointsNV');
  if not Assigned(glGetMapControlPointsNV) then exit;
  glGetMapParameterivNV := wglGetProcAddress('glGetMapParameterivNV');
  if not Assigned(glGetMapParameterivNV) then exit;
  glGetMapParameterfvNV := wglGetProcAddress('glGetMapParameterfvNV');
  if not Assigned(glGetMapParameterfvNV) then exit;
  glGetMapAttribParameterivNV := wglGetProcAddress('glGetMapAttribParameterivNV');
  if not Assigned(glGetMapAttribParameterivNV) then exit;
  glGetMapAttribParameterfvNV := wglGetProcAddress('glGetMapAttribParameterfvNV');
  if not Assigned(glGetMapAttribParameterfvNV) then exit;
  glEvalMapsNV := wglGetProcAddress('glEvalMapsNV');
  if not Assigned(glEvalMapsNV) then exit;
  result := true;
end;

(*** GL_NV_packed_depth_stencil ***)
function Load_GL_NV_packed_depth_stencil: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_register_combiners2 ***)
function Load_GL_NV_register_combiners2: boolean;
begin
  result := false;
  glCombinerStageParameterfvNV := wglGetProcAddress('glCombinerStageParameterfvNV');
  if not Assigned(glCombinerStageParameterfvNV) then exit;
  glGetCombinerStageParameterfvNV := wglGetProcAddress('glGetCombinerStageParameterfvNV');
  if not Assigned(glGetCombinerStageParameterfvNV) then exit;
  result := true;
end;

(*** GL_NV_texture_compression_vtc ***)
function Load_GL_NV_texture_compression_vtc: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_texture_rectangle ***)
function Load_GL_NV_texture_rectangle: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_texture_shader ***)
function Load_GL_NV_texture_shader: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_texture_shader2 ***)
function Load_GL_NV_texture_shader2: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_vertex_array_range2 ***)
function Load_GL_NV_vertex_array_range2: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_vertex_program ***)
function Load_GL_NV_vertex_program: boolean;
begin
  result := false;
  glAreProgramsResidentNV := wglGetProcAddress('glAreProgramsResidentNV');
  if not Assigned(glAreProgramsResidentNV) then exit;
  glBindProgramNV := wglGetProcAddress('glBindProgramNV');
  if not Assigned(glBindProgramNV) then exit;
  glDeleteProgramsNV := wglGetProcAddress('glDeleteProgramsNV');
  if not Assigned(glDeleteProgramsNV) then exit;
  glExecuteProgramNV := wglGetProcAddress('glExecuteProgramNV');
  if not Assigned(glExecuteProgramNV) then exit;
  glGenProgramsNV := wglGetProcAddress('glGenProgramsNV');
  if not Assigned(glGenProgramsNV) then exit;
  glGetProgramParameterdvNV := wglGetProcAddress('glGetProgramParameterdvNV');
  if not Assigned(glGetProgramParameterdvNV) then exit;
  glGetProgramParameterfvNV := wglGetProcAddress('glGetProgramParameterfvNV');
  if not Assigned(glGetProgramParameterfvNV) then exit;
  glGetProgramivNV := wglGetProcAddress('glGetProgramivNV');
  if not Assigned(glGetProgramivNV) then exit;
  glGetProgramStringNV := wglGetProcAddress('glGetProgramStringNV');
  if not Assigned(glGetProgramStringNV) then exit;
  glGetTrackMatrixivNV := wglGetProcAddress('glGetTrackMatrixivNV');
  if not Assigned(glGetTrackMatrixivNV) then exit;
  glGetVertexAttribdvNV := wglGetProcAddress('glGetVertexAttribdvNV');
  if not Assigned(glGetVertexAttribdvNV) then exit;
  glGetVertexAttribfvNV := wglGetProcAddress('glGetVertexAttribfvNV');
  if not Assigned(glGetVertexAttribfvNV) then exit;
  glGetVertexAttribivNV := wglGetProcAddress('glGetVertexAttribivNV');
  if not Assigned(glGetVertexAttribivNV) then exit;
  glGetVertexAttribPointervNV := wglGetProcAddress('glGetVertexAttribPointervNV');
  if not Assigned(glGetVertexAttribPointervNV) then exit;
  glIsProgramNV := wglGetProcAddress('glIsProgramNV');
  if not Assigned(glIsProgramNV) then exit;
  glLoadProgramNV := wglGetProcAddress('glLoadProgramNV');
  if not Assigned(glLoadProgramNV) then exit;
  glProgramParameter4dNV := wglGetProcAddress('glProgramParameter4dNV');
  if not Assigned(glProgramParameter4dNV) then exit;
  glProgramParameter4dvNV := wglGetProcAddress('glProgramParameter4dvNV');
  if not Assigned(glProgramParameter4dvNV) then exit;
  glProgramParameter4fNV := wglGetProcAddress('glProgramParameter4fNV');
  if not Assigned(glProgramParameter4fNV) then exit;
  glProgramParameter4fvNV := wglGetProcAddress('glProgramParameter4fvNV');
  if not Assigned(glProgramParameter4fvNV) then exit;
  glProgramParameters4dvNV := wglGetProcAddress('glProgramParameters4dvNV');
  if not Assigned(glProgramParameters4dvNV) then exit;
  glProgramParameters4fvNV := wglGetProcAddress('glProgramParameters4fvNV');
  if not Assigned(glProgramParameters4fvNV) then exit;
  glRequestResidentProgramsNV := wglGetProcAddress('glRequestResidentProgramsNV');
  if not Assigned(glRequestResidentProgramsNV) then exit;
  glTrackMatrixNV := wglGetProcAddress('glTrackMatrixNV');
  if not Assigned(glTrackMatrixNV) then exit;
  glVertexAttribPointerNV := wglGetProcAddress('glVertexAttribPointerNV');
  if not Assigned(glVertexAttribPointerNV) then exit;
  glVertexAttrib1dNV := wglGetProcAddress('glVertexAttrib1dNV');
  if not Assigned(glVertexAttrib1dNV) then exit;
  glVertexAttrib1dvNV := wglGetProcAddress('glVertexAttrib1dvNV');
  if not Assigned(glVertexAttrib1dvNV) then exit;
  glVertexAttrib1fNV := wglGetProcAddress('glVertexAttrib1fNV');
  if not Assigned(glVertexAttrib1fNV) then exit;
  glVertexAttrib1fvNV := wglGetProcAddress('glVertexAttrib1fvNV');
  if not Assigned(glVertexAttrib1fvNV) then exit;
  glVertexAttrib1sNV := wglGetProcAddress('glVertexAttrib1sNV');
  if not Assigned(glVertexAttrib1sNV) then exit;
  glVertexAttrib1svNV := wglGetProcAddress('glVertexAttrib1svNV');
  if not Assigned(glVertexAttrib1svNV) then exit;
  glVertexAttrib2dNV := wglGetProcAddress('glVertexAttrib2dNV');
  if not Assigned(glVertexAttrib2dNV) then exit;
  glVertexAttrib2dvNV := wglGetProcAddress('glVertexAttrib2dvNV');
  if not Assigned(glVertexAttrib2dvNV) then exit;
  glVertexAttrib2fNV := wglGetProcAddress('glVertexAttrib2fNV');
  if not Assigned(glVertexAttrib2fNV) then exit;
  glVertexAttrib2fvNV := wglGetProcAddress('glVertexAttrib2fvNV');
  if not Assigned(glVertexAttrib2fvNV) then exit;
  glVertexAttrib2sNV := wglGetProcAddress('glVertexAttrib2sNV');
  if not Assigned(glVertexAttrib2sNV) then exit;
  glVertexAttrib2svNV := wglGetProcAddress('glVertexAttrib2svNV');
  if not Assigned(glVertexAttrib2svNV) then exit;
  glVertexAttrib3dNV := wglGetProcAddress('glVertexAttrib3dNV');
  if not Assigned(glVertexAttrib3dNV) then exit;
  glVertexAttrib3dvNV := wglGetProcAddress('glVertexAttrib3dvNV');
  if not Assigned(glVertexAttrib3dvNV) then exit;
  glVertexAttrib3fNV := wglGetProcAddress('glVertexAttrib3fNV');
  if not Assigned(glVertexAttrib3fNV) then exit;
  glVertexAttrib3fvNV := wglGetProcAddress('glVertexAttrib3fvNV');
  if not Assigned(glVertexAttrib3fvNV) then exit;
  glVertexAttrib3sNV := wglGetProcAddress('glVertexAttrib3sNV');
  if not Assigned(glVertexAttrib3sNV) then exit;
  glVertexAttrib3svNV := wglGetProcAddress('glVertexAttrib3svNV');
  if not Assigned(glVertexAttrib3svNV) then exit;
  glVertexAttrib4dNV := wglGetProcAddress('glVertexAttrib4dNV');
  if not Assigned(glVertexAttrib4dNV) then exit;
  glVertexAttrib4dvNV := wglGetProcAddress('glVertexAttrib4dvNV');
  if not Assigned(glVertexAttrib4dvNV) then exit;
  glVertexAttrib4fNV := wglGetProcAddress('glVertexAttrib4fNV');
  if not Assigned(glVertexAttrib4fNV) then exit;
  glVertexAttrib4fvNV := wglGetProcAddress('glVertexAttrib4fvNV');
  if not Assigned(glVertexAttrib4fvNV) then exit;
  glVertexAttrib4sNV := wglGetProcAddress('glVertexAttrib4sNV');
  if not Assigned(glVertexAttrib4sNV) then exit;
  glVertexAttrib4svNV := wglGetProcAddress('glVertexAttrib4svNV');
  if not Assigned(glVertexAttrib4svNV) then exit;
  glVertexAttrib4ubNV := wglGetProcAddress('glVertexAttrib4ubNV');
  if not Assigned(glVertexAttrib4ubNV) then exit;
  glVertexAttrib4ubvNV := wglGetProcAddress('glVertexAttrib4ubvNV');
  if not Assigned(glVertexAttrib4ubvNV) then exit;
  glVertexAttribs1dvNV := wglGetProcAddress('glVertexAttribs1dvNV');
  if not Assigned(glVertexAttribs1dvNV) then exit;
  glVertexAttribs1fvNV := wglGetProcAddress('glVertexAttribs1fvNV');
  if not Assigned(glVertexAttribs1fvNV) then exit;
  glVertexAttribs1svNV := wglGetProcAddress('glVertexAttribs1svNV');
  if not Assigned(glVertexAttribs1svNV) then exit;
  glVertexAttribs2dvNV := wglGetProcAddress('glVertexAttribs2dvNV');
  if not Assigned(glVertexAttribs2dvNV) then exit;
  glVertexAttribs2fvNV := wglGetProcAddress('glVertexAttribs2fvNV');
  if not Assigned(glVertexAttribs2fvNV) then exit;
  glVertexAttribs2svNV := wglGetProcAddress('glVertexAttribs2svNV');
  if not Assigned(glVertexAttribs2svNV) then exit;
  glVertexAttribs3dvNV := wglGetProcAddress('glVertexAttribs3dvNV');
  if not Assigned(glVertexAttribs3dvNV) then exit;
  glVertexAttribs3fvNV := wglGetProcAddress('glVertexAttribs3fvNV');
  if not Assigned(glVertexAttribs3fvNV) then exit;
  glVertexAttribs3svNV := wglGetProcAddress('glVertexAttribs3svNV');
  if not Assigned(glVertexAttribs3svNV) then exit;
  glVertexAttribs4dvNV := wglGetProcAddress('glVertexAttribs4dvNV');
  if not Assigned(glVertexAttribs4dvNV) then exit;
  glVertexAttribs4fvNV := wglGetProcAddress('glVertexAttribs4fvNV');
  if not Assigned(glVertexAttribs4fvNV) then exit;
  glVertexAttribs4svNV := wglGetProcAddress('glVertexAttribs4svNV');
  if not Assigned(glVertexAttribs4svNV) then exit;
  glVertexAttribs4ubvNV := wglGetProcAddress('glVertexAttribs4ubvNV');
  if not Assigned(glVertexAttribs4ubvNV) then exit;
  result := true;
end;

(*** GL_SGIX_texture_coordinate_clamp ***)
function Load_GL_SGIX_texture_coordinate_clamp: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_SGIX_scalebias_hint ***)
function Load_GL_SGIX_scalebias_hint: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_OML_interlace ***)
function Load_GL_OML_interlace: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_OML_subsample ***)
function Load_GL_OML_subsample: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_OML_resample ***)
function Load_GL_OML_resample: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_copy_depth_to_color ***)
function Load_GL_NV_copy_depth_to_color: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ATI_envmap_bumpmap ***)
function Load_GL_ATI_envmap_bumpmap: boolean;
begin
  result := false;
  glTexBumpParameterivATI := wglGetProcAddress('glTexBumpParameterivATI');
  if not Assigned(glTexBumpParameterivATI) then exit;
  glTexBumpParameterfvATI := wglGetProcAddress('glTexBumpParameterfvATI');
  if not Assigned(glTexBumpParameterfvATI) then exit;
  glGetTexBumpParameterivATI := wglGetProcAddress('glGetTexBumpParameterivATI');
  if not Assigned(glGetTexBumpParameterivATI) then exit;
  glGetTexBumpParameterfvATI := wglGetProcAddress('glGetTexBumpParameterfvATI');
  if not Assigned(glGetTexBumpParameterfvATI) then exit;
  result := true;
end;

(*** GL_ATI_fragment_shader ***)
function Load_GL_ATI_fragment_shader: boolean;
begin
  result := false;
  glGenFragmentShadersATI := wglGetProcAddress('glGenFragmentShadersATI');
  if not Assigned(glGenFragmentShadersATI) then exit;
  glBindFragmentShaderATI := wglGetProcAddress('glBindFragmentShaderATI');
  if not Assigned(glBindFragmentShaderATI) then exit;
  glDeleteFragmentShaderATI := wglGetProcAddress('glDeleteFragmentShaderATI');
  if not Assigned(glDeleteFragmentShaderATI) then exit;
  glBeginFragmentShaderATI := wglGetProcAddress('glBeginFragmentShaderATI');
  if not Assigned(glBeginFragmentShaderATI) then exit;
  glEndFragmentShaderATI := wglGetProcAddress('glEndFragmentShaderATI');
  if not Assigned(glEndFragmentShaderATI) then exit;
  glPassTexCoordATI := wglGetProcAddress('glPassTexCoordATI');
  if not Assigned(glPassTexCoordATI) then exit;
  glSampleMapATI := wglGetProcAddress('glSampleMapATI');
  if not Assigned(glSampleMapATI) then exit;
  glColorFragmentOp1ATI := wglGetProcAddress('glColorFragmentOp1ATI');
  if not Assigned(glColorFragmentOp1ATI) then exit;
  glColorFragmentOp2ATI := wglGetProcAddress('glColorFragmentOp2ATI');
  if not Assigned(glColorFragmentOp2ATI) then exit;
  glColorFragmentOp3ATI := wglGetProcAddress('glColorFragmentOp3ATI');
  if not Assigned(glColorFragmentOp3ATI) then exit;
  glAlphaFragmentOp1ATI := wglGetProcAddress('glAlphaFragmentOp1ATI');
  if not Assigned(glAlphaFragmentOp1ATI) then exit;
  glAlphaFragmentOp2ATI := wglGetProcAddress('glAlphaFragmentOp2ATI');
  if not Assigned(glAlphaFragmentOp2ATI) then exit;
  glAlphaFragmentOp3ATI := wglGetProcAddress('glAlphaFragmentOp3ATI');
  if not Assigned(glAlphaFragmentOp3ATI) then exit;
  glSetFragmentShaderConstantATI := wglGetProcAddress('glSetFragmentShaderConstantATI');
  if not Assigned(glSetFragmentShaderConstantATI) then exit;
  result := true;
end;

(*** GL_ATI_pn_triangles ***)
function Load_GL_ATI_pn_triangles: boolean;
begin
  result := false;
  glPNTrianglesiATI := wglGetProcAddress('glPNTrianglesiATI');
  if not Assigned(glPNTrianglesiATI) then exit;
  glPNTrianglesfATI := wglGetProcAddress('glPNTrianglesfATI');
  if not Assigned(glPNTrianglesfATI) then exit;
  result := true;
end;

(*** GL_ATI_vertex_array_object ***)
function Load_GL_ATI_vertex_array_object: boolean;
begin
  result := false;
  glNewObjectBufferATI := wglGetProcAddress('glNewObjectBufferATI');
  if not Assigned(glNewObjectBufferATI) then exit;
  glIsObjectBufferATI := wglGetProcAddress('glIsObjectBufferATI');
  if not Assigned(glIsObjectBufferATI) then exit;
  glUpdateObjectBufferATI := wglGetProcAddress('glUpdateObjectBufferATI');
  if not Assigned(glUpdateObjectBufferATI) then exit;
  glGetObjectBufferfvATI := wglGetProcAddress('glGetObjectBufferfvATI');
  if not Assigned(glGetObjectBufferfvATI) then exit;
  glGetObjectBufferivATI := wglGetProcAddress('glGetObjectBufferivATI');
  if not Assigned(glGetObjectBufferivATI) then exit;
  glFreeObjectBufferATI := wglGetProcAddress('glFreeObjectBufferATI');
  if not Assigned(glFreeObjectBufferATI) then exit;
  glArrayObjectATI := wglGetProcAddress('glArrayObjectATI');
  if not Assigned(glArrayObjectATI) then exit;
  glGetArrayObjectfvATI := wglGetProcAddress('glGetArrayObjectfvATI');
  if not Assigned(glGetArrayObjectfvATI) then exit;
  glGetArrayObjectivATI := wglGetProcAddress('glGetArrayObjectivATI');
  if not Assigned(glGetArrayObjectivATI) then exit;
  glVariantArrayObjectATI := wglGetProcAddress('glVariantArrayObjectATI');
  if not Assigned(glVariantArrayObjectATI) then exit;
  glGetVariantArrayObjectfvATI := wglGetProcAddress('glGetVariantArrayObjectfvATI');
  if not Assigned(glGetVariantArrayObjectfvATI) then exit;
  glGetVariantArrayObjectivATI := wglGetProcAddress('glGetVariantArrayObjectivATI');
  if not Assigned(glGetVariantArrayObjectivATI) then exit;
  result := true;
end;

(*** GL_EXT_vertex_shader ***)
function Load_GL_EXT_vertex_shader: boolean;
begin
  result := false;
  glBeginVertexShaderEXT := wglGetProcAddress('glBeginVertexShaderEXT');
  if not Assigned(glBeginVertexShaderEXT) then exit;
  glEndVertexShaderEXT := wglGetProcAddress('glEndVertexShaderEXT');
  if not Assigned(glEndVertexShaderEXT) then exit;
  glBindVertexShaderEXT := wglGetProcAddress('glBindVertexShaderEXT');
  if not Assigned(glBindVertexShaderEXT) then exit;
  glGenVertexShadersEXT := wglGetProcAddress('glGenVertexShadersEXT');
  if not Assigned(glGenVertexShadersEXT) then exit;
  glDeleteVertexShaderEXT := wglGetProcAddress('glDeleteVertexShaderEXT');
  if not Assigned(glDeleteVertexShaderEXT) then exit;
  glShaderOp1EXT := wglGetProcAddress('glShaderOp1EXT');
  if not Assigned(glShaderOp1EXT) then exit;
  glShaderOp2EXT := wglGetProcAddress('glShaderOp2EXT');
  if not Assigned(glShaderOp2EXT) then exit;
  glShaderOp3EXT := wglGetProcAddress('glShaderOp3EXT');
  if not Assigned(glShaderOp3EXT) then exit;
  glSwizzleEXT := wglGetProcAddress('glSwizzleEXT');
  if not Assigned(glSwizzleEXT) then exit;
  glWriteMaskEXT := wglGetProcAddress('glWriteMaskEXT');
  if not Assigned(glWriteMaskEXT) then exit;
  glInsertComponentEXT := wglGetProcAddress('glInsertComponentEXT');
  if not Assigned(glInsertComponentEXT) then exit;
  glExtractComponentEXT := wglGetProcAddress('glExtractComponentEXT');
  if not Assigned(glExtractComponentEXT) then exit;
  glGenSymbolsEXT := wglGetProcAddress('glGenSymbolsEXT');
  if not Assigned(glGenSymbolsEXT) then exit;
  glSetInvariantEXT := wglGetProcAddress('glSetInvariantEXT');
  if not Assigned(glSetInvariantEXT) then exit;
  glSetLocalConstantEXT := wglGetProcAddress('glSetLocalConstantEXT');
  if not Assigned(glSetLocalConstantEXT) then exit;
  glVariantbvEXT := wglGetProcAddress('glVariantbvEXT');
  if not Assigned(glVariantbvEXT) then exit;
  glVariantsvEXT := wglGetProcAddress('glVariantsvEXT');
  if not Assigned(glVariantsvEXT) then exit;
  glVariantivEXT := wglGetProcAddress('glVariantivEXT');
  if not Assigned(glVariantivEXT) then exit;
  glVariantfvEXT := wglGetProcAddress('glVariantfvEXT');
  if not Assigned(glVariantfvEXT) then exit;
  glVariantdvEXT := wglGetProcAddress('glVariantdvEXT');
  if not Assigned(glVariantdvEXT) then exit;
  glVariantubvEXT := wglGetProcAddress('glVariantubvEXT');
  if not Assigned(glVariantubvEXT) then exit;
  glVariantusvEXT := wglGetProcAddress('glVariantusvEXT');
  if not Assigned(glVariantusvEXT) then exit;
  glVariantuivEXT := wglGetProcAddress('glVariantuivEXT');
  if not Assigned(glVariantuivEXT) then exit;
  glVariantPointerEXT := wglGetProcAddress('glVariantPointerEXT');
  if not Assigned(glVariantPointerEXT) then exit;
  glEnableVariantClientStateEXT := wglGetProcAddress('glEnableVariantClientStateEXT');
  if not Assigned(glEnableVariantClientStateEXT) then exit;
  glDisableVariantClientStateEXT := wglGetProcAddress('glDisableVariantClientStateEXT');
  if not Assigned(glDisableVariantClientStateEXT) then exit;
  glBindLightParameterEXT := wglGetProcAddress('glBindLightParameterEXT');
  if not Assigned(glBindLightParameterEXT) then exit;
  glBindMaterialParameterEXT := wglGetProcAddress('glBindMaterialParameterEXT');
  if not Assigned(glBindMaterialParameterEXT) then exit;
  glBindTexGenParameterEXT := wglGetProcAddress('glBindTexGenParameterEXT');
  if not Assigned(glBindTexGenParameterEXT) then exit;
  glBindTextureUnitParameterEXT := wglGetProcAddress('glBindTextureUnitParameterEXT');
  if not Assigned(glBindTextureUnitParameterEXT) then exit;
  glBindParameterEXT := wglGetProcAddress('glBindParameterEXT');
  if not Assigned(glBindParameterEXT) then exit;
  glIsVariantEnabledEXT := wglGetProcAddress('glIsVariantEnabledEXT');
  if not Assigned(glIsVariantEnabledEXT) then exit;
  glGetVariantBooleanvEXT := wglGetProcAddress('glGetVariantBooleanvEXT');
  if not Assigned(glGetVariantBooleanvEXT) then exit;
  glGetVariantIntegervEXT := wglGetProcAddress('glGetVariantIntegervEXT');
  if not Assigned(glGetVariantIntegervEXT) then exit;
  glGetVariantFloatvEXT := wglGetProcAddress('glGetVariantFloatvEXT');
  if not Assigned(glGetVariantFloatvEXT) then exit;
  glGetVariantPointervEXT := wglGetProcAddress('glGetVariantPointervEXT');
  if not Assigned(glGetVariantPointervEXT) then exit;
  glGetInvariantBooleanvEXT := wglGetProcAddress('glGetInvariantBooleanvEXT');
  if not Assigned(glGetInvariantBooleanvEXT) then exit;
  glGetInvariantIntegervEXT := wglGetProcAddress('glGetInvariantIntegervEXT');
  if not Assigned(glGetInvariantIntegervEXT) then exit;
  glGetInvariantFloatvEXT := wglGetProcAddress('glGetInvariantFloatvEXT');
  if not Assigned(glGetInvariantFloatvEXT) then exit;
  glGetLocalConstantBooleanvEXT := wglGetProcAddress('glGetLocalConstantBooleanvEXT');
  if not Assigned(glGetLocalConstantBooleanvEXT) then exit;
  glGetLocalConstantIntegervEXT := wglGetProcAddress('glGetLocalConstantIntegervEXT');
  if not Assigned(glGetLocalConstantIntegervEXT) then exit;
  glGetLocalConstantFloatvEXT := wglGetProcAddress('glGetLocalConstantFloatvEXT');
  if not Assigned(glGetLocalConstantFloatvEXT) then exit;
  result := true;
end;

(*** GL_ATI_vertex_streams ***)
function Load_GL_ATI_vertex_streams: boolean;
begin
  result := false;
  glVertexStream1sATI := wglGetProcAddress('glVertexStream1sATI');
  if not Assigned(glVertexStream1sATI) then exit;
  glVertexStream1svATI := wglGetProcAddress('glVertexStream1svATI');
  if not Assigned(glVertexStream1svATI) then exit;
  glVertexStream1iATI := wglGetProcAddress('glVertexStream1iATI');
  if not Assigned(glVertexStream1iATI) then exit;
  glVertexStream1ivATI := wglGetProcAddress('glVertexStream1ivATI');
  if not Assigned(glVertexStream1ivATI) then exit;
  glVertexStream1fATI := wglGetProcAddress('glVertexStream1fATI');
  if not Assigned(glVertexStream1fATI) then exit;
  glVertexStream1fvATI := wglGetProcAddress('glVertexStream1fvATI');
  if not Assigned(glVertexStream1fvATI) then exit;
  glVertexStream1dATI := wglGetProcAddress('glVertexStream1dATI');
  if not Assigned(glVertexStream1dATI) then exit;
  glVertexStream1dvATI := wglGetProcAddress('glVertexStream1dvATI');
  if not Assigned(glVertexStream1dvATI) then exit;
  glVertexStream2sATI := wglGetProcAddress('glVertexStream2sATI');
  if not Assigned(glVertexStream2sATI) then exit;
  glVertexStream2svATI := wglGetProcAddress('glVertexStream2svATI');
  if not Assigned(glVertexStream2svATI) then exit;
  glVertexStream2iATI := wglGetProcAddress('glVertexStream2iATI');
  if not Assigned(glVertexStream2iATI) then exit;
  glVertexStream2ivATI := wglGetProcAddress('glVertexStream2ivATI');
  if not Assigned(glVertexStream2ivATI) then exit;
  glVertexStream2fATI := wglGetProcAddress('glVertexStream2fATI');
  if not Assigned(glVertexStream2fATI) then exit;
  glVertexStream2fvATI := wglGetProcAddress('glVertexStream2fvATI');
  if not Assigned(glVertexStream2fvATI) then exit;
  glVertexStream2dATI := wglGetProcAddress('glVertexStream2dATI');
  if not Assigned(glVertexStream2dATI) then exit;
  glVertexStream2dvATI := wglGetProcAddress('glVertexStream2dvATI');
  if not Assigned(glVertexStream2dvATI) then exit;
  glVertexStream3sATI := wglGetProcAddress('glVertexStream3sATI');
  if not Assigned(glVertexStream3sATI) then exit;
  glVertexStream3svATI := wglGetProcAddress('glVertexStream3svATI');
  if not Assigned(glVertexStream3svATI) then exit;
  glVertexStream3iATI := wglGetProcAddress('glVertexStream3iATI');
  if not Assigned(glVertexStream3iATI) then exit;
  glVertexStream3ivATI := wglGetProcAddress('glVertexStream3ivATI');
  if not Assigned(glVertexStream3ivATI) then exit;
  glVertexStream3fATI := wglGetProcAddress('glVertexStream3fATI');
  if not Assigned(glVertexStream3fATI) then exit;
  glVertexStream3fvATI := wglGetProcAddress('glVertexStream3fvATI');
  if not Assigned(glVertexStream3fvATI) then exit;
  glVertexStream3dATI := wglGetProcAddress('glVertexStream3dATI');
  if not Assigned(glVertexStream3dATI) then exit;
  glVertexStream3dvATI := wglGetProcAddress('glVertexStream3dvATI');
  if not Assigned(glVertexStream3dvATI) then exit;
  glVertexStream4sATI := wglGetProcAddress('glVertexStream4sATI');
  if not Assigned(glVertexStream4sATI) then exit;
  glVertexStream4svATI := wglGetProcAddress('glVertexStream4svATI');
  if not Assigned(glVertexStream4svATI) then exit;
  glVertexStream4iATI := wglGetProcAddress('glVertexStream4iATI');
  if not Assigned(glVertexStream4iATI) then exit;
  glVertexStream4ivATI := wglGetProcAddress('glVertexStream4ivATI');
  if not Assigned(glVertexStream4ivATI) then exit;
  glVertexStream4fATI := wglGetProcAddress('glVertexStream4fATI');
  if not Assigned(glVertexStream4fATI) then exit;
  glVertexStream4fvATI := wglGetProcAddress('glVertexStream4fvATI');
  if not Assigned(glVertexStream4fvATI) then exit;
  glVertexStream4dATI := wglGetProcAddress('glVertexStream4dATI');
  if not Assigned(glVertexStream4dATI) then exit;
  glVertexStream4dvATI := wglGetProcAddress('glVertexStream4dvATI');
  if not Assigned(glVertexStream4dvATI) then exit;
  glNormalStream3bATI := wglGetProcAddress('glNormalStream3bATI');
  if not Assigned(glNormalStream3bATI) then exit;
  glNormalStream3bvATI := wglGetProcAddress('glNormalStream3bvATI');
  if not Assigned(glNormalStream3bvATI) then exit;
  glNormalStream3sATI := wglGetProcAddress('glNormalStream3sATI');
  if not Assigned(glNormalStream3sATI) then exit;
  glNormalStream3svATI := wglGetProcAddress('glNormalStream3svATI');
  if not Assigned(glNormalStream3svATI) then exit;
  glNormalStream3iATI := wglGetProcAddress('glNormalStream3iATI');
  if not Assigned(glNormalStream3iATI) then exit;
  glNormalStream3ivATI := wglGetProcAddress('glNormalStream3ivATI');
  if not Assigned(glNormalStream3ivATI) then exit;
  glNormalStream3fATI := wglGetProcAddress('glNormalStream3fATI');
  if not Assigned(glNormalStream3fATI) then exit;
  glNormalStream3fvATI := wglGetProcAddress('glNormalStream3fvATI');
  if not Assigned(glNormalStream3fvATI) then exit;
  glNormalStream3dATI := wglGetProcAddress('glNormalStream3dATI');
  if not Assigned(glNormalStream3dATI) then exit;
  glNormalStream3dvATI := wglGetProcAddress('glNormalStream3dvATI');
  if not Assigned(glNormalStream3dvATI) then exit;
  glClientActiveVertexStreamATI := wglGetProcAddress('glClientActiveVertexStreamATI');
  if not Assigned(glClientActiveVertexStreamATI) then exit;
  glVertexBlendEnviATI := wglGetProcAddress('glVertexBlendEnviATI');
  if not Assigned(glVertexBlendEnviATI) then exit;
  glVertexBlendEnvfATI := wglGetProcAddress('glVertexBlendEnvfATI');
  if not Assigned(glVertexBlendEnvfATI) then exit;
  result := true;
end;

(*** GL_ATI_element_array ***)
function Load_GL_ATI_element_array: boolean;
begin
  result := false;
  glElementPointerATI := wglGetProcAddress('glElementPointerATI');
  if not Assigned(glElementPointerATI) then exit;
  glDrawElementArrayATI := wglGetProcAddress('glDrawElementArrayATI');
  if not Assigned(glDrawElementArrayATI) then exit;
  glDrawRangeElementArrayATI := wglGetProcAddress('glDrawRangeElementArrayATI');
  if not Assigned(glDrawRangeElementArrayATI) then exit;
  result := true;
end;

(*** GL_SUN_mesh_array ***)
function Load_GL_SUN_mesh_array: boolean;
begin
  result := false;
  glDrawMeshArraysSUN := wglGetProcAddress('glDrawMeshArraysSUN');
  if not Assigned(glDrawMeshArraysSUN) then exit;
  result := true;
end;

(*** GL_SUN_slice_accum ***)
function Load_GL_SUN_slice_accum: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_multisample_filter_hint ***)
function Load_GL_NV_multisample_filter_hint: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_depth_clamp ***)
function Load_GL_NV_depth_clamp: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_occlusion_query ***)
function Load_GL_NV_occlusion_query: boolean;
begin
  result := false;
  glGenOcclusionQueriesNV := wglGetProcAddress('glGenOcclusionQueriesNV');
  if not Assigned(glGenOcclusionQueriesNV) then exit;
  glDeleteOcclusionQueriesNV := wglGetProcAddress('glDeleteOcclusionQueriesNV');
  if not Assigned(glDeleteOcclusionQueriesNV) then exit;
  glIsOcclusionQueryNV := wglGetProcAddress('glIsOcclusionQueryNV');
  if not Assigned(glIsOcclusionQueryNV) then exit;
  glBeginOcclusionQueryNV := wglGetProcAddress('glBeginOcclusionQueryNV');
  if not Assigned(glBeginOcclusionQueryNV) then exit;
  glEndOcclusionQueryNV := wglGetProcAddress('glEndOcclusionQueryNV');
  if not Assigned(glEndOcclusionQueryNV) then exit;
  glGetOcclusionQueryivNV := wglGetProcAddress('glGetOcclusionQueryivNV');
  if not Assigned(glGetOcclusionQueryivNV) then exit;
  glGetOcclusionQueryuivNV := wglGetProcAddress('glGetOcclusionQueryuivNV');
  if not Assigned(glGetOcclusionQueryuivNV) then exit;
  result := true;
end;

(*** GL_NV_point_sprite ***)
function Load_GL_NV_point_sprite: boolean;
begin
  result := false;
  glPointParameteriNV := wglGetProcAddress('glPointParameteriNV');
  if not Assigned(glPointParameteriNV) then exit;
  glPointParameterivNV := wglGetProcAddress('glPointParameterivNV');
  if not Assigned(glPointParameterivNV) then exit;
  result := true;
end;

(*** GL_NV_texture_shader3 ***)
function Load_GL_NV_texture_shader3: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_vertex_program1_1 ***)
function Load_GL_NV_vertex_program1_1: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_shadow_funcs ***)
function Load_GL_EXT_shadow_funcs: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_stencil_two_side ***)
function Load_GL_EXT_stencil_two_side: boolean;
begin
  result := false;
  glActiveStencilFaceEXT := wglGetProcAddress('glActiveStencilFaceEXT');
  if not Assigned(glActiveStencilFaceEXT) then exit;
  result := true;
end;

(*** GL_ATI_text_fragment_shader ***)
function Load_GL_ATI_text_fragment_shader: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_APPLE_client_storage ***)
function Load_GL_APPLE_client_storage: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_APPLE_element_array ***)
function Load_GL_APPLE_element_array: boolean;
begin
  result := false;
  glElementPointerAPPLE := wglGetProcAddress('glElementPointerAPPLE');
  if not Assigned(glElementPointerAPPLE) then exit;
  glDrawElementArrayAPPLE := wglGetProcAddress('glDrawElementArrayAPPLE');
  if not Assigned(glDrawElementArrayAPPLE) then exit;
  glDrawRangeElementArrayAPPLE := wglGetProcAddress('glDrawRangeElementArrayAPPLE');
  if not Assigned(glDrawRangeElementArrayAPPLE) then exit;
  glMultiDrawElementArrayAPPLE := wglGetProcAddress('glMultiDrawElementArrayAPPLE');
  if not Assigned(glMultiDrawElementArrayAPPLE) then exit;
  glMultiDrawRangeElementArrayAPPLE := wglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
  if not Assigned(glMultiDrawRangeElementArrayAPPLE) then exit;
  result := true;
end;

(*** GL_APPLE_fence ***)
function Load_GL_APPLE_fence: boolean;
begin
  result := false;
  glGenFencesAPPLE := wglGetProcAddress('glGenFencesAPPLE');
  if not Assigned(glGenFencesAPPLE) then exit;
  glDeleteFencesAPPLE := wglGetProcAddress('glDeleteFencesAPPLE');
  if not Assigned(glDeleteFencesAPPLE) then exit;
  glSetFenceAPPLE := wglGetProcAddress('glSetFenceAPPLE');
  if not Assigned(glSetFenceAPPLE) then exit;
  glIsFenceAPPLE := wglGetProcAddress('glIsFenceAPPLE');
  if not Assigned(glIsFenceAPPLE) then exit;
  glTestFenceAPPLE := wglGetProcAddress('glTestFenceAPPLE');
  if not Assigned(glTestFenceAPPLE) then exit;
  glFinishFenceAPPLE := wglGetProcAddress('glFinishFenceAPPLE');
  if not Assigned(glFinishFenceAPPLE) then exit;
  glTestObjectAPPLE := wglGetProcAddress('glTestObjectAPPLE');
  if not Assigned(glTestObjectAPPLE) then exit;
  glFinishObjectAPPLE := wglGetProcAddress('glFinishObjectAPPLE');
  if not Assigned(glFinishObjectAPPLE) then exit;
  result := true;
end;

(*** GL_APPLE_vertex_array_object ***)
function Load_GL_APPLE_vertex_array_object: boolean;
begin
  result := false;
  glBindVertexArrayAPPLE := wglGetProcAddress('glBindVertexArrayAPPLE');
  if not Assigned(glBindVertexArrayAPPLE) then exit;
  glDeleteVertexArraysAPPLE := wglGetProcAddress('glDeleteVertexArraysAPPLE');
  if not Assigned(glDeleteVertexArraysAPPLE) then exit;
  glGenVertexArraysAPPLE := wglGetProcAddress('glGenVertexArraysAPPLE');
  if not Assigned(glGenVertexArraysAPPLE) then exit;
  glIsVertexArrayAPPLE := wglGetProcAddress('glIsVertexArrayAPPLE');
  if not Assigned(glIsVertexArrayAPPLE) then exit;
  result := true;
end;

(*** GL_APPLE_vertex_array_range ***)
function Load_GL_APPLE_vertex_array_range: boolean;
begin
  result := false;
  glVertexArrayRangeAPPLE := wglGetProcAddress('glVertexArrayRangeAPPLE');
  if not Assigned(glVertexArrayRangeAPPLE) then exit;
  glFlushVertexArrayRangeAPPLE := wglGetProcAddress('glFlushVertexArrayRangeAPPLE');
  if not Assigned(glFlushVertexArrayRangeAPPLE) then exit;
  glVertexArrayParameteriAPPLE := wglGetProcAddress('glVertexArrayParameteriAPPLE');
  if not Assigned(glVertexArrayParameteriAPPLE) then exit;
  result := true;
end;

(*** GL_APPLE_ycbcr_422 ***)
function Load_GL_APPLE_ycbcr_422: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_S3_s3tc ***)
function Load_GL_S3_s3tc: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ATI_draw_buffers ***)
function Load_GL_ATI_draw_buffers: boolean;
begin
  result := false;
  glDrawBuffersATI := wglGetProcAddress('glDrawBuffersATI');
  if not Assigned(glDrawBuffersATI) then exit;
  result := true;
end;

(*** GL_ATI_pixel_format_float ***)
function Load_GL_ATI_pixel_format_float: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ATI_texture_env_combine3 ***)
function Load_GL_ATI_texture_env_combine3: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ATI_texture_float ***)
function Load_GL_ATI_texture_float: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_float_buffer ***)
function Load_GL_NV_float_buffer: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_fragment_program ***)
function Load_GL_NV_fragment_program: boolean;
begin
  result := false;
  glProgramNamedParameter4fNV := wglGetProcAddress('glProgramNamedParameter4fNV');
  if not Assigned(glProgramNamedParameter4fNV) then exit;
  glProgramNamedParameter4dNV := wglGetProcAddress('glProgramNamedParameter4dNV');
  if not Assigned(glProgramNamedParameter4dNV) then exit;
  glProgramNamedParameter4fvNV := wglGetProcAddress('glProgramNamedParameter4fvNV');
  if not Assigned(glProgramNamedParameter4fvNV) then exit;
  glProgramNamedParameter4dvNV := wglGetProcAddress('glProgramNamedParameter4dvNV');
  if not Assigned(glProgramNamedParameter4dvNV) then exit;
  glGetProgramNamedParameterfvNV := wglGetProcAddress('glGetProgramNamedParameterfvNV');
  if not Assigned(glGetProgramNamedParameterfvNV) then exit;
  glGetProgramNamedParameterdvNV := wglGetProcAddress('glGetProgramNamedParameterdvNV');
  if not Assigned(glGetProgramNamedParameterdvNV) then exit;
  result := true;
end;

(*** GL_NV_half_float ***)
function Load_GL_NV_half_float: boolean;
begin
  result := false;
  glVertex2hNV := wglGetProcAddress('glVertex2hNV');
  if not Assigned(glVertex2hNV) then exit;
  glVertex2hvNV := wglGetProcAddress('glVertex2hvNV');
  if not Assigned(glVertex2hvNV) then exit;
  glVertex3hNV := wglGetProcAddress('glVertex3hNV');
  if not Assigned(glVertex3hNV) then exit;
  glVertex3hvNV := wglGetProcAddress('glVertex3hvNV');
  if not Assigned(glVertex3hvNV) then exit;
  glVertex4hNV := wglGetProcAddress('glVertex4hNV');
  if not Assigned(glVertex4hNV) then exit;
  glVertex4hvNV := wglGetProcAddress('glVertex4hvNV');
  if not Assigned(glVertex4hvNV) then exit;
  glNormal3hNV := wglGetProcAddress('glNormal3hNV');
  if not Assigned(glNormal3hNV) then exit;
  glNormal3hvNV := wglGetProcAddress('glNormal3hvNV');
  if not Assigned(glNormal3hvNV) then exit;
  glColor3hNV := wglGetProcAddress('glColor3hNV');
  if not Assigned(glColor3hNV) then exit;
  glColor3hvNV := wglGetProcAddress('glColor3hvNV');
  if not Assigned(glColor3hvNV) then exit;
  glColor4hNV := wglGetProcAddress('glColor4hNV');
  if not Assigned(glColor4hNV) then exit;
  glColor4hvNV := wglGetProcAddress('glColor4hvNV');
  if not Assigned(glColor4hvNV) then exit;
  glTexCoord1hNV := wglGetProcAddress('glTexCoord1hNV');
  if not Assigned(glTexCoord1hNV) then exit;
  glTexCoord1hvNV := wglGetProcAddress('glTexCoord1hvNV');
  if not Assigned(glTexCoord1hvNV) then exit;
  glTexCoord2hNV := wglGetProcAddress('glTexCoord2hNV');
  if not Assigned(glTexCoord2hNV) then exit;
  glTexCoord2hvNV := wglGetProcAddress('glTexCoord2hvNV');
  if not Assigned(glTexCoord2hvNV) then exit;
  glTexCoord3hNV := wglGetProcAddress('glTexCoord3hNV');
  if not Assigned(glTexCoord3hNV) then exit;
  glTexCoord3hvNV := wglGetProcAddress('glTexCoord3hvNV');
  if not Assigned(glTexCoord3hvNV) then exit;
  glTexCoord4hNV := wglGetProcAddress('glTexCoord4hNV');
  if not Assigned(glTexCoord4hNV) then exit;
  glTexCoord4hvNV := wglGetProcAddress('glTexCoord4hvNV');
  if not Assigned(glTexCoord4hvNV) then exit;
  glMultiTexCoord1hNV := wglGetProcAddress('glMultiTexCoord1hNV');
  if not Assigned(glMultiTexCoord1hNV) then exit;
  glMultiTexCoord1hvNV := wglGetProcAddress('glMultiTexCoord1hvNV');
  if not Assigned(glMultiTexCoord1hvNV) then exit;
  glMultiTexCoord2hNV := wglGetProcAddress('glMultiTexCoord2hNV');
  if not Assigned(glMultiTexCoord2hNV) then exit;
  glMultiTexCoord2hvNV := wglGetProcAddress('glMultiTexCoord2hvNV');
  if not Assigned(glMultiTexCoord2hvNV) then exit;
  glMultiTexCoord3hNV := wglGetProcAddress('glMultiTexCoord3hNV');
  if not Assigned(glMultiTexCoord3hNV) then exit;
  glMultiTexCoord3hvNV := wglGetProcAddress('glMultiTexCoord3hvNV');
  if not Assigned(glMultiTexCoord3hvNV) then exit;
  glMultiTexCoord4hNV := wglGetProcAddress('glMultiTexCoord4hNV');
  if not Assigned(glMultiTexCoord4hNV) then exit;
  glMultiTexCoord4hvNV := wglGetProcAddress('glMultiTexCoord4hvNV');
  if not Assigned(glMultiTexCoord4hvNV) then exit;
  glFogCoordhNV := wglGetProcAddress('glFogCoordhNV');
  if not Assigned(glFogCoordhNV) then exit;
  glFogCoordhvNV := wglGetProcAddress('glFogCoordhvNV');
  if not Assigned(glFogCoordhvNV) then exit;
  glSecondaryColor3hNV := wglGetProcAddress('glSecondaryColor3hNV');
  if not Assigned(glSecondaryColor3hNV) then exit;
  glSecondaryColor3hvNV := wglGetProcAddress('glSecondaryColor3hvNV');
  if not Assigned(glSecondaryColor3hvNV) then exit;
  glVertexWeighthNV := wglGetProcAddress('glVertexWeighthNV');
  if not Assigned(glVertexWeighthNV) then exit;
  glVertexWeighthvNV := wglGetProcAddress('glVertexWeighthvNV');
  if not Assigned(glVertexWeighthvNV) then exit;
  glVertexAttrib1hNV := wglGetProcAddress('glVertexAttrib1hNV');
  if not Assigned(glVertexAttrib1hNV) then exit;
  glVertexAttrib1hvNV := wglGetProcAddress('glVertexAttrib1hvNV');
  if not Assigned(glVertexAttrib1hvNV) then exit;
  glVertexAttrib2hNV := wglGetProcAddress('glVertexAttrib2hNV');
  if not Assigned(glVertexAttrib2hNV) then exit;
  glVertexAttrib2hvNV := wglGetProcAddress('glVertexAttrib2hvNV');
  if not Assigned(glVertexAttrib2hvNV) then exit;
  glVertexAttrib3hNV := wglGetProcAddress('glVertexAttrib3hNV');
  if not Assigned(glVertexAttrib3hNV) then exit;
  glVertexAttrib3hvNV := wglGetProcAddress('glVertexAttrib3hvNV');
  if not Assigned(glVertexAttrib3hvNV) then exit;
  glVertexAttrib4hNV := wglGetProcAddress('glVertexAttrib4hNV');
  if not Assigned(glVertexAttrib4hNV) then exit;
  glVertexAttrib4hvNV := wglGetProcAddress('glVertexAttrib4hvNV');
  if not Assigned(glVertexAttrib4hvNV) then exit;
  glVertexAttribs1hvNV := wglGetProcAddress('glVertexAttribs1hvNV');
  if not Assigned(glVertexAttribs1hvNV) then exit;
  glVertexAttribs2hvNV := wglGetProcAddress('glVertexAttribs2hvNV');
  if not Assigned(glVertexAttribs2hvNV) then exit;
  glVertexAttribs3hvNV := wglGetProcAddress('glVertexAttribs3hvNV');
  if not Assigned(glVertexAttribs3hvNV) then exit;
  glVertexAttribs4hvNV := wglGetProcAddress('glVertexAttribs4hvNV');
  if not Assigned(glVertexAttribs4hvNV) then exit;
  result := true;
end;

(*** GL_NV_pixel_data_range ***)
function Load_GL_NV_pixel_data_range: boolean;
begin
  result := false;
  glPixelDataRangeNV := wglGetProcAddress('glPixelDataRangeNV');
  if not Assigned(glPixelDataRangeNV) then exit;
  glFlushPixelDataRangeNV := wglGetProcAddress('glFlushPixelDataRangeNV');
  if not Assigned(glFlushPixelDataRangeNV) then exit;
  result := true;
end;

(*** GL_NV_primitive_restart ***)
function Load_GL_NV_primitive_restart: boolean;
begin
  result := false;
  glPrimitiveRestartNV := wglGetProcAddress('glPrimitiveRestartNV');
  if not Assigned(glPrimitiveRestartNV) then exit;
  glPrimitiveRestartIndexNV := wglGetProcAddress('glPrimitiveRestartIndexNV');
  if not Assigned(glPrimitiveRestartIndexNV) then exit;
  result := true;
end;

(*** GL_NV_texture_expand_normal ***)
function Load_GL_NV_texture_expand_normal: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_vertex_program2 ***)
function Load_GL_NV_vertex_program2: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_ATI_map_object_buffer ***)
function Load_GL_ATI_map_object_buffer: boolean;
begin
  result := false;
  glMapObjectBufferATI := wglGetProcAddress('glMapObjectBufferATI');
  if not Assigned(glMapObjectBufferATI) then exit;
  glUnmapObjectBufferATI := wglGetProcAddress('glUnmapObjectBufferATI');
  if not Assigned(glUnmapObjectBufferATI) then exit;
  result := true;
end;

(*** GL_ATI_separate_stencil ***)
function Load_GL_ATI_separate_stencil: boolean;
begin
  result := false;
  glStencilOpSeparateATI := wglGetProcAddress('glStencilOpSeparateATI');
  if not Assigned(glStencilOpSeparateATI) then exit;
  glStencilFuncSeparateATI := wglGetProcAddress('glStencilFuncSeparateATI');
  if not Assigned(glStencilFuncSeparateATI) then exit;
  result := true;
end;

(*** GL_ATI_vertex_attrib_array_object ***)
function Load_GL_ATI_vertex_attrib_array_object: boolean;
begin
  result := false;
  glVertexAttribArrayObjectATI := wglGetProcAddress('glVertexAttribArrayObjectATI');
  if not Assigned(glVertexAttribArrayObjectATI) then exit;
  glGetVertexAttribArrayObjectfvATI := wglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
  if not Assigned(glGetVertexAttribArrayObjectfvATI) then exit;
  glGetVertexAttribArrayObjectivATI := wglGetProcAddress('glGetVertexAttribArrayObjectivATI');
  if not Assigned(glGetVertexAttribArrayObjectivATI) then exit;
  result := true;
end;

(*** GL_OES_read_format ***)
function Load_GL_OES_read_format: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_depth_bounds_test ***)
function Load_GL_EXT_depth_bounds_test: boolean;
begin
  result := false;
  glDepthBoundsEXT := wglGetProcAddress('glDepthBoundsEXT');
  if not Assigned(glDepthBoundsEXT) then exit;
  result := true;
end;

(*** GL_EXT_texture_mirror_clamp ***)
function Load_GL_EXT_texture_mirror_clamp: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_blend_equation_separate ***)
function Load_GL_EXT_blend_equation_separate: boolean;
begin
  result := false;
  glBlendEquationSeparateEXT := wglGetProcAddress('glBlendEquationSeparateEXT');
  if not Assigned(glBlendEquationSeparateEXT) then exit;
  result := true;
end;

(*** GL_MESA_pack_invert ***)
function Load_GL_MESA_pack_invert: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_MESA_ycbcr_texture ***)
function Load_GL_MESA_ycbcr_texture: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_pixel_buffer_object ***)
function Load_GL_EXT_pixel_buffer_object: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_fragment_program_option ***)
function Load_GL_NV_fragment_program_option: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_fragment_program2 ***)
function Load_GL_NV_fragment_program2: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_vertex_program2_option ***)
function Load_GL_NV_vertex_program2_option: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_NV_vertex_program3 ***)
function Load_GL_NV_vertex_program3: boolean;
begin
  result := false;
  result := true;
end;

(*** GL_EXT_framebuffer_object ***)
function Load_GL_EXT_framebuffer_object: boolean;
begin
  result := false;
  glIsRenderbufferEXT := wglGetProcAddress('glIsRenderbufferEXT');
  if not Assigned(glIsRenderbufferEXT) then exit;
  glBindRenderbufferEXT := wglGetProcAddress('glBindRenderbufferEXT');
  if not Assigned(glBindRenderbufferEXT) then exit;
  glDeleteRenderbuffersEXT := wglGetProcAddress('glDeleteRenderbuffersEXT');
  if not Assigned(glDeleteRenderbuffersEXT) then exit;
  glGenRenderbuffersEXT := wglGetProcAddress('glGenRenderbuffersEXT');
  if not Assigned(glGenRenderbuffersEXT) then exit;
  glRenderbufferStorageEXT := wglGetProcAddress('glRenderbufferStorageEXT');
  if not Assigned(glRenderbufferStorageEXT) then exit;
  glGetRenderbufferParameterivEXT := wglGetProcAddress('glGetRenderbufferParameterivEXT');
  if not Assigned(glGetRenderbufferParameterivEXT) then exit;
  glIsFramebufferEXT := wglGetProcAddress('glIsFramebufferEXT');
  if not Assigned(glIsFramebufferEXT) then exit;
  glBindFramebufferEXT := wglGetProcAddress('glBindFramebufferEXT');
  if not Assigned(glBindFramebufferEXT) then exit;
  glDeleteFramebuffersEXT := wglGetProcAddress('glDeleteFramebuffersEXT');
  if not Assigned(glDeleteFramebuffersEXT) then exit;
  glGenFramebuffersEXT := wglGetProcAddress('glGenFramebuffersEXT');
  if not Assigned(glGenFramebuffersEXT) then exit;
  glCheckFramebufferStatusEXT := wglGetProcAddress('glCheckFramebufferStatusEXT');
  if not Assigned(glCheckFramebufferStatusEXT) then exit;
  glFramebufferTexture1DEXT := wglGetProcAddress('glFramebufferTexture1DEXT');
  if not Assigned(glFramebufferTexture1DEXT) then exit;
  glFramebufferTexture2DEXT := wglGetProcAddress('glFramebufferTexture2DEXT');
  if not Assigned(glFramebufferTexture2DEXT) then exit;
  glFramebufferTexture3DEXT := wglGetProcAddress('glFramebufferTexture3DEXT');
  if not Assigned(glFramebufferTexture3DEXT) then exit;
  glFramebufferRenderbufferEXT := wglGetProcAddress('glFramebufferRenderbufferEXT');
  if not Assigned(glFramebufferRenderbufferEXT) then exit;
  glGetFramebufferAttachmentParameterivEXT := wglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
  if not Assigned(glGetFramebufferAttachmentParameterivEXT) then exit;
  glGenerateMipmapEXT := wglGetProcAddress('glGenerateMipmapEXT');
  if not Assigned(glGenerateMipmapEXT) then exit;
  result := true;
end;

(*** GL_GREMEDY_string_marker ***)
function Load_GL_GREMEDY_string_marker: boolean;
begin
  result := false;
  glStringMarkerGREMEDY := wglGetProcAddress('glStringMarkerGREMEDY');
  if not Assigned(glStringMarkerGREMEDY) then exit;
  result := true;
end;

end.
