--//////////////////////////////////////////////////////////
-- //
-- // SFML - Simple and Fast Multimedia Library
-- // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
-- //
-- // This software is provided 'as-is', without any express or implied warranty.
-- // In no event will the authors be held liable for any damages arising from the use of this software.
-- //
-- // Permission is granted to anyone to use this software for any purpose,
-- // including commercial applications, and to alter it and redistribute it freely,
-- // subject to the following restrictions:
-- //
-- // 1. The origin of this software must not be misrepresented;
-- //    you must not claim that you wrote the original software.
-- //    If you use this software in a product, an acknowledgment
-- //    in the product documentation would be appreciated but is not required.
-- //
-- // 2. Altered source versions must be plainly marked as such,
-- //    and must not be misrepresented as being the original software.
-- //
-- // 3. This notice may not be removed or altered from any source distribution.
-- //
--//////////////////////////////////////////////////////////

package Sf.Window.GL is

   --//////////////////////////////////////////////////////////
   -- // Define portable types
   --//////////////////////////////////////////////////////////
   type GLuint is mod 2 ** Integer'SIZE;
   type GLuint_Ptr is access all GLuint;
   type GLenum is mod 2 ** Integer'SIZE;
   type GLbitfield is mod 2 ** Integer'SIZE;
   type GLboolean is mod 256;
   for GLboolean'SIZE use 8;
   type GLvoid is null record;
   type GLvoid_Ptr is access all GLvoid;
   type GLbyte is range -128 .. 127;
   for GLbyte'SIZE use 8;
   type GLshort is new Short_Integer;
   type GLint is new Integer;
   type GLubyte is mod 256;
   for GLubyte'SIZE use 8;
   type GLubyte_Ptr is access all GLubyte;
   type GLushort is mod 2 ** Short_Integer'SIZE;
   type GLsizei is new Integer;
   type GLfloat is new Float;
   type GLclampf is new Float;
   type GLdouble is new Long_Float;
   type GLclampd is new Long_Float;

   pragma Convention (C, GLuint);
   pragma Convention (C, GLuint_Ptr);
   pragma Convention (C, GLenum);
   pragma Convention (C, GLbitfield);
   pragma Convention (C, GLboolean);
   pragma Convention (C, GLvoid);
   pragma Convention (C, GLvoid_Ptr);
   pragma Convention (C, GLbyte);
   pragma Convention (C, GLshort);
   pragma Convention (C, GLint);
   pragma Convention (C, GLubyte);
   pragma Convention (C, GLubyte_Ptr);
   pragma Convention (C, GLushort);
   pragma Convention (C, GLsizei);
   pragma Convention (C, GLfloat);
   pragma Convention (C, GLclampf);
   pragma Convention (C, GLdouble);
   pragma Convention (C, GLclampd);

   --//////////////////////////////////////////////////////////
   -- // Define constants
   --//////////////////////////////////////////////////////////
   GL_VERSION_1_1                         : constant GLenum    := 1;
   GL_VERSION_1_2                         : constant GLenum    := 1;
   GL_VERSION_1_3                         : constant GLenum    := 1;
   GL_ARB_imaging                         : constant GLenum    := 1;
   GL_FALSE                               : constant GLboolean := 16#0#;
   GL_TRUE                                : constant GLboolean := 16#1#;
   GL_BYTE                                : constant GLenum    := 16#1400#;
   GL_UNSIGNED_BYTE                       : constant GLenum    := 16#1401#;
   GL_SHORT                               : constant GLenum    := 16#1402#;
   GL_UNSIGNED_SHORT                      : constant GLenum    := 16#1403#;
   GL_INT                                 : constant GLenum    := 16#1404#;
   GL_UNSIGNED_INT                        : constant GLenum    := 16#1405#;
   GL_FLOAT                               : constant GLenum    := 16#1406#;
   GL_DOUBLE                              : constant GLenum    := 16#140A#;
   GL_2_BYTES                             : constant GLenum    := 16#1407#;
   GL_3_BYTES                             : constant GLenum    := 16#1408#;
   GL_4_BYTES                             : constant GLenum    := 16#1409#;
   GL_POINTS                              : constant GLenum    := 16#0000#;
   GL_LINES                               : constant GLenum    := 16#0001#;
   GL_LINE_LOOP                           : constant GLenum    := 16#0002#;
   GL_LINE_STRIP                          : constant GLenum    := 16#0003#;
   GL_TRIANGLES                           : constant GLenum    := 16#0004#;
   GL_TRIANGLE_STRIP                      : constant GLenum    := 16#0005#;
   GL_TRIANGLE_FAN                        : constant GLenum    := 16#0006#;
   GL_QUADS                               : constant GLenum    := 16#0007#;
   GL_QUAD_STRIP                          : constant GLenum    := 16#0008#;
   GL_POLYGON                             : constant GLenum    := 16#0009#;
   GL_VERTEX_ARRAY                        : constant GLenum    := 16#8074#;
   GL_NORMAL_ARRAY                        : constant GLenum    := 16#8075#;
   GL_COLOR_ARRAY                         : constant GLenum    := 16#8076#;
   GL_INDEX_ARRAY                         : constant GLenum    := 16#8077#;
   GL_TEXTURE_COORD_ARRAY                 : constant GLenum    := 16#8078#;
   GL_EDGE_FLAG_ARRAY                     : constant GLenum    := 16#8079#;
   GL_VERTEX_ARRAY_SIZE                   : constant GLenum    := 16#807A#;
   GL_VERTEX_ARRAY_TYPE                   : constant GLenum    := 16#807B#;
   GL_VERTEX_ARRAY_STRIDE                 : constant GLenum    := 16#807C#;
   GL_NORMAL_ARRAY_TYPE                   : constant GLenum    := 16#807E#;
   GL_NORMAL_ARRAY_STRIDE                 : constant GLenum    := 16#807F#;
   GL_COLOR_ARRAY_SIZE                    : constant GLenum    := 16#8081#;
   GL_COLOR_ARRAY_TYPE                    : constant GLenum    := 16#8082#;
   GL_COLOR_ARRAY_STRIDE                  : constant GLenum    := 16#8083#;
   GL_INDEX_ARRAY_TYPE                    : constant GLenum    := 16#8085#;
   GL_INDEX_ARRAY_STRIDE                  : constant GLenum    := 16#8086#;
   GL_TEXTURE_COORD_ARRAY_SIZE            : constant GLenum    := 16#8088#;
   GL_TEXTURE_COORD_ARRAY_TYPE            : constant GLenum    := 16#8089#;
   GL_TEXTURE_COORD_ARRAY_STRIDE          : constant GLenum    := 16#808A#;
   GL_EDGE_FLAG_ARRAY_STRIDE              : constant GLenum    := 16#808C#;
   GL_VERTEX_ARRAY_POINTER                : constant GLenum    := 16#808E#;
   GL_NORMAL_ARRAY_POINTER                : constant GLenum    := 16#808F#;
   GL_COLOR_ARRAY_POINTER                 : constant GLenum    := 16#8090#;
   GL_INDEX_ARRAY_POINTER                 : constant GLenum    := 16#8091#;
   GL_TEXTURE_COORD_ARRAY_POINTER         : constant GLenum    := 16#8092#;
   GL_EDGE_FLAG_ARRAY_POINTER             : constant GLenum    := 16#8093#;
   GL_V2F                                 : constant GLenum    := 16#2A20#;
   GL_V3F                                 : constant GLenum    := 16#2A21#;
   GL_C4UB_V2F                            : constant GLenum    := 16#2A22#;
   GL_C4UB_V3F                            : constant GLenum    := 16#2A23#;
   GL_C3F_V3F                             : constant GLenum    := 16#2A24#;
   GL_N3F_V3F                             : constant GLenum    := 16#2A25#;
   GL_C4F_N3F_V3F                         : constant GLenum    := 16#2A26#;
   GL_T2F_V3F                             : constant GLenum    := 16#2A27#;
   GL_T4F_V4F                             : constant GLenum    := 16#2A28#;
   GL_T2F_C4UB_V3F                        : constant GLenum    := 16#2A29#;
   GL_T2F_C3F_V3F                         : constant GLenum    := 16#2A2A#;
   GL_T2F_N3F_V3F                         : constant GLenum    := 16#2A2B#;
   GL_T2F_C4F_N3F_V3F                     : constant GLenum    := 16#2A2C#;
   GL_T4F_C4F_N3F_V4F                     : constant GLenum    := 16#2A2D#;
   GL_MATRIX_MODE                         : constant GLenum    := 16#0BA0#;
   GL_MODELVIEW                           : constant GLenum    := 16#1700#;
   GL_PROJECTION                          : constant GLenum    := 16#1701#;
   GL_TEXTURE                             : constant GLenum    := 16#1702#;
   GL_POINT_SMOOTH                        : constant GLenum    := 16#0B10#;
   GL_POINT_SIZE                          : constant GLenum    := 16#0B11#;
   GL_POINT_SIZE_GRANULARITY              : constant GLenum    := 16#0B13#;
   GL_POINT_SIZE_RANGE                    : constant GLenum    := 16#0B12#;
   GL_LINE_SMOOTH                         : constant GLenum    := 16#0B20#;
   GL_LINE_STIPPLE                        : constant GLenum    := 16#0B24#;
   GL_LINE_STIPPLE_PATTERN                : constant GLenum    := 16#0B25#;
   GL_LINE_STIPPLE_REPEAT                 : constant GLenum    := 16#0B26#;
   GL_LINE_WIDTH                          : constant GLenum    := 16#0B21#;
   GL_LINE_WIDTH_GRANULARITY              : constant GLenum    := 16#0B23#;
   GL_LINE_WIDTH_RANGE                    : constant GLenum    := 16#0B22#;
   GL_POINT                               : constant GLenum    := 16#1B00#;
   GL_LINE                                : constant GLenum    := 16#1B01#;
   GL_FILL                                : constant GLenum    := 16#1B02#;
   GL_CW                                  : constant GLenum    := 16#0900#;
   GL_CCW                                 : constant GLenum    := 16#0901#;
   GL_FRONT                               : constant GLenum    := 16#0404#;
   GL_BACK                                : constant GLenum    := 16#0405#;
   GL_POLYGON_MODE                        : constant GLenum    := 16#0B40#;
   GL_POLYGON_SMOOTH                      : constant GLenum    := 16#0B41#;
   GL_POLYGON_STIPPLE                     : constant GLenum    := 16#0B42#;
   GL_EDGE_FLAG                           : constant GLenum    := 16#0B43#;
   GL_CULL_FACE                           : constant GLenum    := 16#0B44#;
   GL_CULL_FACE_MODE                      : constant GLenum    := 16#0B45#;
   GL_FRONT_FACE                          : constant GLenum    := 16#0B46#;
   GL_POLYGON_OFFSET_FACTOR               : constant GLenum    := 16#8038#;
   GL_POLYGON_OFFSET_UNITS                : constant GLenum    := 16#2A00#;
   GL_POLYGON_OFFSET_POINT                : constant GLenum    := 16#2A01#;
   GL_POLYGON_OFFSET_LINE                 : constant GLenum    := 16#2A02#;
   GL_POLYGON_OFFSET_FILL                 : constant GLenum    := 16#8037#;
   GL_COMPILE                             : constant GLenum    := 16#1300#;
   GL_COMPILE_AND_EXECUTE                 : constant GLenum    := 16#1301#;
   GL_LIST_BASE                           : constant GLenum    := 16#0B32#;
   GL_LIST_INDEX                          : constant GLenum    := 16#0B33#;
   GL_LIST_MODE                           : constant GLenum    := 16#0B30#;
   GL_NEVER                               : constant GLenum    := 16#0200#;
   GL_LESS                                : constant GLenum    := 16#0201#;
   GL_EQUAL                               : constant GLenum    := 16#0202#;
   GL_LEQUAL                              : constant GLenum    := 16#0203#;
   GL_GREATER                             : constant GLenum    := 16#0204#;
   GL_NOTEQUAL                            : constant GLenum    := 16#0205#;
   GL_GEQUAL                              : constant GLenum    := 16#0206#;
   GL_ALWAYS                              : constant GLenum    := 16#0207#;
   GL_DEPTH_TEST                          : constant GLenum    := 16#0B71#;
   GL_DEPTH_BITS                          : constant GLenum    := 16#0D56#;
   GL_DEPTH_CLEAR_VALUE                   : constant GLenum    := 16#0B73#;
   GL_DEPTH_FUNC                          : constant GLenum    := 16#0B74#;
   GL_DEPTH_RANGE                         : constant GLenum    := 16#0B70#;
   GL_DEPTH_WRITEMASK                     : constant GLenum    := 16#0B72#;
   GL_DEPTH_COMPONENT                     : constant GLenum    := 16#1902#;
   GL_LIGHTING                            : constant GLenum    := 16#0B50#;
   GL_LIGHT0                              : constant GLenum    := 16#4000#;
   GL_LIGHT1                              : constant GLenum    := 16#4001#;
   GL_LIGHT2                              : constant GLenum    := 16#4002#;
   GL_LIGHT3                              : constant GLenum    := 16#4003#;
   GL_LIGHT4                              : constant GLenum    := 16#4004#;
   GL_LIGHT5                              : constant GLenum    := 16#4005#;
   GL_LIGHT6                              : constant GLenum    := 16#4006#;
   GL_LIGHT7                              : constant GLenum    := 16#4007#;
   GL_SPOT_EXPONENT                       : constant GLenum    := 16#1205#;
   GL_SPOT_CUTOFF                         : constant GLenum    := 16#1206#;
   GL_CONSTANT_ATTENUATION                : constant GLenum    := 16#1207#;
   GL_LINEAR_ATTENUATION                  : constant GLenum    := 16#1208#;
   GL_QUADRATIC_ATTENUATION               : constant GLenum    := 16#1209#;
   GL_AMBIENT                             : constant GLenum    := 16#1200#;
   GL_DIFFUSE                             : constant GLenum    := 16#1201#;
   GL_SPECULAR                            : constant GLenum    := 16#1202#;
   GL_SHININESS                           : constant GLenum    := 16#1601#;
   GL_EMISSION                            : constant GLenum    := 16#1600#;
   GL_POSITION                            : constant GLenum    := 16#1203#;
   GL_SPOT_DIRECTION                      : constant GLenum    := 16#1204#;
   GL_AMBIENT_AND_DIFFUSE                 : constant GLenum    := 16#1602#;
   GL_COLOR_INDEXES                       : constant GLenum    := 16#1603#;
   GL_LIGHT_MODEL_TWO_SIDE                : constant GLenum    := 16#0B52#;
   GL_LIGHT_MODEL_LOCAL_VIEWER            : constant GLenum    := 16#0B51#;
   GL_LIGHT_MODEL_AMBIENT                 : constant GLenum    := 16#0B53#;
   GL_FRONT_AND_BACK                      : constant GLenum    := 16#0408#;
   GL_SHADE_MODEL                         : constant GLenum    := 16#0B54#;
   GL_FLAT                                : constant GLenum    := 16#1D00#;
   GL_SMOOTH                              : constant GLenum    := 16#1D01#;
   GL_COLOR_MATERIAL                      : constant GLenum    := 16#0B57#;
   GL_COLOR_MATERIAL_FACE                 : constant GLenum    := 16#0B55#;
   GL_COLOR_MATERIAL_PARAMETER            : constant GLenum    := 16#0B56#;
   GL_NORMALIZE                           : constant GLenum    := 16#0BA1#;
   GL_CLIP_PLANE0                         : constant GLenum    := 16#3000#;
   GL_CLIP_PLANE1                         : constant GLenum    := 16#3001#;
   GL_CLIP_PLANE2                         : constant GLenum    := 16#3002#;
   GL_CLIP_PLANE3                         : constant GLenum    := 16#3003#;
   GL_CLIP_PLANE4                         : constant GLenum    := 16#3004#;
   GL_CLIP_PLANE5                         : constant GLenum    := 16#3005#;
   GL_ACCUM_RED_BITS                      : constant GLenum    := 16#0D58#;
   GL_ACCUM_GREEN_BITS                    : constant GLenum    := 16#0D59#;
   GL_ACCUM_BLUE_BITS                     : constant GLenum    := 16#0D5A#;
   GL_ACCUM_ALPHA_BITS                    : constant GLenum    := 16#0D5B#;
   GL_ACCUM_CLEAR_VALUE                   : constant GLenum    := 16#0B80#;
   GL_ACCUM                               : constant GLenum    := 16#0100#;
   GL_ADD                                 : constant GLenum    := 16#0104#;
   GL_LOAD                                : constant GLenum    := 16#0101#;
   GL_MULT                                : constant GLenum    := 16#0103#;
   GL_RETURN                              : constant GLenum    := 16#0102#;
   GL_ALPHA_TEST                          : constant GLenum    := 16#0BC0#;
   GL_ALPHA_TEST_REF                      : constant GLenum    := 16#0BC2#;
   GL_ALPHA_TEST_FUNC                     : constant GLenum    := 16#0BC1#;
   GL_BLEND                               : constant GLenum    := 16#0BE2#;
   GL_BLEND_SRC                           : constant GLenum    := 16#0BE1#;
   GL_BLEND_DST                           : constant GLenum    := 16#0BE0#;
   GL_ZERO                                : constant GLenum    := 16#0#;
   GL_ONE                                 : constant GLenum    := 16#1#;
   GL_SRC_COLOR                           : constant GLenum    := 16#0300#;
   GL_ONE_MINUS_SRC_COLOR                 : constant GLenum    := 16#0301#;
   GL_SRC_ALPHA                           : constant GLenum    := 16#0302#;
   GL_ONE_MINUS_SRC_ALPHA                 : constant GLenum    := 16#0303#;
   GL_DST_ALPHA                           : constant GLenum    := 16#0304#;
   GL_ONE_MINUS_DST_ALPHA                 : constant GLenum    := 16#0305#;
   GL_DST_COLOR                           : constant GLenum    := 16#0306#;
   GL_ONE_MINUS_DST_COLOR                 : constant GLenum    := 16#0307#;
   GL_SRC_ALPHA_SATURATE                  : constant GLenum    := 16#0308#;
   GL_CONSTANT_COLOR                      : constant GLenum    := 16#8001#;
   GL_ONE_MINUS_CONSTANT_COLOR            : constant GLenum    := 16#8002#;
   GL_CONSTANT_ALPHA                      : constant GLenum    := 16#8003#;
   GL_ONE_MINUS_CONSTANT_ALPHA            : constant GLenum    := 16#8004#;
   GL_FEEDBACK                            : constant GLenum    := 16#1C01#;
   GL_RENDER                              : constant GLenum    := 16#1C00#;
   GL_SELECT                              : constant GLenum    := 16#1C02#;
   GL_2D                                  : constant GLenum    := 16#0600#;
   GL_3D                                  : constant GLenum    := 16#0601#;
   GL_3D_COLOR                            : constant GLenum    := 16#0602#;
   GL_3D_COLOR_TEXTURE                    : constant GLenum    := 16#0603#;
   GL_4D_COLOR_TEXTURE                    : constant GLenum    := 16#0604#;
   GL_POINT_TOKEN                         : constant GLenum    := 16#0701#;
   GL_LINE_TOKEN                          : constant GLenum    := 16#0702#;
   GL_LINE_RESET_TOKEN                    : constant GLenum    := 16#0707#;
   GL_POLYGON_TOKEN                       : constant GLenum    := 16#0703#;
   GL_BITMAP_TOKEN                        : constant GLenum    := 16#0704#;
   GL_DRAW_PIXEL_TOKEN                    : constant GLenum    := 16#0705#;
   GL_COPY_PIXEL_TOKEN                    : constant GLenum    := 16#0706#;
   GL_PASS_THROUGH_TOKEN                  : constant GLenum    := 16#0700#;
   GL_FEEDBACK_BUFFER_POINTER             : constant GLenum    := 16#0DF0#;
   GL_FEEDBACK_BUFFER_SIZE                : constant GLenum    := 16#0DF1#;
   GL_FEEDBACK_BUFFER_TYPE                : constant GLenum    := 16#0DF2#;
   GL_SELECTION_BUFFER_POINTER            : constant GLenum    := 16#0DF3#;
   GL_SELECTION_BUFFER_SIZE               : constant GLenum    := 16#0DF4#;
   GL_FOG                                 : constant GLenum    := 16#0B60#;
   GL_FOG_MODE                            : constant GLenum    := 16#0B65#;
   GL_FOG_DENSITY                         : constant GLenum    := 16#0B62#;
   GL_FOG_COLOR                           : constant GLenum    := 16#0B66#;
   GL_FOG_INDEX                           : constant GLenum    := 16#0B61#;
   GL_FOG_START                           : constant GLenum    := 16#0B63#;
   GL_FOG_END                             : constant GLenum    := 16#0B64#;
   GL_LINEAR                              : constant GLenum    := 16#2601#;
   GL_EXP                                 : constant GLenum    := 16#0800#;
   GL_EXP2                                : constant GLenum    := 16#0801#;
   GL_LOGIC_OP                            : constant GLenum    := 16#0BF1#;
   GL_INDEX_LOGIC_OP                      : constant GLenum    := 16#0BF1#;
   GL_COLOR_LOGIC_OP                      : constant GLenum    := 16#0BF2#;
   GL_LOGIC_OP_MODE                       : constant GLenum    := 16#0BF0#;
   GL_CLEAR                               : constant GLenum    := 16#1500#;
   GL_SET                                 : constant GLenum    := 16#150F#;
   GL_COPY                                : constant GLenum    := 16#1503#;
   GL_COPY_INVERTED                       : constant GLenum    := 16#150C#;
   GL_NOOP                                : constant GLenum    := 16#1505#;
   GL_INVERT                              : constant GLenum    := 16#150A#;
   GL_AND                                 : constant GLenum    := 16#1501#;
   GL_NAND                                : constant GLenum    := 16#150E#;
   GL_OR                                  : constant GLenum    := 16#1507#;
   GL_NOR                                 : constant GLenum    := 16#1508#;
   GL_XOR                                 : constant GLenum    := 16#1506#;
   GL_EQUIV                               : constant GLenum    := 16#1509#;
   GL_AND_REVERSE                         : constant GLenum    := 16#1502#;
   GL_AND_INVERTED                        : constant GLenum    := 16#1504#;
   GL_OR_REVERSE                          : constant GLenum    := 16#150B#;
   GL_OR_INVERTED                         : constant GLenum    := 16#150D#;
   GL_STENCIL_TEST                        : constant GLenum    := 16#0B90#;
   GL_STENCIL_WRITEMASK                   : constant GLenum    := 16#0B98#;
   GL_STENCIL_BITS                        : constant GLenum    := 16#0D57#;
   GL_STENCIL_FUNC                        : constant GLenum    := 16#0B92#;
   GL_STENCIL_VALUE_MASK                  : constant GLenum    := 16#0B93#;
   GL_STENCIL_REF                         : constant GLenum    := 16#0B97#;
   GL_STENCIL_FAIL                        : constant GLenum    := 16#0B94#;
   GL_STENCIL_PASS_DEPTH_PASS             : constant GLenum    := 16#0B96#;
   GL_STENCIL_PASS_DEPTH_FAIL             : constant GLenum    := 16#0B95#;
   GL_STENCIL_CLEAR_VALUE                 : constant GLenum    := 16#0B91#;
   GL_STENCIL_INDEX                       : constant GLenum    := 16#1901#;
   GL_KEEP                                : constant GLenum    := 16#1E00#;
   GL_REPLACE                             : constant GLenum    := 16#1E01#;
   GL_INCR                                : constant GLenum    := 16#1E02#;
   GL_DECR                                : constant GLenum    := 16#1E03#;
   GL_NONE                                : constant GLenum    := 16#0#;
   GL_LEFT                                : constant GLenum    := 16#0406#;
   GL_RIGHT                               : constant GLenum    := 16#0407#;
   GL_FRONT_LEFT                          : constant GLenum    := 16#0400#;
   GL_FRONT_RIGHT                         : constant GLenum    := 16#0401#;
   GL_BACK_LEFT                           : constant GLenum    := 16#0402#;
   GL_BACK_RIGHT                          : constant GLenum    := 16#0403#;
   GL_AUX0                                : constant GLenum    := 16#0409#;
   GL_AUX1                                : constant GLenum    := 16#040A#;
   GL_AUX2                                : constant GLenum    := 16#040B#;
   GL_AUX3                                : constant GLenum    := 16#040C#;
   GL_COLOR_INDEX                         : constant GLenum    := 16#1900#;
   GL_RED                                 : constant GLenum    := 16#1903#;
   GL_GREEN                               : constant GLenum    := 16#1904#;
   GL_BLUE                                : constant GLenum    := 16#1905#;
   GL_ALPHA                               : constant GLenum    := 16#1906#;
   GL_LUMINANCE                           : constant GLenum    := 16#1909#;
   GL_LUMINANCE_ALPHA                     : constant GLenum    := 16#190A#;
   GL_ALPHA_BITS                          : constant GLenum    := 16#0D55#;
   GL_RED_BITS                            : constant GLenum    := 16#0D52#;
   GL_GREEN_BITS                          : constant GLenum    := 16#0D53#;
   GL_BLUE_BITS                           : constant GLenum    := 16#0D54#;
   GL_INDEX_BITS                          : constant GLenum    := 16#0D51#;
   GL_SUBPIXEL_BITS                       : constant GLenum    := 16#0D50#;
   GL_AUX_BUFFERS                         : constant GLenum    := 16#0C00#;
   GL_READ_BUFFER                         : constant GLenum    := 16#0C02#;
   GL_DRAW_BUFFER                         : constant GLenum    := 16#0C01#;
   GL_DOUBLEBUFFER                        : constant GLenum    := 16#0C32#;
   GL_STEREO                              : constant GLenum    := 16#0C33#;
   GL_BITMAP                              : constant GLenum    := 16#1A00#;
   GL_COLOR                               : constant GLenum    := 16#1800#;
   GL_DEPTH                               : constant GLenum    := 16#1801#;
   GL_STENCIL                             : constant GLenum    := 16#1802#;
   GL_DITHER                              : constant GLenum    := 16#0BD0#;
   GL_RGB                                 : constant GLenum    := 16#1907#;
   GL_RGBA                                : constant GLenum    := 16#1908#;
   GL_MAX_LIST_NESTING                    : constant GLenum    := 16#0B31#;
   GL_MAX_ATTRIB_STACK_DEPTH              : constant GLenum    := 16#0D35#;
   GL_MAX_MODELVIEW_STACK_DEPTH           : constant GLenum    := 16#0D36#;
   GL_MAX_NAME_STACK_DEPTH                : constant GLenum    := 16#0D37#;
   GL_MAX_PROJECTION_STACK_DEPTH          : constant GLenum    := 16#0D38#;
   GL_MAX_TEXTURE_STACK_DEPTH             : constant GLenum    := 16#0D39#;
   GL_MAX_EVAL_ORDER                      : constant GLenum    := 16#0D30#;
   GL_MAX_LIGHTS                          : constant GLenum    := 16#0D31#;
   GL_MAX_CLIP_PLANES                     : constant GLenum    := 16#0D32#;
   GL_MAX_TEXTURE_SIZE                    : constant GLenum    := 16#0D33#;
   GL_MAX_PIXEL_MAP_TABLE                 : constant GLenum    := 16#0D34#;
   GL_MAX_VIEWPORT_DIMS                   : constant GLenum    := 16#0D3A#;
   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH       : constant GLenum    := 16#0D3B#;
   GL_ATTRIB_STACK_DEPTH                  : constant GLenum    := 16#0BB0#;
   GL_CLIENT_ATTRIB_STACK_DEPTH           : constant GLenum    := 16#0BB1#;
   GL_COLOR_CLEAR_VALUE                   : constant GLenum    := 16#0C22#;
   GL_COLOR_WRITEMASK                     : constant GLenum    := 16#0C23#;
   GL_CURRENT_INDEX                       : constant GLenum    := 16#0B01#;
   GL_CURRENT_COLOR                       : constant GLenum    := 16#0B00#;
   GL_CURRENT_NORMAL                      : constant GLenum    := 16#0B02#;
   GL_CURRENT_RASTER_COLOR                : constant GLenum    := 16#0B04#;
   GL_CURRENT_RASTER_DISTANCE             : constant GLenum    := 16#0B09#;
   GL_CURRENT_RASTER_INDEX                : constant GLenum    := 16#0B05#;
   GL_CURRENT_RASTER_POSITION             : constant GLenum    := 16#0B07#;
   GL_CURRENT_RASTER_TEXTURE_COORDS       : constant GLenum    := 16#0B06#;
   GL_CURRENT_RASTER_POSITION_VALID       : constant GLenum    := 16#0B08#;
   GL_CURRENT_TEXTURE_COORDS              : constant GLenum    := 16#0B03#;
   GL_INDEX_CLEAR_VALUE                   : constant GLenum    := 16#0C20#;
   GL_INDEX_MODE                          : constant GLenum    := 16#0C30#;
   GL_INDEX_WRITEMASK                     : constant GLenum    := 16#0C21#;
   GL_MODELVIEW_MATRIX                    : constant GLenum    := 16#0BA6#;
   GL_MODELVIEW_STACK_DEPTH               : constant GLenum    := 16#0BA3#;
   GL_NAME_STACK_DEPTH                    : constant GLenum    := 16#0D70#;
   GL_PROJECTION_MATRIX                   : constant GLenum    := 16#0BA7#;
   GL_PROJECTION_STACK_DEPTH              : constant GLenum    := 16#0BA4#;
   GL_RENDER_MODE                         : constant GLenum    := 16#0C40#;
   GL_RGBA_MODE                           : constant GLenum    := 16#0C31#;
   GL_TEXTURE_MATRIX                      : constant GLenum    := 16#0BA8#;
   GL_TEXTURE_STACK_DEPTH                 : constant GLenum    := 16#0BA5#;
   GL_VIEWPORT                            : constant GLenum    := 16#0BA2#;
   GL_AUTO_NORMAL                         : constant GLenum    := 16#0D80#;
   GL_MAP1_COLOR_4                        : constant GLenum    := 16#0D90#;
   GL_MAP1_GRID_DOMAIN                    : constant GLenum    := 16#0DD0#;
   GL_MAP1_GRID_SEGMENTS                  : constant GLenum    := 16#0DD1#;
   GL_MAP1_INDEX                          : constant GLenum    := 16#0D91#;
   GL_MAP1_NORMAL                         : constant GLenum    := 16#0D92#;
   GL_MAP1_TEXTURE_COORD_1                : constant GLenum    := 16#0D93#;
   GL_MAP1_TEXTURE_COORD_2                : constant GLenum    := 16#0D94#;
   GL_MAP1_TEXTURE_COORD_3                : constant GLenum    := 16#0D95#;
   GL_MAP1_TEXTURE_COORD_4                : constant GLenum    := 16#0D96#;
   GL_MAP1_VERTEX_3                       : constant GLenum    := 16#0D97#;
   GL_MAP1_VERTEX_4                       : constant GLenum    := 16#0D98#;
   GL_MAP2_COLOR_4                        : constant GLenum    := 16#0DB0#;
   GL_MAP2_GRID_DOMAIN                    : constant GLenum    := 16#0DD2#;
   GL_MAP2_GRID_SEGMENTS                  : constant GLenum    := 16#0DD3#;
   GL_MAP2_INDEX                          : constant GLenum    := 16#0DB1#;
   GL_MAP2_NORMAL                         : constant GLenum    := 16#0DB2#;
   GL_MAP2_TEXTURE_COORD_1                : constant GLenum    := 16#0DB3#;
   GL_MAP2_TEXTURE_COORD_2                : constant GLenum    := 16#0DB4#;
   GL_MAP2_TEXTURE_COORD_3                : constant GLenum    := 16#0DB5#;
   GL_MAP2_TEXTURE_COORD_4                : constant GLenum    := 16#0DB6#;
   GL_MAP2_VERTEX_3                       : constant GLenum    := 16#0DB7#;
   GL_MAP2_VERTEX_4                       : constant GLenum    := 16#0DB8#;
   GL_COEFF                               : constant GLenum    := 16#0A00#;
   GL_DOMAIN                              : constant GLenum    := 16#0A02#;
   GL_ORDER                               : constant GLenum    := 16#0A01#;
   GL_FOG_HINT                            : constant GLenum    := 16#0C54#;
   GL_LINE_SMOOTH_HINT                    : constant GLenum    := 16#0C52#;
   GL_PERSPECTIVE_CORRECTION_HINT         : constant GLenum    := 16#0C50#;
   GL_POINT_SMOOTH_HINT                   : constant GLenum    := 16#0C51#;
   GL_POLYGON_SMOOTH_HINT                 : constant GLenum    := 16#0C53#;
   GL_DONT_CARE                           : constant GLenum    := 16#1100#;
   GL_FASTEST                             : constant GLenum    := 16#1101#;
   GL_NICEST                              : constant GLenum    := 16#1102#;
   GL_SCISSOR_TEST                        : constant GLenum    := 16#0C11#;
   GL_SCISSOR_BOX                         : constant GLenum    := 16#0C10#;
   GL_MAP_COLOR                           : constant GLenum    := 16#0D10#;
   GL_MAP_STENCIL                         : constant GLenum    := 16#0D11#;
   GL_INDEX_SHIFT                         : constant GLenum    := 16#0D12#;
   GL_INDEX_OFFSET                        : constant GLenum    := 16#0D13#;
   GL_RED_SCALE                           : constant GLenum    := 16#0D14#;
   GL_RED_BIAS                            : constant GLenum    := 16#0D15#;
   GL_GREEN_SCALE                         : constant GLenum    := 16#0D18#;
   GL_GREEN_BIAS                          : constant GLenum    := 16#0D19#;
   GL_BLUE_SCALE                          : constant GLenum    := 16#0D1A#;
   GL_BLUE_BIAS                           : constant GLenum    := 16#0D1B#;
   GL_ALPHA_SCALE                         : constant GLenum    := 16#0D1C#;
   GL_ALPHA_BIAS                          : constant GLenum    := 16#0D1D#;
   GL_DEPTH_SCALE                         : constant GLenum    := 16#0D1E#;
   GL_DEPTH_BIAS                          : constant GLenum    := 16#0D1F#;
   GL_PIXEL_MAP_S_TO_S_SIZE               : constant GLenum    := 16#0CB1#;
   GL_PIXEL_MAP_I_TO_I_SIZE               : constant GLenum    := 16#0CB0#;
   GL_PIXEL_MAP_I_TO_R_SIZE               : constant GLenum    := 16#0CB2#;
   GL_PIXEL_MAP_I_TO_G_SIZE               : constant GLenum    := 16#0CB3#;
   GL_PIXEL_MAP_I_TO_B_SIZE               : constant GLenum    := 16#0CB4#;
   GL_PIXEL_MAP_I_TO_A_SIZE               : constant GLenum    := 16#0CB5#;
   GL_PIXEL_MAP_R_TO_R_SIZE               : constant GLenum    := 16#0CB6#;
   GL_PIXEL_MAP_G_TO_G_SIZE               : constant GLenum    := 16#0CB7#;
   GL_PIXEL_MAP_B_TO_B_SIZE               : constant GLenum    := 16#0CB8#;
   GL_PIXEL_MAP_A_TO_A_SIZE               : constant GLenum    := 16#0CB9#;
   GL_PIXEL_MAP_S_TO_S                    : constant GLenum    := 16#0C71#;
   GL_PIXEL_MAP_I_TO_I                    : constant GLenum    := 16#0C70#;
   GL_PIXEL_MAP_I_TO_R                    : constant GLenum    := 16#0C72#;
   GL_PIXEL_MAP_I_TO_G                    : constant GLenum    := 16#0C73#;
   GL_PIXEL_MAP_I_TO_B                    : constant GLenum    := 16#0C74#;
   GL_PIXEL_MAP_I_TO_A                    : constant GLenum    := 16#0C75#;
   GL_PIXEL_MAP_R_TO_R                    : constant GLenum    := 16#0C76#;
   GL_PIXEL_MAP_G_TO_G                    : constant GLenum    := 16#0C77#;
   GL_PIXEL_MAP_B_TO_B                    : constant GLenum    := 16#0C78#;
   GL_PIXEL_MAP_A_TO_A                    : constant GLenum    := 16#0C79#;
   GL_PACK_ALIGNMENT                      : constant GLenum    := 16#0D05#;
   GL_PACK_LSB_FIRST                      : constant GLenum    := 16#0D01#;
   GL_PACK_ROW_LENGTH                     : constant GLenum    := 16#0D02#;
   GL_PACK_SKIP_PIXELS                    : constant GLenum    := 16#0D04#;
   GL_PACK_SKIP_ROWS                      : constant GLenum    := 16#0D03#;
   GL_PACK_SWAP_BYTES                     : constant GLenum    := 16#0D00#;
   GL_UNPACK_ALIGNMENT                    : constant GLenum    := 16#0CF5#;
   GL_UNPACK_LSB_FIRST                    : constant GLenum    := 16#0CF1#;
   GL_UNPACK_ROW_LENGTH                   : constant GLenum    := 16#0CF2#;
   GL_UNPACK_SKIP_PIXELS                  : constant GLenum    := 16#0CF4#;
   GL_UNPACK_SKIP_ROWS                    : constant GLenum    := 16#0CF3#;
   GL_UNPACK_SWAP_BYTES                   : constant GLenum    := 16#0CF0#;
   GL_ZOOM_X                              : constant GLenum    := 16#0D16#;
   GL_ZOOM_Y                              : constant GLenum    := 16#0D17#;
   GL_TEXTURE_ENV                         : constant GLenum    := 16#2300#;
   GL_TEXTURE_ENV_MODE                    : constant GLenum    := 16#2200#;
   GL_TEXTURE_1D                          : constant GLenum    := 16#0DE0#;
   GL_TEXTURE_2D                          : constant GLenum    := 16#0DE1#;
   GL_TEXTURE_WRAP_S                      : constant GLenum    := 16#2802#;
   GL_TEXTURE_WRAP_T                      : constant GLenum    := 16#2803#;
   GL_TEXTURE_MAG_FILTER                  : constant GLenum    := 16#2800#;
   GL_TEXTURE_MIN_FILTER                  : constant GLenum    := 16#2801#;
   GL_TEXTURE_ENV_COLOR                   : constant GLenum    := 16#2201#;
   GL_TEXTURE_GEN_S                       : constant GLenum    := 16#0C60#;
   GL_TEXTURE_GEN_T                       : constant GLenum    := 16#0C61#;
   GL_TEXTURE_GEN_MODE                    : constant GLenum    := 16#2500#;
   GL_TEXTURE_BORDER_COLOR                : constant GLenum    := 16#1004#;
   GL_TEXTURE_WIDTH                       : constant GLenum    := 16#1000#;
   GL_TEXTURE_HEIGHT                      : constant GLenum    := 16#1001#;
   GL_TEXTURE_BORDER                      : constant GLenum    := 16#1005#;
   GL_TEXTURE_COMPONENTS                  : constant GLenum    := 16#1003#;
   GL_TEXTURE_RED_SIZE                    : constant GLenum    := 16#805C#;
   GL_TEXTURE_GREEN_SIZE                  : constant GLenum    := 16#805D#;
   GL_TEXTURE_BLUE_SIZE                   : constant GLenum    := 16#805E#;
   GL_TEXTURE_ALPHA_SIZE                  : constant GLenum    := 16#805F#;
   GL_TEXTURE_LUMINANCE_SIZE              : constant GLenum    := 16#8060#;
   GL_TEXTURE_INTENSITY_SIZE              : constant GLenum    := 16#8061#;
   GL_NEAREST_MIPMAP_NEAREST              : constant GLenum    := 16#2700#;
   GL_NEAREST_MIPMAP_LINEAR               : constant GLenum    := 16#2702#;
   GL_LINEAR_MIPMAP_NEAREST               : constant GLenum    := 16#2701#;
   GL_LINEAR_MIPMAP_LINEAR                : constant GLenum    := 16#2703#;
   GL_OBJECT_LINEAR                       : constant GLenum    := 16#2401#;
   GL_OBJECT_PLANE                        : constant GLenum    := 16#2501#;
   GL_EYE_LINEAR                          : constant GLenum    := 16#2400#;
   GL_EYE_PLANE                           : constant GLenum    := 16#2502#;
   GL_SPHERE_MAP                          : constant GLenum    := 16#2402#;
   GL_DECAL                               : constant GLenum    := 16#2101#;
   GL_MODULATE                            : constant GLenum    := 16#2100#;
   GL_NEAREST                             : constant GLenum    := 16#2600#;
   GL_REPEAT                              : constant GLenum    := 16#2901#;
   GL_CLAMP                               : constant GLenum    := 16#2900#;
   GL_S                                   : constant GLenum    := 16#2000#;
   GL_T                                   : constant GLenum    := 16#2001#;
   GL_R                                   : constant GLenum    := 16#2002#;
   GL_Q                                   : constant GLenum    := 16#2003#;
   GL_TEXTURE_GEN_R                       : constant GLenum    := 16#0C62#;
   GL_TEXTURE_GEN_Q                       : constant GLenum    := 16#0C63#;
   GL_VENDOR                              : constant GLenum    := 16#1F00#;
   GL_RENDERER                            : constant GLenum    := 16#1F01#;
   GL_VERSION                             : constant GLenum    := 16#1F02#;
   GL_EXTENSIONS                          : constant GLenum    := 16#1F03#;
   GL_NO_ERROR                            : constant GLenum    := 16#0#;
   GL_INVALID_VALUE                       : constant GLenum    := 16#0501#;
   GL_INVALID_ENUM                        : constant GLenum    := 16#0500#;
   GL_INVALID_OPERATION                   : constant GLenum    := 16#0502#;
   GL_STACK_OVERFLOW                      : constant GLenum    := 16#0503#;
   GL_STACK_UNDERFLOW                     : constant GLenum    := 16#0504#;
   GL_OUT_OF_MEMORY                       : constant GLenum    := 16#0505#;
   GL_CURRENT_BIT                         : constant GLenum    := 16#00000001#;
   GL_POINT_BIT                           : constant GLenum    := 16#00000002#;
   GL_LINE_BIT                            : constant GLenum    := 16#00000004#;
   GL_POLYGON_BIT                         : constant GLenum    := 16#00000008#;
   GL_POLYGON_STIPPLE_BIT                 : constant GLenum    := 16#00000010#;
   GL_PIXEL_MODE_BIT                      : constant GLenum    := 16#00000020#;
   GL_LIGHTING_BIT                        : constant GLenum    := 16#00000040#;
   GL_FOG_BIT                             : constant GLenum    := 16#00000080#;
   GL_DEPTH_BUFFER_BIT                    : constant GLenum    := 16#00000100#;
   GL_ACCUM_BUFFER_BIT                    : constant GLenum    := 16#00000200#;
   GL_STENCIL_BUFFER_BIT                  : constant GLenum    := 16#00000400#;
   GL_VIEWPORT_BIT                        : constant GLenum    := 16#00000800#;
   GL_TRANSFORM_BIT                       : constant GLenum    := 16#00001000#;
   GL_ENABLE_BIT                          : constant GLenum    := 16#00002000#;
   GL_COLOR_BUFFER_BIT                    : constant GLenum    := 16#00004000#;
   GL_HINT_BIT                            : constant GLenum    := 16#00008000#;
   GL_EVAL_BIT                            : constant GLenum    := 16#00010000#;
   GL_LIST_BIT                            : constant GLenum    := 16#00020000#;
   GL_TEXTURE_BIT                         : constant GLenum    := 16#00040000#;
   GL_SCISSOR_BIT                         : constant GLenum    := 16#00080000#;
   GL_ALL_ATTRIB_BITS                     : constant GLenum    := 16#000FFFFF#;
   GL_PROXY_TEXTURE_1D                    : constant GLenum    := 16#8063#;
   GL_PROXY_TEXTURE_2D                    : constant GLenum    := 16#8064#;
   GL_TEXTURE_PRIORITY                    : constant GLenum    := 16#8066#;
   GL_TEXTURE_RESIDENT                    : constant GLenum    := 16#8067#;
   GL_TEXTURE_BINDING_1D                  : constant GLenum    := 16#8068#;
   GL_TEXTURE_BINDING_2D                  : constant GLenum    := 16#8069#;
   GL_TEXTURE_INTERNAL_FORMAT             : constant GLenum    := 16#1003#;
   GL_ALPHA4                              : constant GLenum    := 16#803B#;
   GL_ALPHA8                              : constant GLenum    := 16#803C#;
   GL_ALPHA12                             : constant GLenum    := 16#803D#;
   GL_ALPHA16                             : constant GLenum    := 16#803E#;
   GL_LUMINANCE4                          : constant GLenum    := 16#803F#;
   GL_LUMINANCE8                          : constant GLenum    := 16#8040#;
   GL_LUMINANCE12                         : constant GLenum    := 16#8041#;
   GL_LUMINANCE16                         : constant GLenum    := 16#8042#;
   GL_LUMINANCE4_ALPHA4                   : constant GLenum    := 16#8043#;
   GL_LUMINANCE6_ALPHA2                   : constant GLenum    := 16#8044#;
   GL_LUMINANCE8_ALPHA8                   : constant GLenum    := 16#8045#;
   GL_LUMINANCE12_ALPHA4                  : constant GLenum    := 16#8046#;
   GL_LUMINANCE12_ALPHA12                 : constant GLenum    := 16#8047#;
   GL_LUMINANCE16_ALPHA16                 : constant GLenum    := 16#8048#;
   GL_INTENSITY                           : constant GLenum    := 16#8049#;
   GL_INTENSITY4                          : constant GLenum    := 16#804A#;
   GL_INTENSITY8                          : constant GLenum    := 16#804B#;
   GL_INTENSITY12                         : constant GLenum    := 16#804C#;
   GL_INTENSITY16                         : constant GLenum    := 16#804D#;
   GL_R3_G3_B2                            : constant GLenum    := 16#2A10#;
   GL_RGB4                                : constant GLenum    := 16#804F#;
   GL_RGB5                                : constant GLenum    := 16#8050#;
   GL_RGB8                                : constant GLenum    := 16#8051#;
   GL_RGB10                               : constant GLenum    := 16#8052#;
   GL_RGB12                               : constant GLenum    := 16#8053#;
   GL_RGB16                               : constant GLenum    := 16#8054#;
   GL_RGBA2                               : constant GLenum    := 16#8055#;
   GL_RGBA4                               : constant GLenum    := 16#8056#;
   GL_RGB5_A1                             : constant GLenum    := 16#8057#;
   GL_RGBA8                               : constant GLenum    := 16#8058#;
   GL_RGB10_A2                            : constant GLenum    := 16#8059#;
   GL_RGBA12                              : constant GLenum    := 16#805A#;
   GL_RGBA16                              : constant GLenum    := 16#805B#;
   GL_CLIENT_PIXEL_STORE_BIT              : constant GLenum    := 16#00000001#;
   GL_CLIENT_VERTEX_ARRAY_BIT             : constant GLenum    := 16#00000002#;
   GL_ALL_CLIENT_ATTRIB_BITS              : constant GLenum    := 16#FFFFFFFF#;
   GL_CLIENT_ALL_ATTRIB_BITS              : constant GLenum    := 16#FFFFFFFF#;
   GL_RESCALE_NORMAL                      : constant GLenum    := 16#803A#;
   GL_CLAMP_TO_EDGE                       : constant GLenum    := 16#812F#;
   GL_MAX_ELEMENTS_VERTICES               : constant GLenum    := 16#80E8#;
   GL_MAX_ELEMENTS_INDICES                : constant GLenum    := 16#80E9#;
   GL_BGR                                 : constant GLenum    := 16#80E0#;
   GL_BGRA                                : constant GLenum    := 16#80E1#;
   GL_UNSIGNED_BYTE_3_3_2                 : constant GLenum    := 16#8032#;
   GL_UNSIGNED_BYTE_2_3_3_REV             : constant GLenum    := 16#8362#;
   GL_UNSIGNED_SHORT_5_6_5                : constant GLenum    := 16#8363#;
   GL_UNSIGNED_SHORT_5_6_5_REV            : constant GLenum    := 16#8364#;
   GL_UNSIGNED_SHORT_4_4_4_4              : constant GLenum    := 16#8033#;
   GL_UNSIGNED_SHORT_4_4_4_4_REV          : constant GLenum    := 16#8365#;
   GL_UNSIGNED_SHORT_5_5_5_1              : constant GLenum    := 16#8034#;
   GL_UNSIGNED_SHORT_1_5_5_5_REV          : constant GLenum    := 16#8366#;
   GL_UNSIGNED_INT_8_8_8_8                : constant GLenum    := 16#8035#;
   GL_UNSIGNED_INT_8_8_8_8_REV            : constant GLenum    := 16#8367#;
   GL_UNSIGNED_INT_10_10_10_2             : constant GLenum    := 16#8036#;
   GL_UNSIGNED_INT_2_10_10_10_REV         : constant GLenum    := 16#8368#;
   GL_LIGHT_MODEL_COLOR_CONTROL           : constant GLenum    := 16#81F8#;
   GL_SINGLE_COLOR                        : constant GLenum    := 16#81F9#;
   GL_SEPARATE_SPECULAR_COLOR             : constant GLenum    := 16#81FA#;
   GL_TEXTURE_MIN_LOD                     : constant GLenum    := 16#813A#;
   GL_TEXTURE_MAX_LOD                     : constant GLenum    := 16#813B#;
   GL_TEXTURE_BASE_LEVEL                  : constant GLenum    := 16#813C#;
   GL_TEXTURE_MAX_LEVEL                   : constant GLenum    := 16#813D#;
   GL_SMOOTH_POINT_SIZE_RANGE             : constant GLenum    := 16#0B12#;
   GL_SMOOTH_POINT_SIZE_GRANULARITY       : constant GLenum    := 16#0B13#;
   GL_SMOOTH_LINE_WIDTH_RANGE             : constant GLenum    := 16#0B22#;
   GL_SMOOTH_LINE_WIDTH_GRANULARITY       : constant GLenum    := 16#0B23#;
   GL_ALIASED_POINT_SIZE_RANGE            : constant GLenum    := 16#846D#;
   GL_ALIASED_LINE_WIDTH_RANGE            : constant GLenum    := 16#846E#;
   GL_PACK_SKIP_IMAGES                    : constant GLenum    := 16#806B#;
   GL_PACK_IMAGE_HEIGHT                   : constant GLenum    := 16#806C#;
   GL_UNPACK_SKIP_IMAGES                  : constant GLenum    := 16#806D#;
   GL_UNPACK_IMAGE_HEIGHT                 : constant GLenum    := 16#806E#;
   GL_TEXTURE_3D                          : constant GLenum    := 16#806F#;
   GL_PROXY_TEXTURE_3D                    : constant GLenum    := 16#8070#;
   GL_TEXTURE_DEPTH                       : constant GLenum    := 16#8071#;
   GL_TEXTURE_WRAP_R                      : constant GLenum    := 16#8072#;
   GL_MAX_3D_TEXTURE_SIZE                 : constant GLenum    := 16#8073#;
   GL_TEXTURE_BINDING_3D                  : constant GLenum    := 16#806A#;
   GL_COLOR_TABLE                         : constant GLenum    := 16#80D0#;
   GL_POST_CONVOLUTION_COLOR_TABLE        : constant GLenum    := 16#80D1#;
   GL_POST_COLOR_MATRIX_COLOR_TABLE       : constant GLenum    := 16#80D2#;
   GL_PROXY_COLOR_TABLE                   : constant GLenum    := 16#80D3#;
   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE  : constant GLenum    := 16#80D4#;
   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE : constant GLenum    := 16#80D5#;
   GL_COLOR_TABLE_SCALE                   : constant GLenum    := 16#80D6#;
   GL_COLOR_TABLE_BIAS                    : constant GLenum    := 16#80D7#;
   GL_COLOR_TABLE_FORMAT                  : constant GLenum    := 16#80D8#;
   GL_COLOR_TABLE_WIDTH                   : constant GLenum    := 16#80D9#;
   GL_COLOR_TABLE_RED_SIZE                : constant GLenum    := 16#80DA#;
   GL_COLOR_TABLE_GREEN_SIZE              : constant GLenum    := 16#80DB#;
   GL_COLOR_TABLE_BLUE_SIZE               : constant GLenum    := 16#80DC#;
   GL_COLOR_TABLE_ALPHA_SIZE              : constant GLenum    := 16#80DD#;
   GL_COLOR_TABLE_LUMINANCE_SIZE          : constant GLenum    := 16#80DE#;
   GL_COLOR_TABLE_INTENSITY_SIZE          : constant GLenum    := 16#80DF#;
   GL_CONVOLUTION_1D                      : constant GLenum    := 16#8010#;
   GL_CONVOLUTION_2D                      : constant GLenum    := 16#8011#;
   GL_SEPARABLE_2D                        : constant GLenum    := 16#8012#;
   GL_CONVOLUTION_BORDER_MODE             : constant GLenum    := 16#8013#;
   GL_CONVOLUTION_FILTER_SCALE            : constant GLenum    := 16#8014#;
   GL_CONVOLUTION_FILTER_BIAS             : constant GLenum    := 16#8015#;
   GL_REDUCE                              : constant GLenum    := 16#8016#;
   GL_CONVOLUTION_FORMAT                  : constant GLenum    := 16#8017#;
   GL_CONVOLUTION_WIDTH                   : constant GLenum    := 16#8018#;
   GL_CONVOLUTION_HEIGHT                  : constant GLenum    := 16#8019#;
   GL_MAX_CONVOLUTION_WIDTH               : constant GLenum    := 16#801A#;
   GL_MAX_CONVOLUTION_HEIGHT              : constant GLenum    := 16#801B#;
   GL_POST_CONVOLUTION_RED_SCALE          : constant GLenum    := 16#801C#;
   GL_POST_CONVOLUTION_GREEN_SCALE        : constant GLenum    := 16#801D#;
   GL_POST_CONVOLUTION_BLUE_SCALE         : constant GLenum    := 16#801E#;
   GL_POST_CONVOLUTION_ALPHA_SCALE        : constant GLenum    := 16#801F#;
   GL_POST_CONVOLUTION_RED_BIAS           : constant GLenum    := 16#8020#;
   GL_POST_CONVOLUTION_GREEN_BIAS         : constant GLenum    := 16#8021#;
   GL_POST_CONVOLUTION_BLUE_BIAS          : constant GLenum    := 16#8022#;
   GL_POST_CONVOLUTION_ALPHA_BIAS         : constant GLenum    := 16#8023#;
   GL_CONSTANT_BORDER                     : constant GLenum    := 16#8151#;
   GL_REPLICATE_BORDER                    : constant GLenum    := 16#8153#;
   GL_CONVOLUTION_BORDER_COLOR            : constant GLenum    := 16#8154#;
   GL_COLOR_MATRIX                        : constant GLenum    := 16#80B1#;
   GL_COLOR_MATRIX_STACK_DEPTH            : constant GLenum    := 16#80B2#;
   GL_MAX_COLOR_MATRIX_STACK_DEPTH        : constant GLenum    := 16#80B3#;
   GL_POST_COLOR_MATRIX_RED_SCALE         : constant GLenum    := 16#80B4#;
   GL_POST_COLOR_MATRIX_GREEN_SCALE       : constant GLenum    := 16#80B5#;
   GL_POST_COLOR_MATRIX_BLUE_SCALE        : constant GLenum    := 16#80B6#;
   GL_POST_COLOR_MATRIX_ALPHA_SCALE       : constant GLenum    := 16#80B7#;
   GL_POST_COLOR_MATRIX_RED_BIAS          : constant GLenum    := 16#80B8#;
   GL_POST_COLOR_MATRIX_GREEN_BIAS        : constant GLenum    := 16#80B9#;
   GL_POST_COLOR_MATRIX_BLUE_BIAS         : constant GLenum    := 16#80BA#;
   GL_POST_COLOR_MATRIX_ALPHA_BIAS        : constant GLenum    := 16#80BB#;
   GL_HISTOGRAM                           : constant GLenum    := 16#8024#;
   GL_PROXY_HISTOGRAM                     : constant GLenum    := 16#8025#;
   GL_HISTOGRAM_WIDTH                     : constant GLenum    := 16#8026#;
   GL_HISTOGRAM_FORMAT                    : constant GLenum    := 16#8027#;
   GL_HISTOGRAM_RED_SIZE                  : constant GLenum    := 16#8028#;
   GL_HISTOGRAM_GREEN_SIZE                : constant GLenum    := 16#8029#;
   GL_HISTOGRAM_BLUE_SIZE                 : constant GLenum    := 16#802A#;
   GL_HISTOGRAM_ALPHA_SIZE                : constant GLenum    := 16#802B#;
   GL_HISTOGRAM_LUMINANCE_SIZE            : constant GLenum    := 16#802C#;
   GL_HISTOGRAM_SINK                      : constant GLenum    := 16#802D#;
   GL_MINMAX                              : constant GLenum    := 16#802E#;
   GL_MINMAX_FORMAT                       : constant GLenum    := 16#802F#;
   GL_MINMAX_SINK                         : constant GLenum    := 16#8030#;
   GL_TABLE_TOO_LARGE                     : constant GLenum    := 16#8031#;
   GL_BLEND_EQUATION                      : constant GLenum    := 16#8009#;
   GL_MIN                                 : constant GLenum    := 16#8007#;
   GL_MAX                                 : constant GLenum    := 16#8008#;
   GL_FUNC_ADD                            : constant GLenum    := 16#8006#;
   GL_FUNC_SUBTRACT                       : constant GLenum    := 16#800A#;
   GL_FUNC_REVERSE_SUBTRACT               : constant GLenum    := 16#800B#;
   GL_BLEND_COLOR                         : constant GLenum    := 16#8005#;
   GL_TEXTURE0                            : constant GLenum    := 16#84C0#;
   GL_TEXTURE1                            : constant GLenum    := 16#84C1#;
   GL_TEXTURE2                            : constant GLenum    := 16#84C2#;
   GL_TEXTURE3                            : constant GLenum    := 16#84C3#;
   GL_TEXTURE4                            : constant GLenum    := 16#84C4#;
   GL_TEXTURE5                            : constant GLenum    := 16#84C5#;
   GL_TEXTURE6                            : constant GLenum    := 16#84C6#;
   GL_TEXTURE7                            : constant GLenum    := 16#84C7#;
   GL_TEXTURE8                            : constant GLenum    := 16#84C8#;
   GL_TEXTURE9                            : constant GLenum    := 16#84C9#;
   GL_TEXTURE10                           : constant GLenum    := 16#84CA#;
   GL_TEXTURE11                           : constant GLenum    := 16#84CB#;
   GL_TEXTURE12                           : constant GLenum    := 16#84CC#;
   GL_TEXTURE13                           : constant GLenum    := 16#84CD#;
   GL_TEXTURE14                           : constant GLenum    := 16#84CE#;
   GL_TEXTURE15                           : constant GLenum    := 16#84CF#;
   GL_TEXTURE16                           : constant GLenum    := 16#84D0#;
   GL_TEXTURE17                           : constant GLenum    := 16#84D1#;
   GL_TEXTURE18                           : constant GLenum    := 16#84D2#;
   GL_TEXTURE19                           : constant GLenum    := 16#84D3#;
   GL_TEXTURE20                           : constant GLenum    := 16#84D4#;
   GL_TEXTURE21                           : constant GLenum    := 16#84D5#;
   GL_TEXTURE22                           : constant GLenum    := 16#84D6#;
   GL_TEXTURE23                           : constant GLenum    := 16#84D7#;
   GL_TEXTURE24                           : constant GLenum    := 16#84D8#;
   GL_TEXTURE25                           : constant GLenum    := 16#84D9#;
   GL_TEXTURE26                           : constant GLenum    := 16#84DA#;
   GL_TEXTURE27                           : constant GLenum    := 16#84DB#;
   GL_TEXTURE28                           : constant GLenum    := 16#84DC#;
   GL_TEXTURE29                           : constant GLenum    := 16#84DD#;
   GL_TEXTURE30                           : constant GLenum    := 16#84DE#;
   GL_TEXTURE31                           : constant GLenum    := 16#84DF#;
   GL_ACTIVE_TEXTURE                      : constant GLenum    := 16#84E0#;
   GL_CLIENT_ACTIVE_TEXTURE               : constant GLenum    := 16#84E1#;
   GL_MAX_TEXTURE_UNITS                   : constant GLenum    := 16#84E2#;
   GL_NORMAL_MAP                          : constant GLenum    := 16#8511#;
   GL_REFLECTION_MAP                      : constant GLenum    := 16#8512#;
   GL_TEXTURE_CUBE_MAP                    : constant GLenum    := 16#8513#;
   GL_TEXTURE_BINDING_CUBE_MAP            : constant GLenum    := 16#8514#;
   GL_TEXTURE_CUBE_MAP_POSITIVE_X         : constant GLenum    := 16#8515#;
   GL_TEXTURE_CUBE_MAP_NEGATIVE_X         : constant GLenum    := 16#8516#;
   GL_TEXTURE_CUBE_MAP_POSITIVE_Y         : constant GLenum    := 16#8517#;
   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y         : constant GLenum    := 16#8518#;
   GL_TEXTURE_CUBE_MAP_POSITIVE_Z         : constant GLenum    := 16#8519#;
   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z         : constant GLenum    := 16#851A#;
   GL_PROXY_TEXTURE_CUBE_MAP              : constant GLenum    := 16#851B#;
   GL_MAX_CUBE_MAP_TEXTURE_SIZE           : constant GLenum    := 16#851C#;
   GL_COMPRESSED_ALPHA                    : constant GLenum    := 16#84E9#;
   GL_COMPRESSED_LUMINANCE                : constant GLenum    := 16#84EA#;
   GL_COMPRESSED_LUMINANCE_ALPHA          : constant GLenum    := 16#84EB#;
   GL_COMPRESSED_INTENSITY                : constant GLenum    := 16#84EC#;
   GL_COMPRESSED_RGB                      : constant GLenum    := 16#84ED#;
   GL_COMPRESSED_RGBA                     : constant GLenum    := 16#84EE#;
   GL_TEXTURE_COMPRESSION_HINT            : constant GLenum    := 16#84EF#;
   GL_TEXTURE_COMPRESSED_IMAGE_SIZE       : constant GLenum    := 16#86A0#;
   GL_TEXTURE_COMPRESSED                  : constant GLenum    := 16#86A1#;
   GL_NUM_COMPRESSED_TEXTURE_FORMATS      : constant GLenum    := 16#86A2#;
   GL_COMPRESSED_TEXTURE_FORMATS          : constant GLenum    := 16#86A3#;
   GL_MULTISAMPLE                         : constant GLenum    := 16#809D#;
   GL_SAMPLE_ALPHA_TO_COVERAGE            : constant GLenum    := 16#809E#;
   GL_SAMPLE_ALPHA_TO_ONE                 : constant GLenum    := 16#809F#;
   GL_SAMPLE_COVERAGE                     : constant GLenum    := 16#80A0#;
   GL_SAMPLE_BUFFERS                      : constant GLenum    := 16#80A8#;
   GL_SAMPLES                             : constant GLenum    := 16#80A9#;
   GL_SAMPLE_COVERAGE_VALUE               : constant GLenum    := 16#80AA#;
   GL_SAMPLE_COVERAGE_INVERT              : constant GLenum    := 16#80AB#;
   GL_MULTISAMPLE_BIT                     : constant GLenum    := 16#20000000#;
   GL_TRANSPOSE_MODELVIEW_MATRIX          : constant GLenum    := 16#84E3#;
   GL_TRANSPOSE_PROJECTION_MATRIX         : constant GLenum    := 16#84E4#;
   GL_TRANSPOSE_TEXTURE_MATRIX            : constant GLenum    := 16#84E5#;
   GL_TRANSPOSE_COLOR_MATRIX              : constant GLenum    := 16#84E6#;
   GL_COMBINE                             : constant GLenum    := 16#8570#;
   GL_COMBINE_RGB                         : constant GLenum    := 16#8571#;
   GL_COMBINE_ALPHA                       : constant GLenum    := 16#8572#;
   GL_SOURCE0_RGB                         : constant GLenum    := 16#8580#;
   GL_SOURCE1_RGB                         : constant GLenum    := 16#8581#;
   GL_SOURCE2_RGB                         : constant GLenum    := 16#8582#;
   GL_SOURCE0_ALPHA                       : constant GLenum    := 16#8588#;
   GL_SOURCE1_ALPHA                       : constant GLenum    := 16#8589#;
   GL_SOURCE2_ALPHA                       : constant GLenum    := 16#858A#;
   GL_OPERAND0_RGB                        : constant GLenum    := 16#8590#;
   GL_OPERAND1_RGB                        : constant GLenum    := 16#8591#;
   GL_OPERAND2_RGB                        : constant GLenum    := 16#8592#;
   GL_OPERAND0_ALPHA                      : constant GLenum    := 16#8598#;
   GL_OPERAND1_ALPHA                      : constant GLenum    := 16#8599#;
   GL_OPERAND2_ALPHA                      : constant GLenum    := 16#859A#;
   GL_RGB_SCALE                           : constant GLenum    := 16#8573#;
   GL_ADD_SIGNED                          : constant GLenum    := 16#8574#;
   GL_INTERPOLATE                         : constant GLenum    := 16#8575#;
   GL_SUBTRACT                            : constant GLenum    := 16#84E7#;
   GL_CONSTANT                            : constant GLenum    := 16#8576#;
   GL_PRIMARY_COLOR                       : constant GLenum    := 16#8577#;
   GL_PREVIOUS                            : constant GLenum    := 16#8578#;
   GL_DOT3_RGB                            : constant GLenum    := 16#86AE#;
   GL_DOT3_RGBA                           : constant GLenum    := 16#86AF#;
   GL_CLAMP_TO_BORDER                     : constant GLenum    := 16#812D#;

   --//////////////////////////////////////////////////////////
   -- // GL functions
   --//////////////////////////////////////////////////////////
   procedure glClearIndex (c : GLfloat);
   procedure glClearColor
     (red   : GLclampf;
      green : GLclampf;
      blue  : GLclampf;
      alpha : GLclampf);
   procedure glClear (mask : GLbitfield);
   procedure glIndexMask (mask : GLuint);
   procedure glColorMask
     (red   : GLboolean;
      green : GLboolean;
      blue  : GLboolean;
      alpha : GLboolean);
   procedure glAlphaFunc (func : GLenum; ref : GLclampf);
   procedure glBlendFunc (sfactor : GLenum; dfactor : GLenum);
   procedure glLogicOp (opcode : GLenum);
   procedure glCullFace (mode : GLenum);
   procedure glFrontFace (mode : GLenum);
   procedure glPointSize (size : GLfloat);
   procedure glLineWidth (width : GLfloat);
   procedure glLineStipple (factor : GLint; pattern : GLushort);
   procedure glPolygonMode (face : GLenum; mode : GLenum);
   procedure glPolygonOffset (factor : GLfloat; units : GLfloat);
   procedure glPolygonStipple (mask : access GLubyte);
   procedure glGetPolygonStipple (mask : access GLubyte);
   procedure glEdgeFlag (flag : GLboolean);
   procedure glEdgeFlagv (flag : access GLboolean);
   procedure glScissor
     (x      : GLint;
      y      : GLint;
      width  : GLsizei;
      height : GLsizei);
   procedure glClipPlane (plane : GLenum; equation : access GLdouble);
   procedure glGetClipPlane (plane : GLenum; equation : access GLdouble);
   procedure glDrawBuffer (mode : GLenum);
   procedure glReadBuffer (mode : GLenum);
   procedure glEnable (cap : GLenum);
   procedure glDisable (cap : GLenum);
   function glIsEnabled (cap : GLenum) return GLboolean;
   procedure glEnableClientState (cap : GLenum);
   procedure glDisableClientState (cap : GLenum);
   procedure glGetBooleanv (pname : GLenum; params : access GLboolean);
   procedure glGetDoublev (pname : GLenum; params : access GLdouble);
   procedure glGetFloatv (pname : GLenum; params : access GLfloat);
   procedure glGetIntegerv (pname : GLenum; params : access GLint);
   procedure glPushAttrib (mask : GLbitfield);
   procedure glPopAttrib;
   procedure glPushClientAttrib (mask : GLbitfield);
   procedure glPopClientAttrib;
   function glRenderMode (mode : GLenum) return GLint;
   function glGetError return GLenum;
   function glGetString (name : GLenum) return GLubyte_Ptr;
   procedure glFinish;
   procedure glFlush;
   procedure glHint (target : GLenum; mode : GLenum);
   procedure glClearDepth (depth : GLclampd);
   procedure glDepthFunc (func : GLenum);
   procedure glDepthMask (flag : GLboolean);
   procedure glDepthRange (near_val : GLclampd; far_val : GLclampd);
   procedure glClearAccum
     (red   : GLfloat;
      green : GLfloat;
      blue  : GLfloat;
      alpha : GLfloat);
   procedure glAccum (op : GLenum; value : GLfloat);
   procedure glMatrixMode (mode : GLenum);
   procedure glOrtho
     (left     : GLdouble;
      right    : GLdouble;
      bottom   : GLdouble;
      top      : GLdouble;
      near_val : GLdouble;
      far_val  : GLdouble);
   procedure glFrustum
     (left     : GLdouble;
      right    : GLdouble;
      bottom   : GLdouble;
      top      : GLdouble;
      near_val : GLdouble;
      far_val  : GLdouble);
   procedure glViewport
     (x      : GLint;
      y      : GLint;
      width  : GLsizei;
      height : GLsizei);
   procedure glPushMatrix;
   procedure glPopMatrix;
   procedure glLoadIdentity;
   procedure glLoadMatrixd (m : access GLdouble);
   procedure glLoadMatrixf (m : access GLfloat);
   procedure glMultMatrixd (m : access GLdouble);
   procedure glMultMatrixf (m : access GLfloat);
   procedure glRotated
     (angle : GLdouble;
      x     : GLdouble;
      y     : GLdouble;
      z     : GLdouble);
   procedure glRotatef
     (angle : GLfloat;
      x     : GLfloat;
      y     : GLfloat;
      z     : GLfloat);
   procedure glScaled (x : GLdouble; y : GLdouble; z : GLdouble);
   procedure glScalef (x : GLfloat; y : GLfloat; z : GLfloat);
   procedure glTranslated (x : GLdouble; y : GLdouble; z : GLdouble);
   procedure glTranslatef (x : GLfloat; y : GLfloat; z : GLfloat);
   function glIsList (list : GLuint) return GLboolean;
   procedure glDeleteLists (list : GLuint; c_range : GLsizei);
   function glGenLists (c_range : GLsizei) return GLuint;
   procedure glNewList (list : GLuint; mode : GLenum);
   procedure glEndList;
   procedure glCallList (list : GLuint);
   procedure glCallLists (n : GLsizei; c_type : GLenum; lists : GLvoid_Ptr);
   procedure glListBase (base : GLuint);
   procedure glBegin (mode : GLenum);
   procedure glEnd;
   procedure glVertex2d (x : GLdouble; y : GLdouble);
   procedure glVertex2f (x : GLfloat; y : GLfloat);
   procedure glVertex2i (x : GLint; y : GLint);
   procedure glVertex2s (x : GLshort; y : GLshort);
   procedure glVertex3d (x : GLdouble; y : GLdouble; z : GLdouble);
   procedure glVertex3f (x : GLfloat; y : GLfloat; z : GLfloat);
   procedure glVertex3i (x : GLint; y : GLint; z : GLint);
   procedure glVertex3s (x : GLshort; y : GLshort; z : GLshort);
   procedure glVertex4d
     (x : GLdouble;
      y : GLdouble;
      z : GLdouble;
      w : GLdouble);
   procedure glVertex4f
     (x : GLfloat;
      y : GLfloat;
      z : GLfloat;
      w : GLfloat);
   procedure glVertex4i
     (x : GLint;
      y : GLint;
      z : GLint;
      w : GLint);
   procedure glVertex4s
     (x : GLshort;
      y : GLshort;
      z : GLshort;
      w : GLshort);
   procedure glVertex2dv (v : access GLdouble);
   procedure glVertex2fv (v : access GLfloat);
   procedure glVertex2iv (v : access GLint);
   procedure glVertex2sv (v : access GLshort);
   procedure glVertex3dv (v : access GLdouble);
   procedure glVertex3fv (v : access GLfloat);
   procedure glVertex3iv (v : access GLint);
   procedure glVertex3sv (v : access GLshort);
   procedure glVertex4dv (v : access GLdouble);
   procedure glVertex4fv (v : access GLfloat);
   procedure glVertex4iv (v : access GLint);
   procedure glVertex4sv (v : access GLshort);
   procedure glNormal3b (nx : GLbyte; ny : GLbyte; nz : GLbyte);
   procedure glNormal3d (nx : GLdouble; ny : GLdouble; nz : GLdouble);
   procedure glNormal3f (nx : GLfloat; ny : GLfloat; nz : GLfloat);
   procedure glNormal3i (nx : GLint; ny : GLint; nz : GLint);
   procedure glNormal3s (nx : GLshort; ny : GLshort; nz : GLshort);
   procedure glNormal3bv (v : access GLbyte);
   procedure glNormal3dv (v : access GLdouble);
   procedure glNormal3fv (v : access GLfloat);
   procedure glNormal3iv (v : access GLint);
   procedure glNormal3sv (v : access GLshort);
   procedure glIndexd (c : GLdouble);
   procedure glIndexf (c : GLfloat);
   procedure glIndexi (c : GLint);
   procedure glIndexs (c : GLshort);
   procedure glIndexub (c : GLubyte);
   procedure glIndexdv (c : access GLdouble);
   procedure glIndexfv (c : access GLfloat);
   procedure glIndexiv (c : access GLint);
   procedure glIndexsv (c : access GLshort);
   procedure glIndexubv (c : access GLubyte);
   procedure glColor3b (red : GLbyte; green : GLbyte; blue : GLbyte);
   procedure glColor3d (red : GLdouble; green : GLdouble; blue : GLdouble);
   procedure glColor3f (red : GLfloat; green : GLfloat; blue : GLfloat);
   procedure glColor3i (red : GLint; green : GLint; blue : GLint);
   procedure glColor3s (red : GLshort; green : GLshort; blue : GLshort);
   procedure glColor3ub (red : GLubyte; green : GLubyte; blue : GLubyte);
   procedure glColor3ui (red : GLuint; green : GLuint; blue : GLuint);
   procedure glColor3us (red : GLushort; green : GLushort; blue : GLushort);
   procedure glColor4b
     (red   : GLbyte;
      green : GLbyte;
      blue  : GLbyte;
      alpha : GLbyte);
   procedure glColor4d
     (red   : GLdouble;
      green : GLdouble;
      blue  : GLdouble;
      alpha : GLdouble);
   procedure glColor4f
     (red   : GLfloat;
      green : GLfloat;
      blue  : GLfloat;
      alpha : GLfloat);
   procedure glColor4i
     (red   : GLint;
      green : GLint;
      blue  : GLint;
      alpha : GLint);
   procedure glColor4s
     (red   : GLshort;
      green : GLshort;
      blue  : GLshort;
      alpha : GLshort);
   procedure glColor4ub
     (red   : GLubyte;
      green : GLubyte;
      blue  : GLubyte;
      alpha : GLubyte);
   procedure glColor4ui
     (red   : GLuint;
      green : GLuint;
      blue  : GLuint;
      alpha : GLuint);
   procedure glColor4us
     (red   : GLushort;
      green : GLushort;
      blue  : GLushort;
      alpha : GLushort);
   procedure glColor3bv (v : access GLbyte);
   procedure glColor3dv (v : access GLdouble);
   procedure glColor3fv (v : access GLfloat);
   procedure glColor3iv (v : access GLint);
   procedure glColor3sv (v : access GLshort);
   procedure glColor3ubv (v : access GLubyte);
   procedure glColor3uiv (v : access GLuint);
   procedure glColor3usv (v : access GLushort);
   procedure glColor4bv (v : access GLbyte);
   procedure glColor4dv (v : access GLdouble);
   procedure glColor4fv (v : access GLfloat);
   procedure glColor4iv (v : access GLint);
   procedure glColor4sv (v : access GLshort);
   procedure glColor4ubv (v : access GLubyte);
   procedure glColor4uiv (v : access GLuint);
   procedure glColor4usv (v : access GLushort);
   procedure glTexCoord1d (s : GLdouble);
   procedure glTexCoord1f (s : GLfloat);
   procedure glTexCoord1i (s : GLint);
   procedure glTexCoord1s (s : GLshort);
   procedure glTexCoord2d (s : GLdouble; t : GLdouble);
   procedure glTexCoord2f (s : GLfloat; t : GLfloat);
   procedure glTexCoord2i (s : GLint; t : GLint);
   procedure glTexCoord2s (s : GLshort; t : GLshort);
   procedure glTexCoord3d (s : GLdouble; t : GLdouble; r : GLdouble);
   procedure glTexCoord3f (s : GLfloat; t : GLfloat; r : GLfloat);
   procedure glTexCoord3i (s : GLint; t : GLint; r : GLint);
   procedure glTexCoord3s (s : GLshort; t : GLshort; r : GLshort);
   procedure glTexCoord4d
     (s : GLdouble;
      t : GLdouble;
      r : GLdouble;
      q : GLdouble);
   procedure glTexCoord4f
     (s : GLfloat;
      t : GLfloat;
      r : GLfloat;
      q : GLfloat);
   procedure glTexCoord4i
     (s : GLint;
      t : GLint;
      r : GLint;
      q : GLint);
   procedure glTexCoord4s
     (s : GLshort;
      t : GLshort;
      r : GLshort;
      q : GLshort);
   procedure glTexCoord1dv (v : access GLdouble);
   procedure glTexCoord1fv (v : access GLfloat);
   procedure glTexCoord1iv (v : access GLint);
   procedure glTexCoord1sv (v : access GLshort);
   procedure glTexCoord2dv (v : access GLdouble);
   procedure glTexCoord2fv (v : access GLfloat);
   procedure glTexCoord2iv (v : access GLint);
   procedure glTexCoord2sv (v : access GLshort);
   procedure glTexCoord3dv (v : access GLdouble);
   procedure glTexCoord3fv (v : access GLfloat);
   procedure glTexCoord3iv (v : access GLint);
   procedure glTexCoord3sv (v : access GLshort);
   procedure glTexCoord4dv (v : access GLdouble);
   procedure glTexCoord4fv (v : access GLfloat);
   procedure glTexCoord4iv (v : access GLint);
   procedure glTexCoord4sv (v : access GLshort);
   procedure glRasterPos2d (x : GLdouble; y : GLdouble);
   procedure glRasterPos2f (x : GLfloat; y : GLfloat);
   procedure glRasterPos2i (x : GLint; y : GLint);
   procedure glRasterPos2s (x : GLshort; y : GLshort);
   procedure glRasterPos3d (x : GLdouble; y : GLdouble; z : GLdouble);
   procedure glRasterPos3f (x : GLfloat; y : GLfloat; z : GLfloat);
   procedure glRasterPos3i (x : GLint; y : GLint; z : GLint);
   procedure glRasterPos3s (x : GLshort; y : GLshort; z : GLshort);
   procedure glRasterPos4d
     (x : GLdouble;
      y : GLdouble;
      z : GLdouble;
      w : GLdouble);
   procedure glRasterPos4f
     (x : GLfloat;
      y : GLfloat;
      z : GLfloat;
      w : GLfloat);
   procedure glRasterPos4i
     (x : GLint;
      y : GLint;
      z : GLint;
      w : GLint);
   procedure glRasterPos4s
     (x : GLshort;
      y : GLshort;
      z : GLshort;
      w : GLshort);
   procedure glRasterPos2dv (v : access GLdouble);
   procedure glRasterPos2fv (v : access GLfloat);
   procedure glRasterPos2iv (v : access GLint);
   procedure glRasterPos2sv (v : access GLshort);
   procedure glRasterPos3dv (v : access GLdouble);
   procedure glRasterPos3fv (v : access GLfloat);
   procedure glRasterPos3iv (v : access GLint);
   procedure glRasterPos3sv (v : access GLshort);
   procedure glRasterPos4dv (v : access GLdouble);
   procedure glRasterPos4fv (v : access GLfloat);
   procedure glRasterPos4iv (v : access GLint);
   procedure glRasterPos4sv (v : access GLshort);
   procedure glRectd
     (x1 : GLdouble;
      y1 : GLdouble;
      x2 : GLdouble;
      y2 : GLdouble);
   procedure glRectf
     (x1 : GLfloat;
      y1 : GLfloat;
      x2 : GLfloat;
      y2 : GLfloat);
   procedure glRecti
     (x1 : GLint;
      y1 : GLint;
      x2 : GLint;
      y2 : GLint);
   procedure glRects
     (x1 : GLshort;
      y1 : GLshort;
      x2 : GLshort;
      y2 : GLshort);
   procedure glRectdv (v1 : access GLdouble; v2 : access GLdouble);
   procedure glRectfv (v1 : access GLfloat; v2 : access GLfloat);
   procedure glRectiv (v1 : access GLint; v2 : access GLint);
   procedure glRectsv (v1 : access GLshort; v2 : access GLshort);
   procedure glShadeModel (mode : GLenum);
   procedure glLightf (light : GLenum; pname : GLenum; param : GLfloat);
   procedure glLighti (light : GLenum; pname : GLenum; param : GLint);
   procedure glLightfv (light : GLenum; pname : GLenum; params : access GLfloat);
   procedure glLightiv (light : GLenum; pname : GLenum; params : access GLint);
   procedure glGetLightfv (light : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetLightiv (light : GLenum; pname : GLenum; params : access GLint);
   procedure glLightModelf (pname : GLenum; param : GLfloat);
   procedure glLightModeli (pname : GLenum; param : GLint);
   procedure glLightModelfv (pname : GLenum; params : access GLfloat);
   procedure glLightModeliv (pname : GLenum; params : access GLint);
   procedure glMaterialf (face : GLenum; pname : GLenum; param : GLfloat);
   procedure glMateriali (face : GLenum; pname : GLenum; param : GLint);
   procedure glMaterialfv (face : GLenum; pname : GLenum; params : access GLfloat);
   procedure glMaterialiv (face : GLenum; pname : GLenum; params : access GLint);
   procedure glGetMaterialfv (face : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetMaterialiv (face : GLenum; pname : GLenum; params : access GLint);
   procedure glColorMaterial (face : GLenum; mode : GLenum);
   procedure glPixelZoom (xfactor : GLfloat; yfactor : GLfloat);
   procedure glPixelStoref (pname : GLenum; param : GLfloat);
   procedure glPixelStorei (pname : GLenum; param : GLint);
   procedure glPixelTransferf (pname : GLenum; param : GLfloat);
   procedure glPixelTransferi (pname : GLenum; param : GLint);
   procedure glPixelMapfv (map : GLenum; mapsize : GLint; values : access GLfloat);
   procedure glPixelMapuiv (map : GLenum; mapsize : GLint; values : access GLuint);
   procedure glPixelMapusv (map : GLenum; mapsize : GLint; values : access GLushort);
   procedure glGetPixelMapfv (map : GLenum; values : access GLfloat);
   procedure glGetPixelMapuiv (map : GLenum; values : access GLuint);
   procedure glGetPixelMapusv (map : GLenum; values : access GLushort);
   procedure glBitmap
     (width  : GLsizei;
      height : GLsizei;
      xorig  : GLfloat;
      yorig  : GLfloat;
      xmove  : GLfloat;
      ymove  : GLfloat;
      bitmap : access GLubyte);
   procedure glReadPixels
     (x      : GLint;
      y      : GLint;
      width  : GLsizei;
      height : GLsizei;
      format : GLenum;
      c_type : GLenum;
      pixels : GLvoid_Ptr);
   procedure glDrawPixels
     (width  : GLsizei;
      height : GLsizei;
      format : GLenum;
      c_type : GLenum;
      pixels : GLvoid_Ptr);
   procedure glCopyPixels
     (x      : GLint;
      y      : GLint;
      width  : GLsizei;
      height : GLsizei;
      c_type : GLenum);
   procedure glStencilFunc (func : GLenum; ref : GLint; mask : GLuint);
   procedure glStencilMask (mask : GLuint);
   procedure glStencilOp (fail : GLenum; zfail : GLenum; zpass : GLenum);
   procedure glClearStencil (s : GLint);
   procedure glTexGend (coord : GLenum; pname : GLenum; param : GLdouble);
   procedure glTexGenf (coord : GLenum; pname : GLenum; param : GLfloat);
   procedure glTexGeni (coord : GLenum; pname : GLenum; param : GLint);
   procedure glTexGendv (coord : GLenum; pname : GLenum; params : access GLdouble);
   procedure glTexGenfv (coord : GLenum; pname : GLenum; params : access GLfloat);
   procedure glTexGeniv (coord : GLenum; pname : GLenum; params : access GLint);
   procedure glGetTexGendv (coord : GLenum; pname : GLenum; params : access GLdouble);
   procedure glGetTexGenfv (coord : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetTexGeniv (coord : GLenum; pname : GLenum; params : access GLint);
   procedure glTexEnvf (target : GLenum; pname : GLenum; param : GLfloat);
   procedure glTexEnvi (target : GLenum; pname : GLenum; param : GLint);
   procedure glTexEnvfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glTexEnviv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glGetTexEnvfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetTexEnviv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glTexParameterf (target : GLenum; pname : GLenum; param : GLfloat);
   procedure glTexParameteri (target : GLenum; pname : GLenum; param : GLint);
   procedure glTexParameterfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glTexParameteriv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glGetTexParameterfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetTexParameteriv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glGetTexLevelParameterfv
     (target : GLenum;
      level  : GLint;
      pname  : GLenum;
      params : access GLfloat);
   procedure glGetTexLevelParameteriv
     (target : GLenum;
      level  : GLint;
      pname  : GLenum;
      params : access GLint);
   procedure glTexImage1D
     (target         : GLenum;
      level          : GLint;
      internalFormat : GLint;
      width          : GLsizei;
      border         : GLint;
      format         : GLenum;
      c_type         : GLenum;
      pixels         : GLvoid_Ptr);
   procedure glTexImage2D
     (target         : GLenum;
      level          : GLint;
      internalFormat : GLint;
      width          : GLsizei;
      height         : GLsizei;
      border         : GLint;
      format         : GLenum;
      c_type         : GLenum;
      pixels         : GLvoid_Ptr);
   procedure glGetTexImage
     (target : GLenum;
      level  : GLint;
      format : GLenum;
      c_type : GLenum;
      pixels : GLvoid_Ptr);
   procedure glMap1d
     (target : GLenum;
      u1     : GLdouble;
      u2     : GLdouble;
      stride : GLint;
      order  : GLint;
      points : access GLdouble);
   procedure glMap1f
     (target : GLenum;
      u1     : GLfloat;
      u2     : GLfloat;
      stride : GLint;
      order  : GLint;
      points : access GLfloat);
   procedure glMap2d
     (target  : GLenum;
      u1      : GLdouble;
      u2      : GLdouble;
      ustride : GLint;
      uorder  : GLint;
      v1      : GLdouble;
      v2      : GLdouble;
      vstride : GLint;
      vorder  : GLint;
      points  : access GLdouble);
   procedure glMap2f
     (target  : GLenum;
      u1      : GLfloat;
      u2      : GLfloat;
      ustride : GLint;
      uorder  : GLint;
      v1      : GLfloat;
      v2      : GLfloat;
      vstride : GLint;
      vorder  : GLint;
      points  : access GLfloat);
   procedure glGetMapdv (target : GLenum; query : GLenum; v : access GLdouble);
   procedure glGetMapfv (target : GLenum; query : GLenum; v : access GLfloat);
   procedure glGetMapiv (target : GLenum; query : GLenum; v : access GLint);
   procedure glEvalCoord1d (u : GLdouble);
   procedure glEvalCoord1f (u : GLfloat);
   procedure glEvalCoord1dv (u : access GLdouble);
   procedure glEvalCoord1fv (u : access GLfloat);
   procedure glEvalCoord2d (u : GLdouble; v : GLdouble);
   procedure glEvalCoord2f (u : GLfloat; v : GLfloat);
   procedure glEvalCoord2dv (u : access GLdouble);
   procedure glEvalCoord2fv (u : access GLfloat);
   procedure glMapGrid1d (un : GLint; u1 : GLdouble; u2 : GLdouble);
   procedure glMapGrid1f (un : GLint; u1 : GLfloat; u2 : GLfloat);
   procedure glMapGrid2d
     (un : GLint;
      u1 : GLdouble;
      u2 : GLdouble;
      vn : GLint;
      v1 : GLdouble;
      v2 : GLdouble);
   procedure glMapGrid2f
     (un : GLint;
      u1 : GLfloat;
      u2 : GLfloat;
      vn : GLint;
      v1 : GLfloat;
      v2 : GLfloat);
   procedure glEvalPoint1 (i : GLint);
   procedure glEvalPoint2 (i : GLint; j : GLint);
   procedure glEvalMesh1 (mode : GLenum; i1 : GLint; i2 : GLint);
   procedure glEvalMesh2
     (mode : GLenum;
      i1   : GLint;
      i2   : GLint;
      j1   : GLint;
      j2   : GLint);
   procedure glFogf (pname : GLenum; param : GLfloat);
   procedure glFogi (pname : GLenum; param : GLint);
   procedure glFogfv (pname : GLenum; params : access GLfloat);
   procedure glFogiv (pname : GLenum; params : access GLint);
   procedure glFeedbackBuffer (size : GLsizei; c_type : GLenum; buffer : access GLfloat);
   procedure glPassThrough (token : GLfloat);
   procedure glSelectBuffer (size : GLsizei; buffer : access GLuint);
   procedure glInitNames;
   procedure glLoadName (name : GLuint);
   procedure glPushName (name : GLuint);
   procedure glPopName;
   procedure glGenTextures (n : GLsizei; textures : access GLuint);
   procedure glDeleteTextures (n : GLsizei; textures : access GLuint);
   procedure glBindTexture (target : GLenum; texture : GLuint);
   procedure glPrioritizeTextures (n : GLsizei; textures : access GLuint; priorities : access GLclampf);
   function glAreTexturesResident
     (n          : GLsizei;
      textures   : access GLuint;
      residences : access GLboolean)
     return       GLboolean;
   function glIsTexture (texture : GLuint) return GLboolean;
   procedure glTexSubImage1D
     (target  : GLenum;
      level   : GLint;
      xoffset : GLint;
      width   : GLsizei;
      format  : GLenum;
      c_type  : GLenum;
      pixels  : GLvoid_Ptr);
   procedure glTexSubImage2D
     (target  : GLenum;
      level   : GLint;
      xoffset : GLint;
      yoffset : GLint;
      width   : GLsizei;
      height  : GLsizei;
      format  : GLenum;
      c_type  : GLenum;
      pixels  : GLvoid_Ptr);
   procedure glCopyTexImage1D
     (target         : GLenum;
      level          : GLint;
      internalformat : GLenum;
      x              : GLint;
      y              : GLint;
      width          : GLsizei;
      border         : GLint);
   procedure glCopyTexImage2D
     (target         : GLenum;
      level          : GLint;
      internalformat : GLenum;
      x              : GLint;
      y              : GLint;
      width          : GLsizei;
      height         : GLsizei;
      border         : GLint);
   procedure glCopyTexSubImage1D
     (target  : GLenum;
      level   : GLint;
      xoffset : GLint;
      x       : GLint;
      y       : GLint;
      width   : GLsizei);
   procedure glCopyTexSubImage2D
     (target  : GLenum;
      level   : GLint;
      xoffset : GLint;
      yoffset : GLint;
      x       : GLint;
      y       : GLint;
      width   : GLsizei;
      height  : GLsizei);
   procedure glVertexPointer
     (size   : GLint;
      c_type : GLenum;
      stride : GLsizei;
      ptr    : GLvoid_Ptr);
   procedure glNormalPointer (c_type : GLenum; stride : GLsizei; ptr : GLvoid_Ptr);
   procedure glColorPointer
     (size   : GLint;
      c_type : GLenum;
      stride : GLsizei;
      ptr    : GLvoid_Ptr);
   procedure glIndexPointer (c_type : GLenum; stride : GLsizei; ptr : GLvoid_Ptr);
   procedure glTexCoordPointer
     (size   : GLint;
      c_type : GLenum;
      stride : GLsizei;
      ptr    : GLvoid_Ptr);
   procedure glEdgeFlagPointer (stride : GLsizei; ptr : GLvoid_Ptr);
   procedure glGetPointerv (pname : GLenum; params : GLvoid_Ptr);
   procedure glArrayElement (i : GLint);
   procedure glDrawArrays (mode : GLenum; first : GLint; count : GLsizei);
   procedure glDrawElements
     (mode    : GLenum;
      count   : GLsizei;
      c_type  : GLenum;
      indices : GLvoid_Ptr);
   procedure glInterleavedArrays (format : GLenum; stride : GLsizei; pointer : GLvoid_Ptr);
   procedure glDrawRangeElements
     (mode    : GLenum;
      start   : GLuint;
      c_end   : GLuint;
      count   : GLsizei;
      c_type  : GLenum;
      indices : GLvoid_Ptr);
   procedure glTexImage3D
     (target         : GLenum;
      level          : GLint;
      internalFormat : GLenum;
      width          : GLsizei;
      height         : GLsizei;
      depth          : GLsizei;
      border         : GLint;
      format         : GLenum;
      c_type         : GLenum;
      pixels         : GLvoid_Ptr);
   procedure glTexSubImage3D
     (target  : GLenum;
      level   : GLint;
      xoffset : GLint;
      yoffset : GLint;
      zoffset : GLint;
      width   : GLsizei;
      height  : GLsizei;
      depth   : GLsizei;
      format  : GLenum;
      c_type  : GLenum;
      pixels  : GLvoid_Ptr);
   procedure glCopyTexSubImage3D
     (target  : GLenum;
      level   : GLint;
      xoffset : GLint;
      yoffset : GLint;
      zoffset : GLint;
      x       : GLint;
      y       : GLint;
      width   : GLsizei;
      height  : GLsizei);
   procedure glColorTable
     (target         : GLenum;
      internalformat : GLenum;
      width          : GLsizei;
      format         : GLenum;
      c_type         : GLenum;
      table          : GLvoid_Ptr);
   procedure glColorSubTable
     (target : GLenum;
      start  : GLsizei;
      count  : GLsizei;
      format : GLenum;
      c_type : GLenum;
      data   : GLvoid_Ptr);
   procedure glColorTableParameteriv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glColorTableParameterfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glCopyColorSubTable
     (target : GLenum;
      start  : GLsizei;
      x      : GLint;
      y      : GLint;
      width  : GLsizei);
   procedure glCopyColorTable
     (target         : GLenum;
      internalformat : GLenum;
      x              : GLint;
      y              : GLint;
      width          : GLsizei);
   procedure glGetColorTable
     (target : GLenum;
      format : GLenum;
      c_type : GLenum;
      table  : GLvoid_Ptr);
   procedure glGetColorTableParameterfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetColorTableParameteriv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glBlendEquation (mode : GLenum);
   procedure glBlendColor
     (red   : GLclampf;
      green : GLclampf;
      blue  : GLclampf;
      alpha : GLclampf);
   procedure glHistogram
     (target         : GLenum;
      width          : GLsizei;
      internalformat : GLenum;
      sink           : GLboolean);
   procedure glResetHistogram (target : GLenum);
   procedure glGetHistogram
     (target : GLenum;
      reset  : GLboolean;
      format : GLenum;
      c_type : GLenum;
      values : GLvoid_Ptr);
   procedure glGetHistogramParameterfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetHistogramParameteriv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glMinmax (target : GLenum; internalformat : GLenum; sink : GLboolean);
   procedure glResetMinmax (target : GLenum);
   procedure glGetMinmax
     (target : GLenum;
      reset  : GLboolean;
      format : GLenum;
      types  : GLenum;
      values : GLvoid_Ptr);
   procedure glGetMinmaxParameterfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetMinmaxParameteriv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glConvolutionFilter1D
     (target         : GLenum;
      internalformat : GLenum;
      width          : GLsizei;
      format         : GLenum;
      c_type         : GLenum;
      image          : GLvoid_Ptr);
   procedure glConvolutionFilter2D
     (target         : GLenum;
      internalformat : GLenum;
      width          : GLsizei;
      height         : GLsizei;
      format         : GLenum;
      c_type         : GLenum;
      image          : GLvoid_Ptr);
   procedure glConvolutionParameterf (target : GLenum; pname : GLenum; params : GLfloat);
   procedure glConvolutionParameterfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glConvolutionParameteri (target : GLenum; pname : GLenum; params : GLint);
   procedure glConvolutionParameteriv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glCopyConvolutionFilter1D
     (target         : GLenum;
      internalformat : GLenum;
      x              : GLint;
      y              : GLint;
      width          : GLsizei);
   procedure glCopyConvolutionFilter2D
     (target         : GLenum;
      internalformat : GLenum;
      x              : GLint;
      y              : GLint;
      width          : GLsizei;
      height         : GLsizei);
   procedure glGetConvolutionFilter
     (target : GLenum;
      format : GLenum;
      c_type : GLenum;
      image  : GLvoid_Ptr);
   procedure glGetConvolutionParameterfv (target : GLenum; pname : GLenum; params : access GLfloat);
   procedure glGetConvolutionParameteriv (target : GLenum; pname : GLenum; params : access GLint);
   procedure glSeparableFilter2D
     (target         : GLenum;
      internalformat : GLenum;
      width          : GLsizei;
      height         : GLsizei;
      format         : GLenum;
      c_type         : GLenum;
      row            : GLvoid_Ptr;
      column         : GLvoid_Ptr);
   procedure glGetSeparableFilter
     (target : GLenum;
      format : GLenum;
      c_type : GLenum;
      row    : GLvoid_Ptr;
      column : GLvoid_Ptr;
      span   : GLvoid_Ptr);
   procedure glActiveTexture (texture : GLenum);
   procedure glClientActiveTexture (texture : GLenum);
   procedure glCompressedTexImage1D
     (target         : GLenum;
      level          : GLint;
      internalformat : GLenum;
      width          : GLsizei;
      border         : GLint;
      imageSize      : GLsizei;
      data           : GLvoid_Ptr);
   procedure glCompressedTexImage2D
     (target         : GLenum;
      level          : GLint;
      internalformat : GLenum;
      width          : GLsizei;
      height         : GLsizei;
      border         : GLint;
      imageSize      : GLsizei;
      data           : GLvoid_Ptr);
   procedure glCompressedTexImage3D
     (target         : GLenum;
      level          : GLint;
      internalformat : GLenum;
      width          : GLsizei;
      height         : GLsizei;
      depth          : GLsizei;
      border         : GLint;
      imageSize      : GLsizei;
      data           : GLvoid_Ptr);
   procedure glCompressedTexSubImage1D
     (target    : GLenum;
      level     : GLint;
      xoffset   : GLint;
      width     : GLsizei;
      format    : GLenum;
      imageSize : GLsizei;
      data      : GLvoid_Ptr);
   procedure glCompressedTexSubImage2D
     (target    : GLenum;
      level     : GLint;
      xoffset   : GLint;
      yoffset   : GLint;
      width     : GLsizei;
      height    : GLsizei;
      format    : GLenum;
      imageSize : GLsizei;
      data      : GLvoid_Ptr);
   procedure glCompressedTexSubImage3D
     (target    : GLenum;
      level     : GLint;
      xoffset   : GLint;
      yoffset   : GLint;
      zoffset   : GLint;
      width     : GLsizei;
      height    : GLsizei;
      depth     : GLsizei;
      format    : GLenum;
      imageSize : GLsizei;
      data      : GLvoid_Ptr);
   procedure glGetCompressedTexImage (target : GLenum; lod : GLint; img : GLvoid_Ptr);
   procedure glMultiTexCoord1d (target : GLenum; s : GLdouble);
   procedure glMultiTexCoord1dv (target : GLenum; v : access GLdouble);
   procedure glMultiTexCoord1f (target : GLenum; s : GLfloat);
   procedure glMultiTexCoord1fv (target : GLenum; v : access GLfloat);
   procedure glMultiTexCoord1i (target : GLenum; s : GLint);
   procedure glMultiTexCoord1iv (target : GLenum; v : access GLint);
   procedure glMultiTexCoord1s (target : GLenum; s : GLshort);
   procedure glMultiTexCoord1sv (target : GLenum; v : access GLshort);
   procedure glMultiTexCoord2d (target : GLenum; s : GLdouble; t : GLdouble);
   procedure glMultiTexCoord2dv (target : GLenum; v : access GLdouble);
   procedure glMultiTexCoord2f (target : GLenum; s : GLfloat; t : GLfloat);
   procedure glMultiTexCoord2fv (target : GLenum; v : access GLfloat);
   procedure glMultiTexCoord2i (target : GLenum; s : GLint; t : GLint);
   procedure glMultiTexCoord2iv (target : GLenum; v : access GLint);
   procedure glMultiTexCoord2s (target : GLenum; s : GLshort; t : GLshort);
   procedure glMultiTexCoord2sv (target : GLenum; v : access GLshort);
   procedure glMultiTexCoord3d
     (target : GLenum;
      s      : GLdouble;
      t      : GLdouble;
      r      : GLdouble);
   procedure glMultiTexCoord3dv (target : GLenum; v : access GLdouble);
   procedure glMultiTexCoord3f
     (target : GLenum;
      s      : GLfloat;
      t      : GLfloat;
      r      : GLfloat);
   procedure glMultiTexCoord3fv (target : GLenum; v : access GLfloat);
   procedure glMultiTexCoord3i
     (target : GLenum;
      s      : GLint;
      t      : GLint;
      r      : GLint);
   procedure glMultiTexCoord3iv (target : GLenum; v : access GLint);
   procedure glMultiTexCoord3s
     (target : GLenum;
      s      : GLshort;
      t      : GLshort;
      r      : GLshort);
   procedure glMultiTexCoord3sv (target : GLenum; v : access GLshort);
   procedure glMultiTexCoord4d
     (target : GLenum;
      s      : GLdouble;
      t      : GLdouble;
      r      : GLdouble;
      q      : GLdouble);
   procedure glMultiTexCoord4dv (target : GLenum; v : access GLdouble);
   procedure glMultiTexCoord4f
     (target : GLenum;
      s      : GLfloat;
      t      : GLfloat;
      r      : GLfloat;
      q      : GLfloat);
   procedure glMultiTexCoord4fv (target : GLenum; v : access GLfloat);
   procedure glMultiTexCoord4i
     (target : GLenum;
      s      : GLint;
      t      : GLint;
      r      : GLint;
      q      : GLint);
   procedure glMultiTexCoord4iv (target : GLenum; v : access GLint);
   procedure glMultiTexCoord4s
     (target : GLenum;
      s      : GLshort;
      t      : GLshort;
      r      : GLshort;
      q      : GLshort);
   procedure glMultiTexCoord4sv (target : GLenum; v : access GLshort);
   procedure glLoadTransposeMatrixd (m : access GLdouble);
   procedure glLoadTransposeMatrixf (m : access GLfloat);
   procedure glMultTransposeMatrixd (m : access GLdouble);
   procedure glMultTransposeMatrixf (m : access GLfloat);
   procedure glSampleCoverage (value : GLclampf; invert : GLboolean);
   procedure glSamplePass (pass : GLenum);

private

   pragma Import (Stdcall, glClearIndex, "glClearIndex");
   pragma Import (Stdcall, glClearColor, "glClearColor");
   pragma Import (Stdcall, glClear, "glClear");
   pragma Import (Stdcall, glIndexMask, "glIndexMask");
   pragma Import (Stdcall, glColorMask, "glColorMask");
   pragma Import (Stdcall, glAlphaFunc, "glAlphaFunc");
   pragma Import (Stdcall, glBlendFunc, "glBlendFunc");
   pragma Import (Stdcall, glLogicOp, "glLogicOp");
   pragma Import (Stdcall, glCullFace, "glCullFace");
   pragma Import (Stdcall, glFrontFace, "glFrontFace");
   pragma Import (Stdcall, glPointSize, "glPointSize");
   pragma Import (Stdcall, glLineWidth, "glLineWidth");
   pragma Import (Stdcall, glLineStipple, "glLineStipple");
   pragma Import (Stdcall, glPolygonMode, "glPolygonMode");
   pragma Import (Stdcall, glPolygonOffset, "glPolygonOffset");
   pragma Import (Stdcall, glPolygonStipple, "glPolygonStipple");
   pragma Import (Stdcall, glGetPolygonStipple, "glGetPolygonStipple");
   pragma Import (Stdcall, glEdgeFlag, "glEdgeFlag");
   pragma Import (Stdcall, glEdgeFlagv, "glEdgeFlagv");
   pragma Import (Stdcall, glScissor, "glScissor");
   pragma Import (Stdcall, glClipPlane, "glClipPlane");
   pragma Import (Stdcall, glGetClipPlane, "glGetClipPlane");
   pragma Import (Stdcall, glDrawBuffer, "glDrawBuffer");
   pragma Import (Stdcall, glReadBuffer, "glReadBuffer");
   pragma Import (Stdcall, glEnable, "glEnable");
   pragma Import (Stdcall, glDisable, "glDisable");
   pragma Import (Stdcall, glIsEnabled, "glIsEnabled");
   pragma Import (Stdcall, glEnableClientState, "glEnableClientState");
   pragma Import (Stdcall, glDisableClientState, "glDisableClientState");
   pragma Import (Stdcall, glGetBooleanv, "glGetBooleanv");
   pragma Import (Stdcall, glGetDoublev, "glGetDoublev");
   pragma Import (Stdcall, glGetFloatv, "glGetFloatv");
   pragma Import (Stdcall, glGetIntegerv, "glGetIntegerv");
   pragma Import (Stdcall, glPushAttrib, "glPushAttrib");
   pragma Import (Stdcall, glPopAttrib, "glPopAttrib");
   pragma Import (Stdcall, glPushClientAttrib, "glPushClientAttrib");
   pragma Import (Stdcall, glPopClientAttrib, "glPopClientAttrib");
   pragma Import (Stdcall, glRenderMode, "glRenderMode");
   pragma Import (Stdcall, glGetError, "glGetError");
   pragma Import (Stdcall, glGetString, "glGetString");
   pragma Import (Stdcall, glFinish, "glFinish");
   pragma Import (Stdcall, glFlush, "glFlush");
   pragma Import (Stdcall, glHint, "glHint");
   pragma Import (Stdcall, glClearDepth, "glClearDepth");
   pragma Import (Stdcall, glDepthFunc, "glDepthFunc");
   pragma Import (Stdcall, glDepthMask, "glDepthMask");
   pragma Import (Stdcall, glDepthRange, "glDepthRange");
   pragma Import (Stdcall, glClearAccum, "glClearAccum");
   pragma Import (Stdcall, glAccum, "glAccum");
   pragma Import (Stdcall, glMatrixMode, "glMatrixMode");
   pragma Import (Stdcall, glOrtho, "glOrtho");
   pragma Import (Stdcall, glFrustum, "glFrustum");
   pragma Import (Stdcall, glViewport, "glViewport");
   pragma Import (Stdcall, glPushMatrix, "glPushMatrix");
   pragma Import (Stdcall, glPopMatrix, "glPopMatrix");
   pragma Import (Stdcall, glLoadIdentity, "glLoadIdentity");
   pragma Import (Stdcall, glLoadMatrixd, "glLoadMatrixd");
   pragma Import (Stdcall, glLoadMatrixf, "glLoadMatrixf");
   pragma Import (Stdcall, glMultMatrixd, "glMultMatrixd");
   pragma Import (Stdcall, glMultMatrixf, "glMultMatrixf");
   pragma Import (Stdcall, glRotated, "glRotated");
   pragma Import (Stdcall, glRotatef, "glRotatef");
   pragma Import (Stdcall, glScaled, "glScaled");
   pragma Import (Stdcall, glScalef, "glScalef");
   pragma Import (Stdcall, glTranslated, "glTranslated");
   pragma Import (Stdcall, glTranslatef, "glTranslatef");
   pragma Import (Stdcall, glIsList, "glIsList");
   pragma Import (Stdcall, glDeleteLists, "glDeleteLists");
   pragma Import (Stdcall, glGenLists, "glGenLists");
   pragma Import (Stdcall, glNewList, "glNewList");
   pragma Import (Stdcall, glEndList, "glEndList");
   pragma Import (Stdcall, glCallList, "glCallList");
   pragma Import (Stdcall, glCallLists, "glCallLists");
   pragma Import (Stdcall, glListBase, "glListBase");
   pragma Import (Stdcall, glBegin, "glBegin");
   pragma Import (Stdcall, glEnd, "glEnd");
   pragma Import (Stdcall, glVertex2d, "glVertex2d");
   pragma Import (Stdcall, glVertex2f, "glVertex2f");
   pragma Import (Stdcall, glVertex2i, "glVertex2i");
   pragma Import (Stdcall, glVertex2s, "glVertex2s");
   pragma Import (Stdcall, glVertex3d, "glVertex3d");
   pragma Import (Stdcall, glVertex3f, "glVertex3f");
   pragma Import (Stdcall, glVertex3i, "glVertex3i");
   pragma Import (Stdcall, glVertex3s, "glVertex3s");
   pragma Import (Stdcall, glVertex4d, "glVertex4d");
   pragma Import (Stdcall, glVertex4f, "glVertex4f");
   pragma Import (Stdcall, glVertex4i, "glVertex4i");
   pragma Import (Stdcall, glVertex4s, "glVertex4s");
   pragma Import (Stdcall, glVertex2dv, "glVertex2dv");
   pragma Import (Stdcall, glVertex2fv, "glVertex2fv");
   pragma Import (Stdcall, glVertex2iv, "glVertex2iv");
   pragma Import (Stdcall, glVertex2sv, "glVertex2sv");
   pragma Import (Stdcall, glVertex3dv, "glVertex3dv");
   pragma Import (Stdcall, glVertex3fv, "glVertex3fv");
   pragma Import (Stdcall, glVertex3iv, "glVertex3iv");
   pragma Import (Stdcall, glVertex3sv, "glVertex3sv");
   pragma Import (Stdcall, glVertex4dv, "glVertex4dv");
   pragma Import (Stdcall, glVertex4fv, "glVertex4fv");
   pragma Import (Stdcall, glVertex4iv, "glVertex4iv");
   pragma Import (Stdcall, glVertex4sv, "glVertex4sv");
   pragma Import (Stdcall, glNormal3b, "glNormal3b");
   pragma Import (Stdcall, glNormal3d, "glNormal3d");
   pragma Import (Stdcall, glNormal3f, "glNormal3f");
   pragma Import (Stdcall, glNormal3i, "glNormal3i");
   pragma Import (Stdcall, glNormal3s, "glNormal3s");
   pragma Import (Stdcall, glNormal3bv, "glNormal3bv");
   pragma Import (Stdcall, glNormal3dv, "glNormal3dv");
   pragma Import (Stdcall, glNormal3fv, "glNormal3fv");
   pragma Import (Stdcall, glNormal3iv, "glNormal3iv");
   pragma Import (Stdcall, glNormal3sv, "glNormal3sv");
   pragma Import (Stdcall, glIndexd, "glIndexd");
   pragma Import (Stdcall, glIndexf, "glIndexf");
   pragma Import (Stdcall, glIndexi, "glIndexi");
   pragma Import (Stdcall, glIndexs, "glIndexs");
   pragma Import (Stdcall, glIndexub, "glIndexub");
   pragma Import (Stdcall, glIndexdv, "glIndexdv");
   pragma Import (Stdcall, glIndexfv, "glIndexfv");
   pragma Import (Stdcall, glIndexiv, "glIndexiv");
   pragma Import (Stdcall, glIndexsv, "glIndexsv");
   pragma Import (Stdcall, glIndexubv, "glIndexubv");
   pragma Import (Stdcall, glColor3b, "glColor3b");
   pragma Import (Stdcall, glColor3d, "glColor3d");
   pragma Import (Stdcall, glColor3f, "glColor3f");
   pragma Import (Stdcall, glColor3i, "glColor3i");
   pragma Import (Stdcall, glColor3s, "glColor3s");
   pragma Import (Stdcall, glColor3ub, "glColor3ub");
   pragma Import (Stdcall, glColor3ui, "glColor3ui");
   pragma Import (Stdcall, glColor3us, "glColor3us");
   pragma Import (Stdcall, glColor4b, "glColor4b");
   pragma Import (Stdcall, glColor4d, "glColor4d");
   pragma Import (Stdcall, glColor4f, "glColor4f");
   pragma Import (Stdcall, glColor4i, "glColor4i");
   pragma Import (Stdcall, glColor4s, "glColor4s");
   pragma Import (Stdcall, glColor4ub, "glColor4ub");
   pragma Import (Stdcall, glColor4ui, "glColor4ui");
   pragma Import (Stdcall, glColor4us, "glColor4us");
   pragma Import (Stdcall, glColor3bv, "glColor3bv");
   pragma Import (Stdcall, glColor3dv, "glColor3dv");
   pragma Import (Stdcall, glColor3fv, "glColor3fv");
   pragma Import (Stdcall, glColor3iv, "glColor3iv");
   pragma Import (Stdcall, glColor3sv, "glColor3sv");
   pragma Import (Stdcall, glColor3ubv, "glColor3ubv");
   pragma Import (Stdcall, glColor3uiv, "glColor3uiv");
   pragma Import (Stdcall, glColor3usv, "glColor3usv");
   pragma Import (Stdcall, glColor4bv, "glColor4bv");
   pragma Import (Stdcall, glColor4dv, "glColor4dv");
   pragma Import (Stdcall, glColor4fv, "glColor4fv");
   pragma Import (Stdcall, glColor4iv, "glColor4iv");
   pragma Import (Stdcall, glColor4sv, "glColor4sv");
   pragma Import (Stdcall, glColor4ubv, "glColor4ubv");
   pragma Import (Stdcall, glColor4uiv, "glColor4uiv");
   pragma Import (Stdcall, glColor4usv, "glColor4usv");
   pragma Import (Stdcall, glTexCoord1d, "glTexCoord1d");
   pragma Import (Stdcall, glTexCoord1f, "glTexCoord1f");
   pragma Import (Stdcall, glTexCoord1i, "glTexCoord1i");
   pragma Import (Stdcall, glTexCoord1s, "glTexCoord1s");
   pragma Import (Stdcall, glTexCoord2d, "glTexCoord2d");
   pragma Import (Stdcall, glTexCoord2f, "glTexCoord2f");
   pragma Import (Stdcall, glTexCoord2i, "glTexCoord2i");
   pragma Import (Stdcall, glTexCoord2s, "glTexCoord2s");
   pragma Import (Stdcall, glTexCoord3d, "glTexCoord3d");
   pragma Import (Stdcall, glTexCoord3f, "glTexCoord3f");
   pragma Import (Stdcall, glTexCoord3i, "glTexCoord3i");
   pragma Import (Stdcall, glTexCoord3s, "glTexCoord3s");
   pragma Import (Stdcall, glTexCoord4d, "glTexCoord4d");
   pragma Import (Stdcall, glTexCoord4f, "glTexCoord4f");
   pragma Import (Stdcall, glTexCoord4i, "glTexCoord4i");
   pragma Import (Stdcall, glTexCoord4s, "glTexCoord4s");
   pragma Import (Stdcall, glTexCoord1dv, "glTexCoord1dv");
   pragma Import (Stdcall, glTexCoord1fv, "glTexCoord1fv");
   pragma Import (Stdcall, glTexCoord1iv, "glTexCoord1iv");
   pragma Import (Stdcall, glTexCoord1sv, "glTexCoord1sv");
   pragma Import (Stdcall, glTexCoord2dv, "glTexCoord2dv");
   pragma Import (Stdcall, glTexCoord2fv, "glTexCoord2fv");
   pragma Import (Stdcall, glTexCoord2iv, "glTexCoord2iv");
   pragma Import (Stdcall, glTexCoord2sv, "glTexCoord2sv");
   pragma Import (Stdcall, glTexCoord3dv, "glTexCoord3dv");
   pragma Import (Stdcall, glTexCoord3fv, "glTexCoord3fv");
   pragma Import (Stdcall, glTexCoord3iv, "glTexCoord3iv");
   pragma Import (Stdcall, glTexCoord3sv, "glTexCoord3sv");
   pragma Import (Stdcall, glTexCoord4dv, "glTexCoord4dv");
   pragma Import (Stdcall, glTexCoord4fv, "glTexCoord4fv");
   pragma Import (Stdcall, glTexCoord4iv, "glTexCoord4iv");
   pragma Import (Stdcall, glTexCoord4sv, "glTexCoord4sv");
   pragma Import (Stdcall, glRasterPos2d, "glRasterPos2d");
   pragma Import (Stdcall, glRasterPos2f, "glRasterPos2f");
   pragma Import (Stdcall, glRasterPos2i, "glRasterPos2i");
   pragma Import (Stdcall, glRasterPos2s, "glRasterPos2s");
   pragma Import (Stdcall, glRasterPos3d, "glRasterPos3d");
   pragma Import (Stdcall, glRasterPos3f, "glRasterPos3f");
   pragma Import (Stdcall, glRasterPos3i, "glRasterPos3i");
   pragma Import (Stdcall, glRasterPos3s, "glRasterPos3s");
   pragma Import (Stdcall, glRasterPos4d, "glRasterPos4d");
   pragma Import (Stdcall, glRasterPos4f, "glRasterPos4f");
   pragma Import (Stdcall, glRasterPos4i, "glRasterPos4i");
   pragma Import (Stdcall, glRasterPos4s, "glRasterPos4s");
   pragma Import (Stdcall, glRasterPos2dv, "glRasterPos2dv");
   pragma Import (Stdcall, glRasterPos2fv, "glRasterPos2fv");
   pragma Import (Stdcall, glRasterPos2iv, "glRasterPos2iv");
   pragma Import (Stdcall, glRasterPos2sv, "glRasterPos2sv");
   pragma Import (Stdcall, glRasterPos3dv, "glRasterPos3dv");
   pragma Import (Stdcall, glRasterPos3fv, "glRasterPos3fv");
   pragma Import (Stdcall, glRasterPos3iv, "glRasterPos3iv");
   pragma Import (Stdcall, glRasterPos3sv, "glRasterPos3sv");
   pragma Import (Stdcall, glRasterPos4dv, "glRasterPos4dv");
   pragma Import (Stdcall, glRasterPos4fv, "glRasterPos4fv");
   pragma Import (Stdcall, glRasterPos4iv, "glRasterPos4iv");
   pragma Import (Stdcall, glRasterPos4sv, "glRasterPos4sv");
   pragma Import (Stdcall, glRectd, "glRectd");
   pragma Import (Stdcall, glRectf, "glRectf");
   pragma Import (Stdcall, glRecti, "glRecti");
   pragma Import (Stdcall, glRects, "glRects");
   pragma Import (Stdcall, glRectdv, "glRectdv");
   pragma Import (Stdcall, glRectfv, "glRectfv");
   pragma Import (Stdcall, glRectiv, "glRectiv");
   pragma Import (Stdcall, glRectsv, "glRectsv");
   pragma Import (Stdcall, glShadeModel, "glShadeModel");
   pragma Import (Stdcall, glLightf, "glLightf");
   pragma Import (Stdcall, glLighti, "glLighti");
   pragma Import (Stdcall, glLightfv, "glLightfv");
   pragma Import (Stdcall, glLightiv, "glLightiv");
   pragma Import (Stdcall, glGetLightfv, "glGetLightfv");
   pragma Import (Stdcall, glGetLightiv, "glGetLightiv");
   pragma Import (Stdcall, glLightModelf, "glLightModelf");
   pragma Import (Stdcall, glLightModeli, "glLightModeli");
   pragma Import (Stdcall, glLightModelfv, "glLightModelfv");
   pragma Import (Stdcall, glLightModeliv, "glLightModeliv");
   pragma Import (Stdcall, glMaterialf, "glMaterialf");
   pragma Import (Stdcall, glMateriali, "glMateriali");
   pragma Import (Stdcall, glMaterialfv, "glMaterialfv");
   pragma Import (Stdcall, glMaterialiv, "glMaterialiv");
   pragma Import (Stdcall, glGetMaterialfv, "glGetMaterialfv");
   pragma Import (Stdcall, glGetMaterialiv, "glGetMaterialiv");
   pragma Import (Stdcall, glColorMaterial, "glColorMaterial");
   pragma Import (Stdcall, glPixelZoom, "glPixelZoom");
   pragma Import (Stdcall, glPixelStoref, "glPixelStoref");
   pragma Import (Stdcall, glPixelStorei, "glPixelStorei");
   pragma Import (Stdcall, glPixelTransferf, "glPixelTransferf");
   pragma Import (Stdcall, glPixelTransferi, "glPixelTransferi");
   pragma Import (Stdcall, glPixelMapfv, "glPixelMapfv");
   pragma Import (Stdcall, glPixelMapuiv, "glPixelMapuiv");
   pragma Import (Stdcall, glPixelMapusv, "glPixelMapusv");
   pragma Import (Stdcall, glGetPixelMapfv, "glGetPixelMapfv");
   pragma Import (Stdcall, glGetPixelMapuiv, "glGetPixelMapuiv");
   pragma Import (Stdcall, glGetPixelMapusv, "glGetPixelMapusv");
   pragma Import (Stdcall, glBitmap, "glBitmap");
   pragma Import (Stdcall, glReadPixels, "glReadPixels");
   pragma Import (Stdcall, glDrawPixels, "glDrawPixels");
   pragma Import (Stdcall, glCopyPixels, "glCopyPixels");
   pragma Import (Stdcall, glStencilFunc, "glStencilFunc");
   pragma Import (Stdcall, glStencilMask, "glStencilMask");
   pragma Import (Stdcall, glStencilOp, "glStencilOp");
   pragma Import (Stdcall, glClearStencil, "glClearStencil");
   pragma Import (Stdcall, glTexGend, "glTexGend");
   pragma Import (Stdcall, glTexGenf, "glTexGenf");
   pragma Import (Stdcall, glTexGeni, "glTexGeni");
   pragma Import (Stdcall, glTexGendv, "glTexGendv");
   pragma Import (Stdcall, glTexGenfv, "glTexGenfv");
   pragma Import (Stdcall, glTexGeniv, "glTexGeniv");
   pragma Import (Stdcall, glGetTexGendv, "glGetTexGendv");
   pragma Import (Stdcall, glGetTexGenfv, "glGetTexGenfv");
   pragma Import (Stdcall, glGetTexGeniv, "glGetTexGeniv");
   pragma Import (Stdcall, glTexEnvf, "glTexEnvf");
   pragma Import (Stdcall, glTexEnvi, "glTexEnvi");
   pragma Import (Stdcall, glTexEnvfv, "glTexEnvfv");
   pragma Import (Stdcall, glTexEnviv, "glTexEnviv");
   pragma Import (Stdcall, glGetTexEnvfv, "glGetTexEnvfv");
   pragma Import (Stdcall, glGetTexEnviv, "glGetTexEnviv");
   pragma Import (Stdcall, glTexParameterf, "glTexParameterf");
   pragma Import (Stdcall, glTexParameteri, "glTexParameteri");
   pragma Import (Stdcall, glTexParameterfv, "glTexParameterfv");
   pragma Import (Stdcall, glTexParameteriv, "glTexParameteriv");
   pragma Import (Stdcall, glGetTexParameterfv, "glGetTexParameterfv");
   pragma Import (Stdcall, glGetTexParameteriv, "glGetTexParameteriv");
   pragma Import (Stdcall, glGetTexLevelParameterfv, "glGetTexLevelParameterfv");
   pragma Import (Stdcall, glGetTexLevelParameteriv, "glGetTexLevelParameteriv");
   pragma Import (Stdcall, glTexImage1D, "glTexImage1D");
   pragma Import (Stdcall, glTexImage2D, "glTexImage2D");
   pragma Import (Stdcall, glGetTexImage, "glGetTexImage");
   pragma Import (Stdcall, glMap1d, "glMap1d");
   pragma Import (Stdcall, glMap1f, "glMap1f");
   pragma Import (Stdcall, glMap2d, "glMap2d");
   pragma Import (Stdcall, glMap2f, "glMap2f");
   pragma Import (Stdcall, glGetMapdv, "glGetMapdv");
   pragma Import (Stdcall, glGetMapfv, "glGetMapfv");
   pragma Import (Stdcall, glGetMapiv, "glGetMapiv");
   pragma Import (Stdcall, glEvalCoord1d, "glEvalCoord1d");
   pragma Import (Stdcall, glEvalCoord1f, "glEvalCoord1f");
   pragma Import (Stdcall, glEvalCoord1dv, "glEvalCoord1dv");
   pragma Import (Stdcall, glEvalCoord1fv, "glEvalCoord1fv");
   pragma Import (Stdcall, glEvalCoord2d, "glEvalCoord2d");
   pragma Import (Stdcall, glEvalCoord2f, "glEvalCoord2f");
   pragma Import (Stdcall, glEvalCoord2dv, "glEvalCoord2dv");
   pragma Import (Stdcall, glEvalCoord2fv, "glEvalCoord2fv");
   pragma Import (Stdcall, glMapGrid1d, "glMapGrid1d");
   pragma Import (Stdcall, glMapGrid1f, "glMapGrid1f");
   pragma Import (Stdcall, glMapGrid2d, "glMapGrid2d");
   pragma Import (Stdcall, glMapGrid2f, "glMapGrid2f");
   pragma Import (Stdcall, glEvalPoint1, "glEvalPoint1");
   pragma Import (Stdcall, glEvalPoint2, "glEvalPoint2");
   pragma Import (Stdcall, glEvalMesh1, "glEvalMesh1");
   pragma Import (Stdcall, glEvalMesh2, "glEvalMesh2");
   pragma Import (Stdcall, glFogf, "glFogf");
   pragma Import (Stdcall, glFogi, "glFogi");
   pragma Import (Stdcall, glFogfv, "glFogfv");
   pragma Import (Stdcall, glFogiv, "glFogiv");
   pragma Import (Stdcall, glFeedbackBuffer, "glFeedbackBuffer");
   pragma Import (Stdcall, glPassThrough, "glPassThrough");
   pragma Import (Stdcall, glSelectBuffer, "glSelectBuffer");
   pragma Import (Stdcall, glInitNames, "glInitNames");
   pragma Import (Stdcall, glLoadName, "glLoadName");
   pragma Import (Stdcall, glPushName, "glPushName");
   pragma Import (Stdcall, glPopName, "glPopName");
   pragma Import (Stdcall, glGenTextures, "glGenTextures");
   pragma Import (Stdcall, glDeleteTextures, "glDeleteTextures");
   pragma Import (Stdcall, glBindTexture, "glBindTexture");
   pragma Import (Stdcall, glPrioritizeTextures, "glPrioritizeTextures");
   pragma Import (Stdcall, glAreTexturesResident, "glAreTexturesResident");
   pragma Import (Stdcall, glIsTexture, "glIsTexture");
   pragma Import (Stdcall, glTexSubImage1D, "glTexSubImage1D");
   pragma Import (Stdcall, glTexSubImage2D, "glTexSubImage2D");
   pragma Import (Stdcall, glCopyTexImage1D, "glCopyTexImage1D");
   pragma Import (Stdcall, glCopyTexImage2D, "glCopyTexImage2D");
   pragma Import (Stdcall, glCopyTexSubImage1D, "glCopyTexSubImage1D");
   pragma Import (Stdcall, glCopyTexSubImage2D, "glCopyTexSubImage2D");
   pragma Import (Stdcall, glVertexPointer, "glVertexPointer");
   pragma Import (Stdcall, glNormalPointer, "glNormalPointer");
   pragma Import (Stdcall, glColorPointer, "glColorPointer");
   pragma Import (Stdcall, glIndexPointer, "glIndexPointer");
   pragma Import (Stdcall, glTexCoordPointer, "glTexCoordPointer");
   pragma Import (Stdcall, glEdgeFlagPointer, "glEdgeFlagPointer");
   pragma Import (Stdcall, glGetPointerv, "glGetPointerv");
   pragma Import (Stdcall, glArrayElement, "glArrayElement");
   pragma Import (Stdcall, glDrawArrays, "glDrawArrays");
   pragma Import (Stdcall, glDrawElements, "glDrawElements");
   pragma Import (Stdcall, glInterleavedArrays, "glInterleavedArrays");
   pragma Import (Stdcall, glDrawRangeElements, "glDrawRangeElements");
   pragma Import (Stdcall, glTexImage3D, "glTexImage3D");
   pragma Import (Stdcall, glTexSubImage3D, "glTexSubImage3D");
   pragma Import (Stdcall, glCopyTexSubImage3D, "glCopyTexSubImage3D");
   pragma Import (Stdcall, glColorTable, "glColorTable");
   pragma Import (Stdcall, glColorSubTable, "glColorSubTable");
   pragma Import (Stdcall, glColorTableParameteriv, "glColorTableParameteriv");
   pragma Import (Stdcall, glColorTableParameterfv, "glColorTableParameterfv");
   pragma Import (Stdcall, glCopyColorSubTable, "glCopyColorSubTable");
   pragma Import (Stdcall, glCopyColorTable, "glCopyColorTable");
   pragma Import (Stdcall, glGetColorTable, "glGetColorTable");
   pragma Import (Stdcall, glGetColorTableParameterfv, "glGetColorTableParameterfv");
   pragma Import (Stdcall, glGetColorTableParameteriv, "glGetColorTableParameteriv");
   pragma Import (Stdcall, glBlendEquation, "glBlendEquation");
   pragma Import (Stdcall, glBlendColor, "glBlendColor");
   pragma Import (Stdcall, glHistogram, "glHistogram");
   pragma Import (Stdcall, glResetHistogram, "glResetHistogram");
   pragma Import (Stdcall, glGetHistogram, "glGetHistogram");
   pragma Import (Stdcall, glGetHistogramParameterfv, "glGetHistogramParameterfv");
   pragma Import (Stdcall, glGetHistogramParameteriv, "glGetHistogramParameteriv");
   pragma Import (Stdcall, glMinmax, "glMinmax");
   pragma Import (Stdcall, glResetMinmax, "glResetMinmax");
   pragma Import (Stdcall, glGetMinmax, "glGetMinmax");
   pragma Import (Stdcall, glGetMinmaxParameterfv, "glGetMinmaxParameterfv");
   pragma Import (Stdcall, glGetMinmaxParameteriv, "glGetMinmaxParameteriv");
   pragma Import (Stdcall, glConvolutionFilter1D, "glConvolutionFilter1D");
   pragma Import (Stdcall, glConvolutionFilter2D, "glConvolutionFilter2D");
   pragma Import (Stdcall, glConvolutionParameterf, "glConvolutionParameterf");
   pragma Import (Stdcall, glConvolutionParameterfv, "glConvolutionParameterfv");
   pragma Import (Stdcall, glConvolutionParameteri, "glConvolutionParameteri");
   pragma Import (Stdcall, glConvolutionParameteriv, "glConvolutionParameteriv");
   pragma Import (Stdcall, glCopyConvolutionFilter1D, "glCopyConvolutionFilter1D");
   pragma Import (Stdcall, glCopyConvolutionFilter2D, "glCopyConvolutionFilter2D");
   pragma Import (Stdcall, glGetConvolutionFilter, "glGetConvolutionFilter");
   pragma Import (Stdcall, glGetConvolutionParameterfv, "glGetConvolutionParameterfv");
   pragma Import (Stdcall, glGetConvolutionParameteriv, "glGetConvolutionParameteriv");
   pragma Import (Stdcall, glSeparableFilter2D, "glSeparableFilter2D");
   pragma Import (Stdcall, glGetSeparableFilter, "glGetSeparableFilter");
   pragma Import (Stdcall, glActiveTexture, "glActiveTexture");
   pragma Import (Stdcall, glClientActiveTexture, "glClientActiveTexture");
   pragma Import (Stdcall, glCompressedTexImage1D, "glCompressedTexImage1D");
   pragma Import (Stdcall, glCompressedTexImage2D, "glCompressedTexImage2D");
   pragma Import (Stdcall, glCompressedTexImage3D, "glCompressedTexImage3D");
   pragma Import (Stdcall, glCompressedTexSubImage1D, "glCompressedTexSubImage1D");
   pragma Import (Stdcall, glCompressedTexSubImage2D, "glCompressedTexSubImage2D");
   pragma Import (Stdcall, glCompressedTexSubImage3D, "glCompressedTexSubImage3D");
   pragma Import (Stdcall, glGetCompressedTexImage, "glGetCompressedTexImage");
   pragma Import (Stdcall, glMultiTexCoord1d, "glMultiTexCoord1d");
   pragma Import (Stdcall, glMultiTexCoord1dv, "glMultiTexCoord1dv");
   pragma Import (Stdcall, glMultiTexCoord1f, "glMultiTexCoord1f");
   pragma Import (Stdcall, glMultiTexCoord1fv, "glMultiTexCoord1fv");
   pragma Import (Stdcall, glMultiTexCoord1i, "glMultiTexCoord1i");
   pragma Import (Stdcall, glMultiTexCoord1iv, "glMultiTexCoord1iv");
   pragma Import (Stdcall, glMultiTexCoord1s, "glMultiTexCoord1s");
   pragma Import (Stdcall, glMultiTexCoord1sv, "glMultiTexCoord1sv");
   pragma Import (Stdcall, glMultiTexCoord2d, "glMultiTexCoord2d");
   pragma Import (Stdcall, glMultiTexCoord2dv, "glMultiTexCoord2dv");
   pragma Import (Stdcall, glMultiTexCoord2f, "glMultiTexCoord2f");
   pragma Import (Stdcall, glMultiTexCoord2fv, "glMultiTexCoord2fv");
   pragma Import (Stdcall, glMultiTexCoord2i, "glMultiTexCoord2i");
   pragma Import (Stdcall, glMultiTexCoord2iv, "glMultiTexCoord2iv");
   pragma Import (Stdcall, glMultiTexCoord2s, "glMultiTexCoord2s");
   pragma Import (Stdcall, glMultiTexCoord2sv, "glMultiTexCoord2sv");
   pragma Import (Stdcall, glMultiTexCoord3d, "glMultiTexCoord3d");
   pragma Import (Stdcall, glMultiTexCoord3dv, "glMultiTexCoord3dv");
   pragma Import (Stdcall, glMultiTexCoord3f, "glMultiTexCoord3f");
   pragma Import (Stdcall, glMultiTexCoord3fv, "glMultiTexCoord3fv");
   pragma Import (Stdcall, glMultiTexCoord3i, "glMultiTexCoord3i");
   pragma Import (Stdcall, glMultiTexCoord3iv, "glMultiTexCoord3iv");
   pragma Import (Stdcall, glMultiTexCoord3s, "glMultiTexCoord3s");
   pragma Import (Stdcall, glMultiTexCoord3sv, "glMultiTexCoord3sv");
   pragma Import (Stdcall, glMultiTexCoord4d, "glMultiTexCoord4d");
   pragma Import (Stdcall, glMultiTexCoord4dv, "glMultiTexCoord4dv");
   pragma Import (Stdcall, glMultiTexCoord4f, "glMultiTexCoord4f");
   pragma Import (Stdcall, glMultiTexCoord4fv, "glMultiTexCoord4fv");
   pragma Import (Stdcall, glMultiTexCoord4i, "glMultiTexCoord4i");
   pragma Import (Stdcall, glMultiTexCoord4iv, "glMultiTexCoord4iv");
   pragma Import (Stdcall, glMultiTexCoord4s, "glMultiTexCoord4s");
   pragma Import (Stdcall, glMultiTexCoord4sv, "glMultiTexCoord4sv");
   pragma Import (Stdcall, glLoadTransposeMatrixd, "glLoadTransposeMatrixd");
   pragma Import (Stdcall, glLoadTransposeMatrixf, "glLoadTransposeMatrixf");
   pragma Import (Stdcall, glMultTransposeMatrixd, "glMultTransposeMatrixd");
   pragma Import (Stdcall, glMultTransposeMatrixf, "glMultTransposeMatrixf");
   pragma Import (Stdcall, glSampleCoverage, "glSampleCoverage");
   pragma Import (Stdcall, glSamplePass, "glSamplePass");

end Sf.Window.GL;
