Merge branch 'radeon-rewrite' of git+ssh://agd5f@git.freedesktop.org/git/mesa/mesa...
[mesa.git] / include / GL / gl.h
index cd417cf69206495f32ce61d21693dbce5d161daf..aad51214fbeae31ea795adc75c2746d8c2c7c416 100644 (file)
@@ -1,10 +1,8 @@
-/* $Id: gl.h,v 1.12 1999/10/17 21:42:32 brianp Exp $ */
-
 /*
  * Mesa 3-D graphics library
- * Version:  3.1
+ * Version:  7.5
  *
- * Copyright (C) 1999  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
  */
 
 
-
-
-#ifndef GL_H
-#define GL_H
+#ifndef __gl_h_
+#define __gl_h_
 
 #if defined(USE_MGL_NAMESPACE)
 #include "gl_mangle.h"
 #endif
 
 
+/**********************************************************************
+ * Begin system-specific stuff. Do not do any of this when building
+ * for SciTech SNAP, as this is all done before this header file is
+ * included. 
+ */
+#if !defined(__SCITECH_SNAP__)
+
 #if defined(__BEOS__)
 #include <stdlib.h>     /* to get some BeOS-isms */
 #endif
 
-
 #if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO))
 #define OPENSTEP
 #endif
 
-
-#if defined(_WIN32) && !defined(__WIN32__)
-#      define __WIN32__
+#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__)
+#define __WIN32__
 #endif
 
-#if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN32__))
-#      pragma warning( disable : 4244 ) /* '=' : conversion from 'const double ' to 'float ', possible loss of data */
-#      pragma warning( disable : 4018 ) /* '<' : signed/unsigned mismatch */
-#      pragma warning( disable : 4305 ) /* '=' : truncation from 'const double ' to 'float ' */
-#      pragma warning( disable : 4550 ) /* 'function' undefined; assuming extern returning int */
-#      pragma warning( disable : 4761 ) /* integral size mismatch in argument; conversion supplied */
-#      if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
-#              define GLAPI __declspec(dllexport)
-#     define WGLAPI __declspec(dllexport)
-#      elif defined(_MSC_VER) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
-#              define GLAPI __declspec(dllimport)
-#     define WGLAPI __declspec(dllimport)
-#      else /* for use with static link lib build of Win32 edition only */
-#              define GLAPI extern
-#     define WGLAPI __declspec(dllimport)
-#      endif /* _STATIC_MESA support */
-#      define GLAPIENTRY __stdcall
-#      define GLCALLBACK __stdcall
-#      define GLWINAPI __stdcall
-#      define GLWINAPIV __cdecl
-#else
-/* non-Windows compilation */
-#      define GLAPI extern
-#      define GLAPIENTRY
-#      define GLCALLBACK
-#      define GLWINAPI
-#      define GLWINAPIV
-#endif /* WIN32 / CYGWIN32 bracket */
-
-/* compatability guard so we don't need to change client code */
-
-#if defined(_WIN32) && !defined(_WINDEF_) && !defined(OPENSTEP)
-#      if !defined(MESA_MINWARN)
-#              pragma message( "note: WINDOWS.H not included, providing Mesa definition of CALLBACK macro" )
-#              pragma message( "----: and PROC typedef. If you receive compiler warnings about either ")
-#              pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/gl.h" )
-#      endif
-#      define CALLBACK GLCALLBACK
-typedef int (GLAPIENTRY *PROC)();
-typedef void *HGLRC;
-typedef void *HDC;
-typedef unsigned long COLORREF;
+#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__))
+#  if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
+#    define GLAPI __declspec(dllexport)
+#  elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
+#    define GLAPI __declspec(dllimport)
+#  else /* for use with static link lib build of Win32 edition only */
+#    define GLAPI extern
+#  endif /* _STATIC_MESA support */
+#  if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE)  /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */
+#    define GLAPIENTRY 
+#  else
+#    define GLAPIENTRY __stdcall
+#  endif
+#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */
+#  define GLAPI extern
+#  define GLAPIENTRY __stdcall
+#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303
+#  define GLAPI __attribute__((visibility("default")))
+#  define GLAPIENTRY
+#endif /* WIN32 && !CYGWIN */
+
+#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__)
+#  define PRAGMA_EXPORT_SUPPORTED              1
 #endif
 
-#if defined(_WIN32) && !defined(_WINGDI_) && !defined(OPENSTEP)
-#      if !defined(MESA_MINWARN)
-#              pragma message( "note: WINDOWS.H not included, providing Mesa definition of wgl functions" )
-#              pragma message( "----: and macros. If you receive compiler warnings about any being multiply ")
-#              pragma message( "----: defined you should include WINDOWS.H priot to gl/gl.h" )
-#      endif
-#      define WGL_FONT_LINES      0
-#      define WGL_FONT_POLYGONS   1
-#      ifdef UNICODE
-#              define wglUseFontBitmaps  wglUseFontBitmapsW
-#              define wglUseFontOutlines  wglUseFontOutlinesW
-#      else
-#              define wglUseFontBitmaps  wglUseFontBitmapsA
-#              define wglUseFontOutlines  wglUseFontOutlinesA
-#      endif /* !UNICODE */
-typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
-typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
-typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
-#include <gl/mesa_wgl.h>
+/*
+ * WINDOWS: Include windows.h here to define APIENTRY.
+ * It is also useful when applications include this file by
+ * including only glut.h, since glut.h depends on windows.h.
+ * Applications needing to include windows.h with parms other
+ * than "WIN32_LEAN_AND_MEAN" may include windows.h before
+ * glut.h or gl.h.
+ */
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
 #endif
 
-
-#ifdef __cplusplus
-extern "C" {
+#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_WIN32_WCE) \
+     && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) \
+     && !defined(__CYGWIN__) || defined(__MINGW32__)
+#include <GL/mesa_wgl.h>
 #endif
 
-
-#ifdef macintosh
-       #pragma enumsalwaysint on
-       #if PRAGMA_IMPORT_SUPPORTED
-       #pragma import on
-       #endif
+#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED
+#pragma import on
 #endif
 
+#ifndef GLAPI
+#define GLAPI extern
+#endif
 
+#ifndef GLAPIENTRY
+#define GLAPIENTRY
+#endif
 
-/*
- * Apps can test for this symbol to do conditional compilation if needed.
- */
-#define MESA
-
-#define MESA_MAJOR_VERSION 3
-#define MESA_MINOR_VERSION 1
-
-
-#define GL_VERSION_1_1   1
-#define GL_VERSION_1_2   1
-
+#ifndef APIENTRY
+#define APIENTRY GLAPIENTRY
+#endif
 
-/*
- *
- * Enumerations
- *
- */
+/* "P" suffix to be used for a pointer to a function */
+#ifndef APIENTRYP
+#define APIENTRYP APIENTRY *
+#endif
 
-typedef enum {
-       /* Boolean values */
-       GL_FALSE                        = 0,
-       GL_TRUE                         = 1,
-
-       /* Data types */
-       GL_BYTE                         = 0x1400,
-       GL_UNSIGNED_BYTE                = 0x1401,
-       GL_SHORT                        = 0x1402,
-       GL_UNSIGNED_SHORT               = 0x1403,
-       GL_INT                          = 0x1404,
-       GL_UNSIGNED_INT                 = 0x1405,
-       GL_FLOAT                        = 0x1406,
-       GL_DOUBLE                       = 0x140A,
-       GL_2_BYTES                      = 0x1407,
-       GL_3_BYTES                      = 0x1408,
-       GL_4_BYTES                      = 0x1409,
-
-       /* Primitives */
-       GL_POINTS                       = 0x0000,
-       GL_LINES                        = 0x0001,
-       GL_LINE_LOOP                    = 0x0002,
-       GL_LINE_STRIP                   = 0x0003,
-       GL_TRIANGLES                    = 0x0004,
-       GL_TRIANGLE_STRIP               = 0x0005,
-       GL_TRIANGLE_FAN                 = 0x0006,
-       GL_QUADS                        = 0x0007,
-       GL_QUAD_STRIP                   = 0x0008,
-       GL_POLYGON                      = 0x0009,
-
-       /* Vertex Arrays */
-       GL_VERTEX_ARRAY                 = 0x8074,
-       GL_NORMAL_ARRAY                 = 0x8075,
-       GL_COLOR_ARRAY                  = 0x8076,
-       GL_INDEX_ARRAY                  = 0x8077,
-       GL_TEXTURE_COORD_ARRAY          = 0x8078,
-       GL_EDGE_FLAG_ARRAY              = 0x8079,
-       GL_VERTEX_ARRAY_SIZE            = 0x807A,
-       GL_VERTEX_ARRAY_TYPE            = 0x807B,
-       GL_VERTEX_ARRAY_STRIDE          = 0x807C,
-       GL_NORMAL_ARRAY_TYPE            = 0x807E,
-       GL_NORMAL_ARRAY_STRIDE          = 0x807F,
-       GL_COLOR_ARRAY_SIZE             = 0x8081,
-       GL_COLOR_ARRAY_TYPE             = 0x8082,
-       GL_COLOR_ARRAY_STRIDE           = 0x8083,
-       GL_INDEX_ARRAY_TYPE             = 0x8085,
-       GL_INDEX_ARRAY_STRIDE           = 0x8086,
-       GL_TEXTURE_COORD_ARRAY_SIZE     = 0x8088,
-       GL_TEXTURE_COORD_ARRAY_TYPE     = 0x8089,
-       GL_TEXTURE_COORD_ARRAY_STRIDE   = 0x808A,
-       GL_EDGE_FLAG_ARRAY_STRIDE       = 0x808C,
-       GL_VERTEX_ARRAY_POINTER         = 0x808E,
-       GL_NORMAL_ARRAY_POINTER         = 0x808F,
-       GL_COLOR_ARRAY_POINTER          = 0x8090,
-       GL_INDEX_ARRAY_POINTER          = 0x8091,
-       GL_TEXTURE_COORD_ARRAY_POINTER  = 0x8092,
-       GL_EDGE_FLAG_ARRAY_POINTER      = 0x8093,
-       GL_V2F                          = 0x2A20,
-       GL_V3F                          = 0x2A21,
-       GL_C4UB_V2F                     = 0x2A22,
-       GL_C4UB_V3F                     = 0x2A23,
-       GL_C3F_V3F                      = 0x2A24,
-       GL_N3F_V3F                      = 0x2A25,
-       GL_C4F_N3F_V3F                  = 0x2A26,
-       GL_T2F_V3F                      = 0x2A27,
-       GL_T4F_V4F                      = 0x2A28,
-       GL_T2F_C4UB_V3F                 = 0x2A29,
-       GL_T2F_C3F_V3F                  = 0x2A2A,
-       GL_T2F_N3F_V3F                  = 0x2A2B,
-       GL_T2F_C4F_N3F_V3F              = 0x2A2C,
-       GL_T4F_C4F_N3F_V4F              = 0x2A2D,
-
-       /* Matrix Mode */
-       GL_MATRIX_MODE                  = 0x0BA0,
-       GL_MODELVIEW                    = 0x1700,
-       GL_PROJECTION                   = 0x1701,
-       GL_TEXTURE                      = 0x1702,
-
-       /* Points */
-       GL_POINT_SMOOTH                 = 0x0B10,
-       GL_POINT_SIZE                   = 0x0B11,
-       GL_POINT_SIZE_GRANULARITY       = 0x0B13,
-       GL_POINT_SIZE_RANGE             = 0x0B12,
-
-       /* Lines */
-       GL_LINE_SMOOTH                  = 0x0B20,
-       GL_LINE_STIPPLE                 = 0x0B24,
-       GL_LINE_STIPPLE_PATTERN         = 0x0B25,
-       GL_LINE_STIPPLE_REPEAT          = 0x0B26,
-       GL_LINE_WIDTH                   = 0x0B21,
-       GL_LINE_WIDTH_GRANULARITY       = 0x0B23,
-       GL_LINE_WIDTH_RANGE             = 0x0B22,
-
-       /* Polygons */
-       GL_POINT                        = 0x1B00,
-       GL_LINE                         = 0x1B01,
-       GL_FILL                         = 0x1B02,
-       GL_CW                           = 0x0900,
-       GL_CCW                          = 0x0901,
-       GL_FRONT                        = 0x0404,
-       GL_BACK                         = 0x0405,
-       GL_POLYGON_MODE                 = 0x0B40,
-       GL_POLYGON_SMOOTH               = 0x0B41,
-       GL_POLYGON_STIPPLE              = 0x0B42,
-       GL_EDGE_FLAG                    = 0x0B43,
-       GL_CULL_FACE                    = 0x0B44,
-       GL_CULL_FACE_MODE               = 0x0B45,
-       GL_FRONT_FACE                   = 0x0B46,
-       GL_POLYGON_OFFSET_FACTOR        = 0x8038,
-       GL_POLYGON_OFFSET_UNITS         = 0x2A00,
-       GL_POLYGON_OFFSET_POINT         = 0x2A01,
-       GL_POLYGON_OFFSET_LINE          = 0x2A02,
-       GL_POLYGON_OFFSET_FILL          = 0x8037,
-
-       /* Display Lists */
-       GL_COMPILE                      = 0x1300,
-       GL_COMPILE_AND_EXECUTE          = 0x1301,
-       GL_LIST_BASE                    = 0x0B32,
-       GL_LIST_INDEX                   = 0x0B33,
-       GL_LIST_MODE                    = 0x0B30,
-
-       /* Depth buffer */
-       GL_NEVER                        = 0x0200,
-       GL_LESS                         = 0x0201,
-       GL_GEQUAL                       = 0x0206,
-       GL_LEQUAL                       = 0x0203,
-       GL_GREATER                      = 0x0204,
-       GL_NOTEQUAL                     = 0x0205,
-       GL_EQUAL                        = 0x0202,
-       GL_ALWAYS                       = 0x0207,
-       GL_DEPTH_TEST                   = 0x0B71,
-       GL_DEPTH_BITS                   = 0x0D56,
-       GL_DEPTH_CLEAR_VALUE            = 0x0B73,
-       GL_DEPTH_FUNC                   = 0x0B74,
-       GL_DEPTH_RANGE                  = 0x0B70,
-       GL_DEPTH_WRITEMASK              = 0x0B72,
-       GL_DEPTH_COMPONENT              = 0x1902,
-
-       /* Lighting */
-       GL_LIGHTING                     = 0x0B50,
-       GL_LIGHT0                       = 0x4000,
-       GL_LIGHT1                       = 0x4001,
-       GL_LIGHT2                       = 0x4002,
-       GL_LIGHT3                       = 0x4003,
-       GL_LIGHT4                       = 0x4004,
-       GL_LIGHT5                       = 0x4005,
-       GL_LIGHT6                       = 0x4006,
-       GL_LIGHT7                       = 0x4007,
-       GL_SPOT_EXPONENT                = 0x1205,
-       GL_SPOT_CUTOFF                  = 0x1206,
-       GL_CONSTANT_ATTENUATION         = 0x1207,
-       GL_LINEAR_ATTENUATION           = 0x1208,
-       GL_QUADRATIC_ATTENUATION        = 0x1209,
-       GL_AMBIENT                      = 0x1200,
-       GL_DIFFUSE                      = 0x1201,
-       GL_SPECULAR                     = 0x1202,
-       GL_SHININESS                    = 0x1601,
-       GL_EMISSION                     = 0x1600,
-       GL_POSITION                     = 0x1203,
-       GL_SPOT_DIRECTION               = 0x1204,
-       GL_AMBIENT_AND_DIFFUSE          = 0x1602,
-       GL_COLOR_INDEXES                = 0x1603,
-       GL_LIGHT_MODEL_TWO_SIDE         = 0x0B52,
-       GL_LIGHT_MODEL_LOCAL_VIEWER     = 0x0B51,
-       GL_LIGHT_MODEL_AMBIENT          = 0x0B53,
-       GL_FRONT_AND_BACK               = 0x0408,
-       GL_SHADE_MODEL                  = 0x0B54,
-       GL_FLAT                         = 0x1D00,
-       GL_SMOOTH                       = 0x1D01,
-       GL_COLOR_MATERIAL               = 0x0B57,
-       GL_COLOR_MATERIAL_FACE          = 0x0B55,
-       GL_COLOR_MATERIAL_PARAMETER     = 0x0B56,
-       GL_NORMALIZE                    = 0x0BA1,
-
-       /* User clipping planes */
-       GL_CLIP_PLANE0                  = 0x3000,
-       GL_CLIP_PLANE1                  = 0x3001,
-       GL_CLIP_PLANE2                  = 0x3002,
-       GL_CLIP_PLANE3                  = 0x3003,
-       GL_CLIP_PLANE4                  = 0x3004,
-       GL_CLIP_PLANE5                  = 0x3005,
-
-       /* Accumulation buffer */
-       GL_ACCUM_RED_BITS               = 0x0D58,
-       GL_ACCUM_GREEN_BITS             = 0x0D59,
-       GL_ACCUM_BLUE_BITS              = 0x0D5A,
-       GL_ACCUM_ALPHA_BITS             = 0x0D5B,
-       GL_ACCUM_CLEAR_VALUE            = 0x0B80,
-       GL_ACCUM                        = 0x0100,
-       GL_ADD                          = 0x0104,
-       GL_LOAD                         = 0x0101,
-       GL_MULT                         = 0x0103,
-       GL_RETURN                       = 0x0102,
-
-       /* Alpha testing */
-       GL_ALPHA_TEST                   = 0x0BC0,
-       GL_ALPHA_TEST_REF               = 0x0BC2,
-       GL_ALPHA_TEST_FUNC              = 0x0BC1,
-
-       /* Blending */
-       GL_BLEND                        = 0x0BE2,
-       GL_BLEND_SRC                    = 0x0BE1,
-       GL_BLEND_DST                    = 0x0BE0,
-       GL_ZERO                         = 0,
-       GL_ONE                          = 1,
-       GL_SRC_COLOR                    = 0x0300,
-       GL_ONE_MINUS_SRC_COLOR          = 0x0301,
-       GL_DST_COLOR                    = 0x0306,
-       GL_ONE_MINUS_DST_COLOR          = 0x0307,
-       GL_SRC_ALPHA                    = 0x0302,
-       GL_ONE_MINUS_SRC_ALPHA          = 0x0303,
-       GL_DST_ALPHA                    = 0x0304,
-       GL_ONE_MINUS_DST_ALPHA          = 0x0305,
-       GL_SRC_ALPHA_SATURATE           = 0x0308,
-       GL_CONSTANT_COLOR               = 0x8001,
-       GL_ONE_MINUS_CONSTANT_COLOR     = 0x8002,
-       GL_CONSTANT_ALPHA               = 0x8003,
-       GL_ONE_MINUS_CONSTANT_ALPHA     = 0x8004,
-
-       /* Render Mode */
-       GL_FEEDBACK                     = 0x1C01,
-       GL_RENDER                       = 0x1C00,
-       GL_SELECT                       = 0x1C02,
-
-       /* Feedback */
-       GL_2D                           = 0x0600,
-       GL_3D                           = 0x0601,
-       GL_3D_COLOR                     = 0x0602,
-       GL_3D_COLOR_TEXTURE             = 0x0603,
-       GL_4D_COLOR_TEXTURE             = 0x0604,
-       GL_POINT_TOKEN                  = 0x0701,
-       GL_LINE_TOKEN                   = 0x0702,
-       GL_LINE_RESET_TOKEN             = 0x0707,
-       GL_POLYGON_TOKEN                = 0x0703,
-       GL_BITMAP_TOKEN                 = 0x0704,
-       GL_DRAW_PIXEL_TOKEN             = 0x0705,
-       GL_COPY_PIXEL_TOKEN             = 0x0706,
-       GL_PASS_THROUGH_TOKEN           = 0x0700,
-       GL_FEEDBACK_BUFFER_POINTER      = 0x0DF0,
-       GL_FEEDBACK_BUFFER_SIZE         = 0x0DF1,
-       GL_FEEDBACK_BUFFER_TYPE         = 0x0DF2,
-
-       /* Selection */
-       GL_SELECTION_BUFFER_POINTER     = 0x0DF3,
-       GL_SELECTION_BUFFER_SIZE        = 0x0DF4,
-
-       /* Fog */
-       GL_FOG                          = 0x0B60,
-       GL_FOG_MODE                     = 0x0B65,
-       GL_FOG_DENSITY                  = 0x0B62,
-       GL_FOG_COLOR                    = 0x0B66,
-       GL_FOG_INDEX                    = 0x0B61,
-       GL_FOG_START                    = 0x0B63,
-       GL_FOG_END                      = 0x0B64,
-       GL_LINEAR                       = 0x2601,
-       GL_EXP                          = 0x0800,
-       GL_EXP2                         = 0x0801,
-
-       /* Logic Ops */
-       GL_LOGIC_OP                     = 0x0BF1,
-       GL_INDEX_LOGIC_OP               = 0x0BF1,
-       GL_COLOR_LOGIC_OP               = 0x0BF2,
-       GL_LOGIC_OP_MODE                = 0x0BF0,
-       GL_CLEAR                        = 0x1500,
-       GL_SET                          = 0x150F,
-       GL_COPY                         = 0x1503,
-       GL_COPY_INVERTED                = 0x150C,
-       GL_NOOP                         = 0x1505,
-       GL_INVERT                       = 0x150A,
-       GL_AND                          = 0x1501,
-       GL_NAND                         = 0x150E,
-       GL_OR                           = 0x1507,
-       GL_NOR                          = 0x1508,
-       GL_XOR                          = 0x1506,
-       GL_EQUIV                        = 0x1509,
-       GL_AND_REVERSE                  = 0x1502,
-       GL_AND_INVERTED                 = 0x1504,
-       GL_OR_REVERSE                   = 0x150B,
-       GL_OR_INVERTED                  = 0x150D,
-
-       /* Stencil */
-       GL_STENCIL_TEST                 = 0x0B90,
-       GL_STENCIL_WRITEMASK            = 0x0B98,
-       GL_STENCIL_BITS                 = 0x0D57,
-       GL_STENCIL_FUNC                 = 0x0B92,
-       GL_STENCIL_VALUE_MASK           = 0x0B93,
-       GL_STENCIL_REF                  = 0x0B97,
-       GL_STENCIL_FAIL                 = 0x0B94,
-       GL_STENCIL_PASS_DEPTH_PASS      = 0x0B96,
-       GL_STENCIL_PASS_DEPTH_FAIL      = 0x0B95,
-       GL_STENCIL_CLEAR_VALUE          = 0x0B91,
-       GL_STENCIL_INDEX                = 0x1901,
-       GL_KEEP                         = 0x1E00,
-       GL_REPLACE                      = 0x1E01,
-       GL_INCR                         = 0x1E02,
-       GL_DECR                         = 0x1E03,
-
-       /* Buffers, Pixel Drawing/Reading */
-       GL_NONE                         = 0,
-       GL_LEFT                         = 0x0406,
-       GL_RIGHT                        = 0x0407,
-       /*GL_FRONT                      = 0x0404, */
-       /*GL_BACK                       = 0x0405, */
-       /*GL_FRONT_AND_BACK             = 0x0408, */
-       GL_FRONT_LEFT                   = 0x0400,
-       GL_FRONT_RIGHT                  = 0x0401,
-       GL_BACK_LEFT                    = 0x0402,
-       GL_BACK_RIGHT                   = 0x0403,
-       GL_AUX0                         = 0x0409,
-       GL_AUX1                         = 0x040A,
-       GL_AUX2                         = 0x040B,
-       GL_AUX3                         = 0x040C,
-       GL_COLOR_INDEX                  = 0x1900,
-       GL_RED                          = 0x1903,
-       GL_GREEN                        = 0x1904,
-       GL_BLUE                         = 0x1905,
-       GL_ALPHA                        = 0x1906,
-       GL_LUMINANCE                    = 0x1909,
-       GL_LUMINANCE_ALPHA              = 0x190A,
-       GL_ALPHA_BITS                   = 0x0D55,
-       GL_RED_BITS                     = 0x0D52,
-       GL_GREEN_BITS                   = 0x0D53,
-       GL_BLUE_BITS                    = 0x0D54,
-       GL_INDEX_BITS                   = 0x0D51,
-       GL_SUBPIXEL_BITS                = 0x0D50,
-       GL_AUX_BUFFERS                  = 0x0C00,
-       GL_READ_BUFFER                  = 0x0C02,
-       GL_DRAW_BUFFER                  = 0x0C01,
-       GL_DOUBLEBUFFER                 = 0x0C32,
-       GL_STEREO                       = 0x0C33,
-       GL_BITMAP                       = 0x1A00,
-       GL_COLOR                        = 0x1800,
-       GL_DEPTH                        = 0x1801,
-       GL_STENCIL                      = 0x1802,
-       GL_DITHER                       = 0x0BD0,
-       GL_RGB                          = 0x1907,
-       GL_RGBA                         = 0x1908,
-
-       /* Implementation limits */
-       GL_MAX_LIST_NESTING             = 0x0B31,
-       GL_MAX_ATTRIB_STACK_DEPTH       = 0x0D35,
-       GL_MAX_MODELVIEW_STACK_DEPTH    = 0x0D36,
-       GL_MAX_NAME_STACK_DEPTH         = 0x0D37,
-       GL_MAX_PROJECTION_STACK_DEPTH   = 0x0D38,
-       GL_MAX_TEXTURE_STACK_DEPTH      = 0x0D39,
-       GL_MAX_EVAL_ORDER               = 0x0D30,
-       GL_MAX_LIGHTS                   = 0x0D31,
-       GL_MAX_CLIP_PLANES              = 0x0D32,
-       GL_MAX_TEXTURE_SIZE             = 0x0D33,
-       GL_MAX_PIXEL_MAP_TABLE          = 0x0D34,
-       GL_MAX_VIEWPORT_DIMS            = 0x0D3A,
-       GL_MAX_CLIENT_ATTRIB_STACK_DEPTH= 0x0D3B,
-
-       /* Gets */
-       GL_ATTRIB_STACK_DEPTH           = 0x0BB0,
-       GL_CLIENT_ATTRIB_STACK_DEPTH    = 0x0BB1,
-       GL_COLOR_CLEAR_VALUE            = 0x0C22,
-       GL_COLOR_WRITEMASK              = 0x0C23,
-       GL_CURRENT_INDEX                = 0x0B01,
-       GL_CURRENT_COLOR                = 0x0B00,
-       GL_CURRENT_NORMAL               = 0x0B02,
-       GL_CURRENT_RASTER_COLOR         = 0x0B04,
-       GL_CURRENT_RASTER_DISTANCE      = 0x0B09,
-       GL_CURRENT_RASTER_INDEX         = 0x0B05,
-       GL_CURRENT_RASTER_POSITION      = 0x0B07,
-       GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06,
-       GL_CURRENT_RASTER_POSITION_VALID = 0x0B08,
-       GL_CURRENT_TEXTURE_COORDS       = 0x0B03,
-       GL_INDEX_CLEAR_VALUE            = 0x0C20,
-       GL_INDEX_MODE                   = 0x0C30,
-       GL_INDEX_WRITEMASK              = 0x0C21,
-       GL_MODELVIEW_MATRIX             = 0x0BA6,
-       GL_MODELVIEW_STACK_DEPTH        = 0x0BA3,
-       GL_NAME_STACK_DEPTH             = 0x0D70,
-       GL_PROJECTION_MATRIX            = 0x0BA7,
-       GL_PROJECTION_STACK_DEPTH       = 0x0BA4,
-       GL_RENDER_MODE                  = 0x0C40,
-       GL_RGBA_MODE                    = 0x0C31,
-       GL_TEXTURE_MATRIX               = 0x0BA8,
-       GL_TEXTURE_STACK_DEPTH          = 0x0BA5,
-       GL_VIEWPORT                     = 0x0BA2,
-
-       /* Evaluators */
-       GL_AUTO_NORMAL                  = 0x0D80,
-       GL_MAP1_COLOR_4                 = 0x0D90,
-       GL_MAP1_GRID_DOMAIN             = 0x0DD0,
-       GL_MAP1_GRID_SEGMENTS           = 0x0DD1,
-       GL_MAP1_INDEX                   = 0x0D91,
-       GL_MAP1_NORMAL                  = 0x0D92,
-       GL_MAP1_TEXTURE_COORD_1         = 0x0D93,
-       GL_MAP1_TEXTURE_COORD_2         = 0x0D94,
-       GL_MAP1_TEXTURE_COORD_3         = 0x0D95,
-       GL_MAP1_TEXTURE_COORD_4         = 0x0D96,
-       GL_MAP1_VERTEX_3                = 0x0D97,
-       GL_MAP1_VERTEX_4                = 0x0D98,
-       GL_MAP2_COLOR_4                 = 0x0DB0,
-       GL_MAP2_GRID_DOMAIN             = 0x0DD2,
-       GL_MAP2_GRID_SEGMENTS           = 0x0DD3,
-       GL_MAP2_INDEX                   = 0x0DB1,
-       GL_MAP2_NORMAL                  = 0x0DB2,
-       GL_MAP2_TEXTURE_COORD_1         = 0x0DB3,
-       GL_MAP2_TEXTURE_COORD_2         = 0x0DB4,
-       GL_MAP2_TEXTURE_COORD_3         = 0x0DB5,
-       GL_MAP2_TEXTURE_COORD_4         = 0x0DB6,
-       GL_MAP2_VERTEX_3                = 0x0DB7,
-       GL_MAP2_VERTEX_4                = 0x0DB8,
-       GL_COEFF                        = 0x0A00,
-       GL_DOMAIN                       = 0x0A02,
-       GL_ORDER                        = 0x0A01,
-
-       /* Hints */
-       GL_FOG_HINT                     = 0x0C54,
-       GL_LINE_SMOOTH_HINT             = 0x0C52,
-       GL_PERSPECTIVE_CORRECTION_HINT  = 0x0C50,
-       GL_POINT_SMOOTH_HINT            = 0x0C51,
-       GL_POLYGON_SMOOTH_HINT          = 0x0C53,
-       GL_DONT_CARE                    = 0x1100,
-       GL_FASTEST                      = 0x1101,
-       GL_NICEST                       = 0x1102,
-
-       /* Scissor box */
-       GL_SCISSOR_TEST                 = 0x0C11,
-       GL_SCISSOR_BOX                  = 0x0C10,
-
-       /* Pixel Mode / Transfer */
-       GL_MAP_COLOR                    = 0x0D10,
-       GL_MAP_STENCIL                  = 0x0D11,
-       GL_INDEX_SHIFT                  = 0x0D12,
-       GL_INDEX_OFFSET                 = 0x0D13,
-       GL_RED_SCALE                    = 0x0D14,
-       GL_RED_BIAS                     = 0x0D15,
-       GL_GREEN_SCALE                  = 0x0D18,
-       GL_GREEN_BIAS                   = 0x0D19,
-       GL_BLUE_SCALE                   = 0x0D1A,
-       GL_BLUE_BIAS                    = 0x0D1B,
-       GL_ALPHA_SCALE                  = 0x0D1C,
-       GL_ALPHA_BIAS                   = 0x0D1D,
-       GL_DEPTH_SCALE                  = 0x0D1E,
-       GL_DEPTH_BIAS                   = 0x0D1F,
-       GL_PIXEL_MAP_S_TO_S_SIZE        = 0x0CB1,
-       GL_PIXEL_MAP_I_TO_I_SIZE        = 0x0CB0,
-       GL_PIXEL_MAP_I_TO_R_SIZE        = 0x0CB2,
-       GL_PIXEL_MAP_I_TO_G_SIZE        = 0x0CB3,
-       GL_PIXEL_MAP_I_TO_B_SIZE        = 0x0CB4,
-       GL_PIXEL_MAP_I_TO_A_SIZE        = 0x0CB5,
-       GL_PIXEL_MAP_R_TO_R_SIZE        = 0x0CB6,
-       GL_PIXEL_MAP_G_TO_G_SIZE        = 0x0CB7,
-       GL_PIXEL_MAP_B_TO_B_SIZE        = 0x0CB8,
-       GL_PIXEL_MAP_A_TO_A_SIZE        = 0x0CB9,
-       GL_PIXEL_MAP_S_TO_S             = 0x0C71,
-       GL_PIXEL_MAP_I_TO_I             = 0x0C70,
-       GL_PIXEL_MAP_I_TO_R             = 0x0C72,
-       GL_PIXEL_MAP_I_TO_G             = 0x0C73,
-       GL_PIXEL_MAP_I_TO_B             = 0x0C74,
-       GL_PIXEL_MAP_I_TO_A             = 0x0C75,
-       GL_PIXEL_MAP_R_TO_R             = 0x0C76,
-       GL_PIXEL_MAP_G_TO_G             = 0x0C77,
-       GL_PIXEL_MAP_B_TO_B             = 0x0C78,
-       GL_PIXEL_MAP_A_TO_A             = 0x0C79,
-       GL_PACK_ALIGNMENT               = 0x0D05,
-       GL_PACK_LSB_FIRST               = 0x0D01,
-       GL_PACK_ROW_LENGTH              = 0x0D02,
-       GL_PACK_SKIP_PIXELS             = 0x0D04,
-       GL_PACK_SKIP_ROWS               = 0x0D03,
-       GL_PACK_SWAP_BYTES              = 0x0D00,
-       GL_UNPACK_ALIGNMENT             = 0x0CF5,
-       GL_UNPACK_LSB_FIRST             = 0x0CF1,
-       GL_UNPACK_ROW_LENGTH            = 0x0CF2,
-       GL_UNPACK_SKIP_PIXELS           = 0x0CF4,
-       GL_UNPACK_SKIP_ROWS             = 0x0CF3,
-       GL_UNPACK_SWAP_BYTES            = 0x0CF0,
-       GL_ZOOM_X                       = 0x0D16,
-       GL_ZOOM_Y                       = 0x0D17,
-
-       /* Texture mapping */
-       GL_TEXTURE_ENV                  = 0x2300,
-       GL_TEXTURE_ENV_MODE             = 0x2200,
-       GL_TEXTURE_1D                   = 0x0DE0,
-       GL_TEXTURE_2D                   = 0x0DE1,
-       GL_TEXTURE_WRAP_S               = 0x2802,
-       GL_TEXTURE_WRAP_T               = 0x2803,
-       GL_TEXTURE_MAG_FILTER           = 0x2800,
-       GL_TEXTURE_MIN_FILTER           = 0x2801,
-       GL_TEXTURE_ENV_COLOR            = 0x2201,
-       GL_TEXTURE_GEN_S                = 0x0C60,
-       GL_TEXTURE_GEN_T                = 0x0C61,
-       GL_TEXTURE_GEN_MODE             = 0x2500,
-       GL_TEXTURE_BORDER_COLOR         = 0x1004,
-       GL_TEXTURE_WIDTH                = 0x1000,
-       GL_TEXTURE_HEIGHT               = 0x1001,
-       GL_TEXTURE_BORDER               = 0x1005,
-       GL_TEXTURE_COMPONENTS           = 0x1003,
-       GL_TEXTURE_RED_SIZE             = 0x805C,
-       GL_TEXTURE_GREEN_SIZE           = 0x805D,
-       GL_TEXTURE_BLUE_SIZE            = 0x805E,
-       GL_TEXTURE_ALPHA_SIZE           = 0x805F,
-       GL_TEXTURE_LUMINANCE_SIZE       = 0x8060,
-       GL_TEXTURE_INTENSITY_SIZE       = 0x8061,
-       GL_NEAREST_MIPMAP_NEAREST       = 0x2700,
-       GL_NEAREST_MIPMAP_LINEAR        = 0x2702,
-       GL_LINEAR_MIPMAP_NEAREST        = 0x2701,
-       GL_LINEAR_MIPMAP_LINEAR         = 0x2703,
-       GL_OBJECT_LINEAR                = 0x2401,
-       GL_OBJECT_PLANE                 = 0x2501,
-       GL_EYE_LINEAR                   = 0x2400,
-       GL_EYE_PLANE                    = 0x2502,
-       GL_SPHERE_MAP                   = 0x2402,
-       GL_DECAL                        = 0x2101,
-       GL_MODULATE                     = 0x2100,
-       GL_NEAREST                      = 0x2600,
-       GL_REPEAT                       = 0x2901,
-       GL_CLAMP                        = 0x2900,
-       GL_S                            = 0x2000,
-       GL_T                            = 0x2001,
-       GL_R                            = 0x2002,
-       GL_Q                            = 0x2003,
-       GL_TEXTURE_GEN_R                = 0x0C62,
-       GL_TEXTURE_GEN_Q                = 0x0C63,
-
-       /* GL 1.1 texturing */
-       GL_PROXY_TEXTURE_1D             = 0x8063,
-       GL_PROXY_TEXTURE_2D             = 0x8064,
-       GL_TEXTURE_PRIORITY             = 0x8066,
-       GL_TEXTURE_RESIDENT             = 0x8067,
-       GL_TEXTURE_BINDING_1D           = 0x8068,
-       GL_TEXTURE_BINDING_2D           = 0x8069,
-       GL_TEXTURE_INTERNAL_FORMAT      = 0x1003,
-
-       /* GL 1.2 texturing */
-       GL_PACK_SKIP_IMAGES             = 0x806B,
-       GL_PACK_IMAGE_HEIGHT            = 0x806C,
-       GL_UNPACK_SKIP_IMAGES           = 0x806D,
-       GL_UNPACK_IMAGE_HEIGHT          = 0x806E,
-       GL_TEXTURE_3D                   = 0x806F,
-       GL_PROXY_TEXTURE_3D             = 0x8070,
-       GL_TEXTURE_DEPTH                = 0x8071,
-       GL_TEXTURE_WRAP_R               = 0x8072,
-       GL_MAX_3D_TEXTURE_SIZE          = 0x8073,
-       GL_TEXTURE_BINDING_3D           = 0x806A,
-
-       /* Internal texture formats (GL 1.1) */
-       GL_ALPHA4                       = 0x803B,
-       GL_ALPHA8                       = 0x803C,
-       GL_ALPHA12                      = 0x803D,
-       GL_ALPHA16                      = 0x803E,
-       GL_LUMINANCE4                   = 0x803F,
-       GL_LUMINANCE8                   = 0x8040,
-       GL_LUMINANCE12                  = 0x8041,
-       GL_LUMINANCE16                  = 0x8042,
-       GL_LUMINANCE4_ALPHA4            = 0x8043,
-       GL_LUMINANCE6_ALPHA2            = 0x8044,
-       GL_LUMINANCE8_ALPHA8            = 0x8045,
-       GL_LUMINANCE12_ALPHA4           = 0x8046,
-       GL_LUMINANCE12_ALPHA12          = 0x8047,
-       GL_LUMINANCE16_ALPHA16          = 0x8048,
-       GL_INTENSITY                    = 0x8049,
-       GL_INTENSITY4                   = 0x804A,
-       GL_INTENSITY8                   = 0x804B,
-       GL_INTENSITY12                  = 0x804C,
-       GL_INTENSITY16                  = 0x804D,
-       GL_R3_G3_B2                     = 0x2A10,
-       GL_RGB4                         = 0x804F,
-       GL_RGB5                         = 0x8050,
-       GL_RGB8                         = 0x8051,
-       GL_RGB10                        = 0x8052,
-       GL_RGB12                        = 0x8053,
-       GL_RGB16                        = 0x8054,
-       GL_RGBA2                        = 0x8055,
-       GL_RGBA4                        = 0x8056,
-       GL_RGB5_A1                      = 0x8057,
-       GL_RGBA8                        = 0x8058,
-       GL_RGB10_A2                     = 0x8059,
-       GL_RGBA12                       = 0x805A,
-       GL_RGBA16                       = 0x805B,
-
-       /* Utility */
-       GL_VENDOR                       = 0x1F00,
-       GL_RENDERER                     = 0x1F01,
-       GL_VERSION                      = 0x1F02,
-       GL_EXTENSIONS                   = 0x1F03,
-
-       /* Errors */
-       GL_INVALID_VALUE                = 0x0501,
-       GL_INVALID_ENUM                 = 0x0500,
-       GL_INVALID_OPERATION            = 0x0502,
-       GL_STACK_OVERFLOW               = 0x0503,
-       GL_STACK_UNDERFLOW              = 0x0504,
-       GL_OUT_OF_MEMORY                = 0x0505,
-
-       /*
-        * Extensions
-        */
-
-       /* GL_EXT_blend_minmax and GL_EXT_blend_color */
-       GL_CONSTANT_COLOR_EXT                   = 0x8001,
-       GL_ONE_MINUS_CONSTANT_COLOR_EXT         = 0x8002,
-       GL_CONSTANT_ALPHA_EXT                   = 0x8003,
-       GL_ONE_MINUS_CONSTANT_ALPHA_EXT         = 0x8004,
-       GL_BLEND_EQUATION_EXT                   = 0x8009,
-       GL_MIN_EXT                              = 0x8007,
-       GL_MAX_EXT                              = 0x8008,
-       GL_FUNC_ADD_EXT                         = 0x8006,
-       GL_FUNC_SUBTRACT_EXT                    = 0x800A,
-       GL_FUNC_REVERSE_SUBTRACT_EXT            = 0x800B,
-       GL_BLEND_COLOR_EXT                      = 0x8005,
-
-       /* GL_EXT_polygon_offset */
-       GL_POLYGON_OFFSET_EXT                   = 0x8037,
-       GL_POLYGON_OFFSET_FACTOR_EXT            = 0x8038,
-       GL_POLYGON_OFFSET_BIAS_EXT              = 0x8039,
-
-       /* GL_EXT_vertex_array */
-       GL_VERTEX_ARRAY_EXT                     = 0x8074,
-       GL_NORMAL_ARRAY_EXT                     = 0x8075,
-       GL_COLOR_ARRAY_EXT                      = 0x8076,
-       GL_INDEX_ARRAY_EXT                      = 0x8077,
-       GL_TEXTURE_COORD_ARRAY_EXT              = 0x8078,
-       GL_EDGE_FLAG_ARRAY_EXT                  = 0x8079,
-       GL_VERTEX_ARRAY_SIZE_EXT                = 0x807A,
-       GL_VERTEX_ARRAY_TYPE_EXT                = 0x807B,
-       GL_VERTEX_ARRAY_STRIDE_EXT              = 0x807C,
-       GL_VERTEX_ARRAY_COUNT_EXT               = 0x807D,
-       GL_NORMAL_ARRAY_TYPE_EXT                = 0x807E,
-       GL_NORMAL_ARRAY_STRIDE_EXT              = 0x807F,
-       GL_NORMAL_ARRAY_COUNT_EXT               = 0x8080,
-       GL_COLOR_ARRAY_SIZE_EXT                 = 0x8081,
-       GL_COLOR_ARRAY_TYPE_EXT                 = 0x8082,
-       GL_COLOR_ARRAY_STRIDE_EXT               = 0x8083,
-       GL_COLOR_ARRAY_COUNT_EXT                = 0x8084,
-       GL_INDEX_ARRAY_TYPE_EXT                 = 0x8085,
-       GL_INDEX_ARRAY_STRIDE_EXT               = 0x8086,
-       GL_INDEX_ARRAY_COUNT_EXT                = 0x8087,
-       GL_TEXTURE_COORD_ARRAY_SIZE_EXT         = 0x8088,
-       GL_TEXTURE_COORD_ARRAY_TYPE_EXT         = 0x8089,
-       GL_TEXTURE_COORD_ARRAY_STRIDE_EXT       = 0x808A,
-       GL_TEXTURE_COORD_ARRAY_COUNT_EXT        = 0x808B,
-       GL_EDGE_FLAG_ARRAY_STRIDE_EXT           = 0x808C,
-       GL_EDGE_FLAG_ARRAY_COUNT_EXT            = 0x808D,
-       GL_VERTEX_ARRAY_POINTER_EXT             = 0x808E,
-       GL_NORMAL_ARRAY_POINTER_EXT             = 0x808F,
-       GL_COLOR_ARRAY_POINTER_EXT              = 0x8090,
-       GL_INDEX_ARRAY_POINTER_EXT              = 0x8091,
-       GL_TEXTURE_COORD_ARRAY_POINTER_EXT      = 0x8092,
-       GL_EDGE_FLAG_ARRAY_POINTER_EXT          = 0x8093,
-
-       /* GL_EXT_texture_object */
-       GL_TEXTURE_PRIORITY_EXT                 = 0x8066,
-       GL_TEXTURE_RESIDENT_EXT                 = 0x8067,
-       GL_TEXTURE_1D_BINDING_EXT               = 0x8068,
-       GL_TEXTURE_2D_BINDING_EXT               = 0x8069,
-
-       /* GL_EXT_texture3D */
-       GL_PACK_SKIP_IMAGES_EXT                 = 0x806B,
-       GL_PACK_IMAGE_HEIGHT_EXT                = 0x806C,
-       GL_UNPACK_SKIP_IMAGES_EXT               = 0x806D,
-       GL_UNPACK_IMAGE_HEIGHT_EXT              = 0x806E,
-       GL_TEXTURE_3D_EXT                       = 0x806F,
-       GL_PROXY_TEXTURE_3D_EXT                 = 0x8070,
-       GL_TEXTURE_DEPTH_EXT                    = 0x8071,
-       GL_TEXTURE_WRAP_R_EXT                   = 0x8072,
-       GL_MAX_3D_TEXTURE_SIZE_EXT              = 0x8073,
-       GL_TEXTURE_3D_BINDING_EXT               = 0x806A,
-
-       /* GL_EXT_paletted_texture */
-       GL_TABLE_TOO_LARGE_EXT                  = 0x8031,
-       GL_COLOR_TABLE_FORMAT_EXT               = 0x80D8,
-       GL_COLOR_TABLE_WIDTH_EXT                = 0x80D9,
-       GL_COLOR_TABLE_RED_SIZE_EXT             = 0x80DA,
-       GL_COLOR_TABLE_GREEN_SIZE_EXT           = 0x80DB,
-       GL_COLOR_TABLE_BLUE_SIZE_EXT            = 0x80DC,
-       GL_COLOR_TABLE_ALPHA_SIZE_EXT           = 0x80DD,
-       GL_COLOR_TABLE_LUMINANCE_SIZE_EXT       = 0x80DE,
-       GL_COLOR_TABLE_INTENSITY_SIZE_EXT       = 0x80DF,
-       GL_TEXTURE_INDEX_SIZE_EXT               = 0x80ED,
-       GL_COLOR_INDEX1_EXT                     = 0x80E2,
-       GL_COLOR_INDEX2_EXT                     = 0x80E3,
-       GL_COLOR_INDEX4_EXT                     = 0x80E4,
-       GL_COLOR_INDEX8_EXT                     = 0x80E5,
-       GL_COLOR_INDEX12_EXT                    = 0x80E6,
-       GL_COLOR_INDEX16_EXT                    = 0x80E7,
-
-       /* GL_EXT_shared_texture_palette */
-       GL_SHARED_TEXTURE_PALETTE_EXT           = 0x81FB,
-
-       /* GL_EXT_point_parameters */
-       GL_POINT_SIZE_MIN_EXT                   = 0x8126,
-       GL_POINT_SIZE_MAX_EXT                   = 0x8127,
-       GL_POINT_FADE_THRESHOLD_SIZE_EXT        = 0x8128,
-       GL_DISTANCE_ATTENUATION_EXT             = 0x8129,
-
-       /* GL_EXT_rescale_normal */
-       GL_RESCALE_NORMAL_EXT                   = 0x803A,
-
-       /* GL_EXT_abgr */
-       GL_ABGR_EXT                             = 0x8000,
-
-       /* GL_EXT_stencil_wrap */
-       GL_INCR_WRAP_EXT                        = 0x8507,
-       GL_DECR_WRAP_EXT                        = 0x8508,
-
-       /* GL_SGIS_texture_edge_clamp */
-       GL_CLAMP_TO_EDGE_SGIS                   = 0x812F,
-
-       /* GL_INGR_blend_func_separate */
-       GL_BLEND_DST_RGB_INGR                   = 0x80C8,
-       GL_BLEND_SRC_RGB_INGR                   = 0x80C9,
-       GL_BLEND_DST_ALPHA_INGR                 = 0x80CA,
-       GL_BLEND_SRC_ALPHA_INGR                 = 0x80CB,
-
-       /* OpenGL 1.2 */
-       GL_RESCALE_NORMAL                       = 0x803A,
-       GL_CLAMP_TO_EDGE                        = 0x812F,
-       GL_MAX_ELEMENTS_VERTICES                = 0xF0E8,
-       GL_MAX_ELEMENTS_INDICES                 = 0xF0E9,
-       GL_BGR                                  = 0x80E0,
-       GL_BGRA                                 = 0x80E1,
-       GL_UNSIGNED_BYTE_3_3_2                  = 0x8032,
-       GL_UNSIGNED_BYTE_2_3_3_REV              = 0x8362,
-       GL_UNSIGNED_SHORT_5_6_5                 = 0x8363,
-       GL_UNSIGNED_SHORT_5_6_5_REV             = 0x8364,
-       GL_UNSIGNED_SHORT_4_4_4_4               = 0x8033,
-       GL_UNSIGNED_SHORT_4_4_4_4_REV           = 0x8365,
-       GL_UNSIGNED_SHORT_5_5_5_1               = 0x8034,
-       GL_UNSIGNED_SHORT_1_5_5_5_REV           = 0x8366,
-       GL_UNSIGNED_INT_8_8_8_8                 = 0x8035,
-       GL_UNSIGNED_INT_8_8_8_8_REV             = 0x8367,
-       GL_UNSIGNED_INT_10_10_10_2              = 0x8036,
-       GL_UNSIGNED_INT_2_10_10_10_REV          = 0x8368,
-       GL_LIGHT_MODEL_COLOR_CONTROL            = 0x81F8,
-       GL_SINGLE_COLOR                         = 0x81F9,
-       GL_SEPARATE_SPECULAR_COLOR              = 0x81FA,
-       GL_TEXTURE_MIN_LOD                      = 0x813A,
-       GL_TEXTURE_MAX_LOD                      = 0x813B,
-       GL_TEXTURE_BASE_LEVEL                   = 0x813C,
-       GL_TEXTURE_MAX_LEVEL                    = 0x813D,
-
-       /* GL_ARB_multitexture */
-       GL_TEXTURE0_ARB                         = 0x84C0,
-       GL_TEXTURE1_ARB                         = 0x84C1,
-       GL_TEXTURE2_ARB                         = 0x84C2,
-       GL_TEXTURE3_ARB                         = 0x84C3,
-       GL_TEXTURE4_ARB                         = 0x84C4,
-       GL_TEXTURE5_ARB                         = 0x84C5,
-       GL_TEXTURE6_ARB                         = 0x84C6,
-       GL_TEXTURE7_ARB                         = 0x84C7,
-       GL_TEXTURE8_ARB                         = 0x84C8,
-       GL_TEXTURE9_ARB                         = 0x84C9,
-       GL_TEXTURE10_ARB                        = 0x84CA,
-       GL_TEXTURE11_ARB                        = 0x84CB,
-       GL_TEXTURE12_ARB                        = 0x84CC,
-       GL_TEXTURE13_ARB                        = 0x84CD,
-       GL_TEXTURE14_ARB                        = 0x84CE,
-       GL_TEXTURE15_ARB                        = 0x84CF,
-       GL_TEXTURE16_ARB                        = 0x84D0,
-       GL_TEXTURE17_ARB                        = 0x84D1,
-       GL_TEXTURE18_ARB                        = 0x84D2,
-       GL_TEXTURE19_ARB                        = 0x84D3,
-       GL_TEXTURE20_ARB                        = 0x84D4,
-       GL_TEXTURE21_ARB                        = 0x84D5,
-       GL_TEXTURE22_ARB                        = 0x84D6,
-       GL_TEXTURE23_ARB                        = 0x84D7,
-       GL_TEXTURE24_ARB                        = 0x84D8,
-       GL_TEXTURE25_ARB                        = 0x84D9,
-       GL_TEXTURE26_ARB                        = 0x84DA,
-       GL_TEXTURE27_ARB                        = 0x84DB,
-       GL_TEXTURE28_ARB                        = 0x84DC,
-       GL_TEXTURE29_ARB                        = 0x84DD,
-       GL_TEXTURE30_ARB                        = 0x84DE,
-       GL_TEXTURE31_ARB                        = 0x84DF,
-       GL_ACTIVE_TEXTURE_ARB                   = 0x84E0,
-       GL_CLIENT_ACTIVE_TEXTURE_ARB            = 0x84E1,
-       GL_MAX_TEXTURE_UNITS_ARB                = 0x84E2,
-
-       /*
-        * OpenGL 1.2 imaging subset (NOT IMPLEMENTED BY MESA)
-        */
-       /* GL_EXT_color_table */
-       GL_COLOR_TABLE                          = 0x80D0,
-       GL_POST_CONVOLUTION_COLOR_TABLE         = 0x80D1,
-       GL_POST_COLOR_MATRIX_COLOR_TABLE        = 0x80D2,
-       GL_PROXY_COLOR_TABLE                    = 0x80D3,
-       GL_PROXY_POST_CONVOLUTION_COLOR_TABLE   = 0x80D4,
-       GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE  = 0x80D5,
-       GL_COLOR_TABLE_SCALE                    = 0x80D6,
-       GL_COLOR_TABLE_BIAS                     = 0x80D7,
-       GL_COLOR_TABLE_FORMAT                   = 0x80D8,
-       GL_COLOR_TABLE_WIDTH                    = 0x80D9,
-       GL_COLOR_TABLE_RED_SIZE                 = 0x80DA,
-       GL_COLOR_TABLE_GREEN_SIZE               = 0x80DB,
-       GL_COLOR_TABLE_BLUE_SIZE                = 0x80DC,
-       GL_COLOR_TABLE_ALPHA_SIZE               = 0x80DD,
-       GL_COLOR_TABLE_LUMINANCE_SIZE           = 0x80DE,
-       GL_COLOR_TABLE_INTENSITY_SIZE           = 0x80DF,
-       /* GL_EXT_convolution and GL_HP_convolution_border_modes */
-       GL_CONVOLUTION_1D                       = 0x8010,
-       GL_CONVOLUTION_2D                       = 0x8011,
-       GL_SEPARABLE_2D                         = 0x8012,
-       GL_CONVOLUTION_BORDER_MODE              = 0x8013,
-       GL_CONVOLUTION_FILTER_SCALE             = 0x8014,
-       GL_CONVOLUTION_FILTER_BIAS              = 0x8015,
-       GL_REDUCE                               = 0x8016,
-       GL_CONVOLUTION_FORMAT                   = 0x8017,
-       GL_CONVOLUTION_WIDTH                    = 0x8018,
-       GL_CONVOLUTION_HEIGHT                   = 0x8019,
-       GL_MAX_CONVOLUTION_WIDTH                = 0x801A,
-       GL_MAX_CONVOLUTION_HEIGHT               = 0x801B,
-       GL_POST_CONVOLUTION_RED_SCALE           = 0x801C,
-       GL_POST_CONVOLUTION_GREEN_SCALE         = 0x801D,
-       GL_POST_CONVOLUTION_BLUE_SCALE          = 0x801E,
-       GL_POST_CONVOLUTION_ALPHA_SCALE         = 0x801F,
-       GL_POST_CONVOLUTION_RED_BIAS            = 0x8020,
-       GL_POST_CONVOLUTION_GREEN_BIAS          = 0x8021,
-       GL_POST_CONVOLUTION_BLUE_BIAS           = 0x8022,
-       GL_POST_CONVOLUTION_ALPHA_BIAS          = 0x8023,
-       GL_CONSTANT_BORDER                      = 0x8151,
-       GL_REPLICATE_BORDER                     = 0x8153,
-       GL_CONVOLUTION_BORDER_COLOR             = 0x8154,
-       /* GL_SGI_color_matrix */
-       GL_COLOR_MATRIX                         = 0x80B1,
-       GL_COLOR_MATRIX_STACK_DEPTH             = 0x80B2,
-       GL_MAX_COLOR_MATRIX_STACK_DEPTH         = 0x80B3,
-       GL_POST_COLOR_MATRIX_RED_SCALE          = 0x80B4,
-       GL_POST_COLOR_MATRIX_GREEN_SCALE        = 0x80B5,
-       GL_POST_COLOR_MATRIX_BLUE_SCALE         = 0x80B6,
-       GL_POST_COLOR_MATRIX_ALPHA_SCALE        = 0x80B7,
-       GL_POST_COLOR_MATRIX_RED_BIAS           = 0x80B8,
-       GL_POST_COLOR_MATRIX_GREEN_BIAS         = 0x80B9,
-       GL_POST_COLOR_MATRIX_BLUE_BIAS          = 0x80BA,
-       GL_POST_COLOR_MATRIX_ALPHA_BIAS         = 0x80BB,
-       /* GL_EXT_histogram */
-       GL_HISTOGRAM                            = 0x8024,
-       GL_PROXY_HISTOGRAM                      = 0x8025,
-       GL_HISTOGRAM_WIDTH                      = 0x8026,
-       GL_HISTOGRAM_FORMAT                     = 0x8027,
-       GL_HISTOGRAM_RED_SIZE                   = 0x8028,
-       GL_HISTOGRAM_GREEN_SIZE                 = 0x8029,
-       GL_HISTOGRAM_BLUE_SIZE                  = 0x802A,
-       GL_HISTOGRAM_ALPHA_SIZE                 = 0x802B,
-       GL_HISTOGRAM_LUMINANCE_SIZE             = 0x802C,
-       GL_HISTOGRAM_SINK                       = 0x802D,
-       GL_MINMAX                               = 0x802E,
-       GL_MINMAX_FORMAT                        = 0x802F,
-       GL_MINMAX_SINK                          = 0x8030,
-       GL_TABLE_TOO_LARGE                      = 0x8031,
-       /* GL_EXT_blend_color, GL_EXT_blend_minmax */
-       GL_BLEND_EQUATION                       = 0x8009,
-       GL_MIN                                  = 0x8007,
-       GL_MAX                                  = 0x8008,
-       GL_FUNC_ADD                             = 0x8006,
-       GL_FUNC_SUBTRACT                        = 0x800A,
-       GL_FUNC_REVERSE_SUBTRACT                = 0x800B,
-       GL_BLEND_COLOR                          = 0x8005,
-
-       /* GL_NV_texgen_reflection (nVidia) */
-       GL_NORMAL_MAP_NV                        = 0x8511,
-       GL_REFLECTION_MAP_NV                    = 0x8512,
-
-       /* GL_PGI_misc_hints */
-       GL_PREFER_DOUBLEBUFFER_HINT_PGI         = 107000,
-       GL_STRICT_DEPTHFUNC_HINT_PGI            = 107030,
-       GL_STRICT_LIGHTING_HINT_PGI             = 107031,
-       GL_STRICT_SCISSOR_HINT_PGI              = 107032,
-       GL_FULL_STIPPLE_HINT_PGI                = 107033,
-       GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI       = 107011,
-       GL_NATIVE_GRAPHICS_END_HINT_PGI         = 107012,
-       GL_CONSERVE_MEMORY_HINT_PGI             = 107005,
-       GL_RECLAIM_MEMORY_HINT_PGI              = 107006,
-       GL_ALWAYS_FAST_HINT_PGI                 = 107020,
-       GL_ALWAYS_SOFT_HINT_PGI                 = 107021,
-       GL_ALLOW_DRAW_OBJ_HINT_PGI              = 107022,
-       GL_ALLOW_DRAW_WIN_HINT_PGI              = 107023,
-       GL_ALLOW_DRAW_FRG_HINT_PGI              = 107024,
-       GL_ALLOW_DRAW_SPN_HINT_PGI              = 107024,
-       GL_ALLOW_DRAW_MEM_HINT_PGI              = 107025,
-       GL_CLIP_NEAR_HINT_PGI                   = 107040,
-       GL_CLIP_FAR_HINT_PGI                    = 107041,
-       GL_WIDE_LINE_HINT_PGI                   = 107042,
-       GL_BACK_NORMALS_HINT_PGI                = 107043,
-       GL_NATIVE_GRAPHICS_HANDLE_PGI           = 107010,
-
-       /* GL_EXT_compiled_vertex_array */
-       GL_ARRAY_ELEMENT_LOCK_FIRST_SGI         = 0x81A8,
-       GL_ARRAY_ELEMENT_LOCK_COUNT_SGI         = 0x81A9,
-
-       /* GL_EXT_clip_volume_hint */
-       GL_CLIP_VOLUME_CLIPPING_HINT_EXT        = 0x80F0
-
-
-/* When you add new enums, please make sure you update the strings
- * in enums.c as well...
- */
+#ifndef GLAPIENTRYP
+#define GLAPIENTRYP GLAPIENTRY *
+#endif
 
-}
 #ifdef CENTERLINE_CLPP
-  /* CenterLine C++ workaround: */
-  gl_enum;
-  typedef int GLenum;
-#else
-  /* all other compilers */
-  GLenum;
+#define signed
 #endif
 
+#if defined(PRAGMA_EXPORT_SUPPORTED)
+#pragma export on
+#endif
 
-/* GL_NO_ERROR must be zero */
-#define GL_NO_ERROR 0
-
-
-
-enum {
-       GL_CURRENT_BIT          = 0x00000001,
-       GL_POINT_BIT            = 0x00000002,
-       GL_LINE_BIT             = 0x00000004,
-       GL_POLYGON_BIT          = 0x00000008,
-       GL_POLYGON_STIPPLE_BIT  = 0x00000010,
-       GL_PIXEL_MODE_BIT       = 0x00000020,
-       GL_LIGHTING_BIT         = 0x00000040,
-       GL_FOG_BIT              = 0x00000080,
-       GL_DEPTH_BUFFER_BIT     = 0x00000100,
-       GL_ACCUM_BUFFER_BIT     = 0x00000200,
-       GL_STENCIL_BUFFER_BIT   = 0x00000400,
-       GL_VIEWPORT_BIT         = 0x00000800,
-       GL_TRANSFORM_BIT        = 0x00001000,
-       GL_ENABLE_BIT           = 0x00002000,
-       GL_COLOR_BUFFER_BIT     = 0x00004000,
-       GL_HINT_BIT             = 0x00008000,
-       GL_EVAL_BIT             = 0x00010000,
-       GL_LIST_BIT             = 0x00020000,
-       GL_TEXTURE_BIT          = 0x00040000,
-       GL_SCISSOR_BIT          = 0x00080000,
-       GL_ALL_ATTRIB_BITS      = 0x000FFFFF
-};
+#endif /* !__SCITECH_SNAP__ */
+/*
+ * End system-specific stuff.
+ **********************************************************************/
 
 
-enum {
-       GL_CLIENT_PIXEL_STORE_BIT       = 0x00000001,
-       GL_CLIENT_VERTEX_ARRAY_BIT      = 0x00000002
-};
-#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF
 
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-typedef unsigned int GLbitfield;
 
 
-#ifdef CENTERLINE_CLPP
-#define signed
-#endif
+#define GL_VERSION_1_1   1
+#define GL_VERSION_1_2   1
+#define GL_VERSION_1_3   1
+#define GL_ARB_imaging   1
 
 
 /*
- *
- * Data types (may be architecture dependent in some cases)
- *
+ * Datatypes
  */
-
-/*  C type             GL type         storage                            */
-/*-------------------------------------------------------------------------*/
-typedef void           GLvoid;
+typedef unsigned int   GLenum;
 typedef unsigned char  GLboolean;
+typedef unsigned int   GLbitfield;
+typedef void           GLvoid;
 typedef signed char    GLbyte;         /* 1-byte signed */
 typedef short          GLshort;        /* 2-byte signed */
 typedef int            GLint;          /* 4-byte signed */
@@ -1120,9 +167,609 @@ typedef double           GLclampd;       /* double precision float in [0,1] */
 
 
 
-#if defined(__BEOS__) || defined(__QUICKDRAW__)
-#pragma export on
-#endif
+/*
+ * Constants
+ */
+
+/* Boolean values */
+#define GL_FALSE                               0x0
+#define GL_TRUE                                        0x1
+
+/* Data types */
+#define GL_BYTE                                        0x1400
+#define GL_UNSIGNED_BYTE                       0x1401
+#define GL_SHORT                               0x1402
+#define GL_UNSIGNED_SHORT                      0x1403
+#define GL_INT                                 0x1404
+#define GL_UNSIGNED_INT                                0x1405
+#define GL_FLOAT                               0x1406
+#define GL_2_BYTES                             0x1407
+#define GL_3_BYTES                             0x1408
+#define GL_4_BYTES                             0x1409
+#define GL_DOUBLE                              0x140A
+
+/* Primitives */
+#define GL_POINTS                              0x0000
+#define GL_LINES                               0x0001
+#define GL_LINE_LOOP                           0x0002
+#define GL_LINE_STRIP                          0x0003
+#define GL_TRIANGLES                           0x0004
+#define GL_TRIANGLE_STRIP                      0x0005
+#define GL_TRIANGLE_FAN                                0x0006
+#define GL_QUADS                               0x0007
+#define GL_QUAD_STRIP                          0x0008
+#define GL_POLYGON                             0x0009
+
+/* Vertex Arrays */
+#define GL_VERTEX_ARRAY                                0x8074
+#define GL_NORMAL_ARRAY                                0x8075
+#define GL_COLOR_ARRAY                         0x8076
+#define GL_INDEX_ARRAY                         0x8077
+#define GL_TEXTURE_COORD_ARRAY                 0x8078
+#define GL_EDGE_FLAG_ARRAY                     0x8079
+#define GL_VERTEX_ARRAY_SIZE                   0x807A
+#define GL_VERTEX_ARRAY_TYPE                   0x807B
+#define GL_VERTEX_ARRAY_STRIDE                 0x807C
+#define GL_NORMAL_ARRAY_TYPE                   0x807E
+#define GL_NORMAL_ARRAY_STRIDE                 0x807F
+#define GL_COLOR_ARRAY_SIZE                    0x8081
+#define GL_COLOR_ARRAY_TYPE                    0x8082
+#define GL_COLOR_ARRAY_STRIDE                  0x8083
+#define GL_INDEX_ARRAY_TYPE                    0x8085
+#define GL_INDEX_ARRAY_STRIDE                  0x8086
+#define GL_TEXTURE_COORD_ARRAY_SIZE            0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE            0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE          0x808A
+#define GL_EDGE_FLAG_ARRAY_STRIDE              0x808C
+#define GL_VERTEX_ARRAY_POINTER                        0x808E
+#define GL_NORMAL_ARRAY_POINTER                        0x808F
+#define GL_COLOR_ARRAY_POINTER                 0x8090
+#define GL_INDEX_ARRAY_POINTER                 0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER         0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER             0x8093
+#define GL_V2F                                 0x2A20
+#define GL_V3F                                 0x2A21
+#define GL_C4UB_V2F                            0x2A22
+#define GL_C4UB_V3F                            0x2A23
+#define GL_C3F_V3F                             0x2A24
+#define GL_N3F_V3F                             0x2A25
+#define GL_C4F_N3F_V3F                         0x2A26
+#define GL_T2F_V3F                             0x2A27
+#define GL_T4F_V4F                             0x2A28
+#define GL_T2F_C4UB_V3F                                0x2A29
+#define GL_T2F_C3F_V3F                         0x2A2A
+#define GL_T2F_N3F_V3F                         0x2A2B
+#define GL_T2F_C4F_N3F_V3F                     0x2A2C
+#define GL_T4F_C4F_N3F_V4F                     0x2A2D
+
+/* Matrix Mode */
+#define GL_MATRIX_MODE                         0x0BA0
+#define GL_MODELVIEW                           0x1700
+#define GL_PROJECTION                          0x1701
+#define GL_TEXTURE                             0x1702
+
+/* Points */
+#define GL_POINT_SMOOTH                                0x0B10
+#define GL_POINT_SIZE                          0x0B11
+#define GL_POINT_SIZE_GRANULARITY              0x0B13
+#define GL_POINT_SIZE_RANGE                    0x0B12
+
+/* Lines */
+#define GL_LINE_SMOOTH                         0x0B20
+#define GL_LINE_STIPPLE                                0x0B24
+#define GL_LINE_STIPPLE_PATTERN                        0x0B25
+#define GL_LINE_STIPPLE_REPEAT                 0x0B26
+#define GL_LINE_WIDTH                          0x0B21
+#define GL_LINE_WIDTH_GRANULARITY              0x0B23
+#define GL_LINE_WIDTH_RANGE                    0x0B22
+
+/* Polygons */
+#define GL_POINT                               0x1B00
+#define GL_LINE                                        0x1B01
+#define GL_FILL                                        0x1B02
+#define GL_CW                                  0x0900
+#define GL_CCW                                 0x0901
+#define GL_FRONT                               0x0404
+#define GL_BACK                                        0x0405
+#define GL_POLYGON_MODE                                0x0B40
+#define GL_POLYGON_SMOOTH                      0x0B41
+#define GL_POLYGON_STIPPLE                     0x0B42
+#define GL_EDGE_FLAG                           0x0B43
+#define GL_CULL_FACE                           0x0B44
+#define GL_CULL_FACE_MODE                      0x0B45
+#define GL_FRONT_FACE                          0x0B46
+#define GL_POLYGON_OFFSET_FACTOR               0x8038
+#define GL_POLYGON_OFFSET_UNITS                        0x2A00
+#define GL_POLYGON_OFFSET_POINT                        0x2A01
+#define GL_POLYGON_OFFSET_LINE                 0x2A02
+#define GL_POLYGON_OFFSET_FILL                 0x8037
+
+/* Display Lists */
+#define GL_COMPILE                             0x1300
+#define GL_COMPILE_AND_EXECUTE                 0x1301
+#define GL_LIST_BASE                           0x0B32
+#define GL_LIST_INDEX                          0x0B33
+#define GL_LIST_MODE                           0x0B30
+
+/* Depth buffer */
+#define GL_NEVER                               0x0200
+#define GL_LESS                                        0x0201
+#define GL_EQUAL                               0x0202
+#define GL_LEQUAL                              0x0203
+#define GL_GREATER                             0x0204
+#define GL_NOTEQUAL                            0x0205
+#define GL_GEQUAL                              0x0206
+#define GL_ALWAYS                              0x0207
+#define GL_DEPTH_TEST                          0x0B71
+#define GL_DEPTH_BITS                          0x0D56
+#define GL_DEPTH_CLEAR_VALUE                   0x0B73
+#define GL_DEPTH_FUNC                          0x0B74
+#define GL_DEPTH_RANGE                         0x0B70
+#define GL_DEPTH_WRITEMASK                     0x0B72
+#define GL_DEPTH_COMPONENT                     0x1902
+
+/* Lighting */
+#define GL_LIGHTING                            0x0B50
+#define GL_LIGHT0                              0x4000
+#define GL_LIGHT1                              0x4001
+#define GL_LIGHT2                              0x4002
+#define GL_LIGHT3                              0x4003
+#define GL_LIGHT4                              0x4004
+#define GL_LIGHT5                              0x4005
+#define GL_LIGHT6                              0x4006
+#define GL_LIGHT7                              0x4007
+#define GL_SPOT_EXPONENT                       0x1205
+#define GL_SPOT_CUTOFF                         0x1206
+#define GL_CONSTANT_ATTENUATION                        0x1207
+#define GL_LINEAR_ATTENUATION                  0x1208
+#define GL_QUADRATIC_ATTENUATION               0x1209
+#define GL_AMBIENT                             0x1200
+#define GL_DIFFUSE                             0x1201
+#define GL_SPECULAR                            0x1202
+#define GL_SHININESS                           0x1601
+#define GL_EMISSION                            0x1600
+#define GL_POSITION                            0x1203
+#define GL_SPOT_DIRECTION                      0x1204
+#define GL_AMBIENT_AND_DIFFUSE                 0x1602
+#define GL_COLOR_INDEXES                       0x1603
+#define GL_LIGHT_MODEL_TWO_SIDE                        0x0B52
+#define GL_LIGHT_MODEL_LOCAL_VIEWER            0x0B51
+#define GL_LIGHT_MODEL_AMBIENT                 0x0B53
+#define GL_FRONT_AND_BACK                      0x0408
+#define GL_SHADE_MODEL                         0x0B54
+#define GL_FLAT                                        0x1D00
+#define GL_SMOOTH                              0x1D01
+#define GL_COLOR_MATERIAL                      0x0B57
+#define GL_COLOR_MATERIAL_FACE                 0x0B55
+#define GL_COLOR_MATERIAL_PARAMETER            0x0B56
+#define GL_NORMALIZE                           0x0BA1
+
+/* User clipping planes */
+#define GL_CLIP_PLANE0                         0x3000
+#define GL_CLIP_PLANE1                         0x3001
+#define GL_CLIP_PLANE2                         0x3002
+#define GL_CLIP_PLANE3                         0x3003
+#define GL_CLIP_PLANE4                         0x3004
+#define GL_CLIP_PLANE5                         0x3005
+
+/* Accumulation buffer */
+#define GL_ACCUM_RED_BITS                      0x0D58
+#define GL_ACCUM_GREEN_BITS                    0x0D59
+#define GL_ACCUM_BLUE_BITS                     0x0D5A
+#define GL_ACCUM_ALPHA_BITS                    0x0D5B
+#define GL_ACCUM_CLEAR_VALUE                   0x0B80
+#define GL_ACCUM                               0x0100
+#define GL_ADD                                 0x0104
+#define GL_LOAD                                        0x0101
+#define GL_MULT                                        0x0103
+#define GL_RETURN                              0x0102
+
+/* Alpha testing */
+#define GL_ALPHA_TEST                          0x0BC0
+#define GL_ALPHA_TEST_REF                      0x0BC2
+#define GL_ALPHA_TEST_FUNC                     0x0BC1
+
+/* Blending */
+#define GL_BLEND                               0x0BE2
+#define GL_BLEND_SRC                           0x0BE1
+#define GL_BLEND_DST                           0x0BE0
+#define GL_ZERO                                        0x0
+#define GL_ONE                                 0x1
+#define GL_SRC_COLOR                           0x0300
+#define GL_ONE_MINUS_SRC_COLOR                 0x0301
+#define GL_SRC_ALPHA                           0x0302
+#define GL_ONE_MINUS_SRC_ALPHA                 0x0303
+#define GL_DST_ALPHA                           0x0304
+#define GL_ONE_MINUS_DST_ALPHA                 0x0305
+#define GL_DST_COLOR                           0x0306
+#define GL_ONE_MINUS_DST_COLOR                 0x0307
+#define GL_SRC_ALPHA_SATURATE                  0x0308
+
+/* Render Mode */
+#define GL_FEEDBACK                            0x1C01
+#define GL_RENDER                              0x1C00
+#define GL_SELECT                              0x1C02
+
+/* Feedback */
+#define GL_2D                                  0x0600
+#define GL_3D                                  0x0601
+#define GL_3D_COLOR                            0x0602
+#define GL_3D_COLOR_TEXTURE                    0x0603
+#define GL_4D_COLOR_TEXTURE                    0x0604
+#define GL_POINT_TOKEN                         0x0701
+#define GL_LINE_TOKEN                          0x0702
+#define GL_LINE_RESET_TOKEN                    0x0707
+#define GL_POLYGON_TOKEN                       0x0703
+#define GL_BITMAP_TOKEN                                0x0704
+#define GL_DRAW_PIXEL_TOKEN                    0x0705
+#define GL_COPY_PIXEL_TOKEN                    0x0706
+#define GL_PASS_THROUGH_TOKEN                  0x0700
+#define GL_FEEDBACK_BUFFER_POINTER             0x0DF0
+#define GL_FEEDBACK_BUFFER_SIZE                        0x0DF1
+#define GL_FEEDBACK_BUFFER_TYPE                        0x0DF2
+
+/* Selection */
+#define GL_SELECTION_BUFFER_POINTER            0x0DF3
+#define GL_SELECTION_BUFFER_SIZE               0x0DF4
+
+/* Fog */
+#define GL_FOG                                 0x0B60
+#define GL_FOG_MODE                            0x0B65
+#define GL_FOG_DENSITY                         0x0B62
+#define GL_FOG_COLOR                           0x0B66
+#define GL_FOG_INDEX                           0x0B61
+#define GL_FOG_START                           0x0B63
+#define GL_FOG_END                             0x0B64
+#define GL_LINEAR                              0x2601
+#define GL_EXP                                 0x0800
+#define GL_EXP2                                        0x0801
+
+/* Logic Ops */
+#define GL_LOGIC_OP                            0x0BF1
+#define GL_INDEX_LOGIC_OP                      0x0BF1
+#define GL_COLOR_LOGIC_OP                      0x0BF2
+#define GL_LOGIC_OP_MODE                       0x0BF0
+#define GL_CLEAR                               0x1500
+#define GL_SET                                 0x150F
+#define GL_COPY                                        0x1503
+#define GL_COPY_INVERTED                       0x150C
+#define GL_NOOP                                        0x1505
+#define GL_INVERT                              0x150A
+#define GL_AND                                 0x1501
+#define GL_NAND                                        0x150E
+#define GL_OR                                  0x1507
+#define GL_NOR                                 0x1508
+#define GL_XOR                                 0x1506
+#define GL_EQUIV                               0x1509
+#define GL_AND_REVERSE                         0x1502
+#define GL_AND_INVERTED                                0x1504
+#define GL_OR_REVERSE                          0x150B
+#define GL_OR_INVERTED                         0x150D
+
+/* Stencil */
+#define GL_STENCIL_BITS                                0x0D57
+#define GL_STENCIL_TEST                                0x0B90
+#define GL_STENCIL_CLEAR_VALUE                 0x0B91
+#define GL_STENCIL_FUNC                                0x0B92
+#define GL_STENCIL_VALUE_MASK                  0x0B93
+#define GL_STENCIL_FAIL                                0x0B94
+#define GL_STENCIL_PASS_DEPTH_FAIL             0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS             0x0B96
+#define GL_STENCIL_REF                         0x0B97
+#define GL_STENCIL_WRITEMASK                   0x0B98
+#define GL_STENCIL_INDEX                       0x1901
+#define GL_KEEP                                        0x1E00
+#define GL_REPLACE                             0x1E01
+#define GL_INCR                                        0x1E02
+#define GL_DECR                                        0x1E03
+
+/* Buffers, Pixel Drawing/Reading */
+#define GL_NONE                                        0x0
+#define GL_LEFT                                        0x0406
+#define GL_RIGHT                               0x0407
+/*GL_FRONT                                     0x0404 */
+/*GL_BACK                                      0x0405 */
+/*GL_FRONT_AND_BACK                            0x0408 */
+#define GL_FRONT_LEFT                          0x0400
+#define GL_FRONT_RIGHT                         0x0401
+#define GL_BACK_LEFT                           0x0402
+#define GL_BACK_RIGHT                          0x0403
+#define GL_AUX0                                        0x0409
+#define GL_AUX1                                        0x040A
+#define GL_AUX2                                        0x040B
+#define GL_AUX3                                        0x040C
+#define GL_COLOR_INDEX                         0x1900
+#define GL_RED                                 0x1903
+#define GL_GREEN                               0x1904
+#define GL_BLUE                                        0x1905
+#define GL_ALPHA                               0x1906
+#define GL_LUMINANCE                           0x1909
+#define GL_LUMINANCE_ALPHA                     0x190A
+#define GL_ALPHA_BITS                          0x0D55
+#define GL_RED_BITS                            0x0D52
+#define GL_GREEN_BITS                          0x0D53
+#define GL_BLUE_BITS                           0x0D54
+#define GL_INDEX_BITS                          0x0D51
+#define GL_SUBPIXEL_BITS                       0x0D50
+#define GL_AUX_BUFFERS                         0x0C00
+#define GL_READ_BUFFER                         0x0C02
+#define GL_DRAW_BUFFER                         0x0C01
+#define GL_DOUBLEBUFFER                                0x0C32
+#define GL_STEREO                              0x0C33
+#define GL_BITMAP                              0x1A00
+#define GL_COLOR                               0x1800
+#define GL_DEPTH                               0x1801
+#define GL_STENCIL                             0x1802
+#define GL_DITHER                              0x0BD0
+#define GL_RGB                                 0x1907
+#define GL_RGBA                                        0x1908
+
+/* Implementation limits */
+#define GL_MAX_LIST_NESTING                    0x0B31
+#define GL_MAX_EVAL_ORDER                      0x0D30
+#define GL_MAX_LIGHTS                          0x0D31
+#define GL_MAX_CLIP_PLANES                     0x0D32
+#define GL_MAX_TEXTURE_SIZE                    0x0D33
+#define GL_MAX_PIXEL_MAP_TABLE                 0x0D34
+#define GL_MAX_ATTRIB_STACK_DEPTH              0x0D35
+#define GL_MAX_MODELVIEW_STACK_DEPTH           0x0D36
+#define GL_MAX_NAME_STACK_DEPTH                        0x0D37
+#define GL_MAX_PROJECTION_STACK_DEPTH          0x0D38
+#define GL_MAX_TEXTURE_STACK_DEPTH             0x0D39
+#define GL_MAX_VIEWPORT_DIMS                   0x0D3A
+#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH       0x0D3B
+
+/* Gets */
+#define GL_ATTRIB_STACK_DEPTH                  0x0BB0
+#define GL_CLIENT_ATTRIB_STACK_DEPTH           0x0BB1
+#define GL_COLOR_CLEAR_VALUE                   0x0C22
+#define GL_COLOR_WRITEMASK                     0x0C23
+#define GL_CURRENT_INDEX                       0x0B01
+#define GL_CURRENT_COLOR                       0x0B00
+#define GL_CURRENT_NORMAL                      0x0B02
+#define GL_CURRENT_RASTER_COLOR                        0x0B04
+#define GL_CURRENT_RASTER_DISTANCE             0x0B09
+#define GL_CURRENT_RASTER_INDEX                        0x0B05
+#define GL_CURRENT_RASTER_POSITION             0x0B07
+#define GL_CURRENT_RASTER_TEXTURE_COORDS       0x0B06
+#define GL_CURRENT_RASTER_POSITION_VALID       0x0B08
+#define GL_CURRENT_TEXTURE_COORDS              0x0B03
+#define GL_INDEX_CLEAR_VALUE                   0x0C20
+#define GL_INDEX_MODE                          0x0C30
+#define GL_INDEX_WRITEMASK                     0x0C21
+#define GL_MODELVIEW_MATRIX                    0x0BA6
+#define GL_MODELVIEW_STACK_DEPTH               0x0BA3
+#define GL_NAME_STACK_DEPTH                    0x0D70
+#define GL_PROJECTION_MATRIX                   0x0BA7
+#define GL_PROJECTION_STACK_DEPTH              0x0BA4
+#define GL_RENDER_MODE                         0x0C40
+#define GL_RGBA_MODE                           0x0C31
+#define GL_TEXTURE_MATRIX                      0x0BA8
+#define GL_TEXTURE_STACK_DEPTH                 0x0BA5
+#define GL_VIEWPORT                            0x0BA2
+
+/* Evaluators */
+#define GL_AUTO_NORMAL                         0x0D80
+#define GL_MAP1_COLOR_4                                0x0D90
+#define GL_MAP1_INDEX                          0x0D91
+#define GL_MAP1_NORMAL                         0x0D92
+#define GL_MAP1_TEXTURE_COORD_1                        0x0D93
+#define GL_MAP1_TEXTURE_COORD_2                        0x0D94
+#define GL_MAP1_TEXTURE_COORD_3                        0x0D95
+#define GL_MAP1_TEXTURE_COORD_4                        0x0D96
+#define GL_MAP1_VERTEX_3                       0x0D97
+#define GL_MAP1_VERTEX_4                       0x0D98
+#define GL_MAP2_COLOR_4                                0x0DB0
+#define GL_MAP2_INDEX                          0x0DB1
+#define GL_MAP2_NORMAL                         0x0DB2
+#define GL_MAP2_TEXTURE_COORD_1                        0x0DB3
+#define GL_MAP2_TEXTURE_COORD_2                        0x0DB4
+#define GL_MAP2_TEXTURE_COORD_3                        0x0DB5
+#define GL_MAP2_TEXTURE_COORD_4                        0x0DB6
+#define GL_MAP2_VERTEX_3                       0x0DB7
+#define GL_MAP2_VERTEX_4                       0x0DB8
+#define GL_MAP1_GRID_DOMAIN                    0x0DD0
+#define GL_MAP1_GRID_SEGMENTS                  0x0DD1
+#define GL_MAP2_GRID_DOMAIN                    0x0DD2
+#define GL_MAP2_GRID_SEGMENTS                  0x0DD3
+#define GL_COEFF                               0x0A00
+#define GL_ORDER                               0x0A01
+#define GL_DOMAIN                              0x0A02
+
+/* Hints */
+#define GL_PERSPECTIVE_CORRECTION_HINT         0x0C50
+#define GL_POINT_SMOOTH_HINT                   0x0C51
+#define GL_LINE_SMOOTH_HINT                    0x0C52
+#define GL_POLYGON_SMOOTH_HINT                 0x0C53
+#define GL_FOG_HINT                            0x0C54
+#define GL_DONT_CARE                           0x1100
+#define GL_FASTEST                             0x1101
+#define GL_NICEST                              0x1102
+
+/* Scissor box */
+#define GL_SCISSOR_BOX                         0x0C10
+#define GL_SCISSOR_TEST                                0x0C11
+
+/* Pixel Mode / Transfer */
+#define GL_MAP_COLOR                           0x0D10
+#define GL_MAP_STENCIL                         0x0D11
+#define GL_INDEX_SHIFT                         0x0D12
+#define GL_INDEX_OFFSET                                0x0D13
+#define GL_RED_SCALE                           0x0D14
+#define GL_RED_BIAS                            0x0D15
+#define GL_GREEN_SCALE                         0x0D18
+#define GL_GREEN_BIAS                          0x0D19
+#define GL_BLUE_SCALE                          0x0D1A
+#define GL_BLUE_BIAS                           0x0D1B
+#define GL_ALPHA_SCALE                         0x0D1C
+#define GL_ALPHA_BIAS                          0x0D1D
+#define GL_DEPTH_SCALE                         0x0D1E
+#define GL_DEPTH_BIAS                          0x0D1F
+#define GL_PIXEL_MAP_S_TO_S_SIZE               0x0CB1
+#define GL_PIXEL_MAP_I_TO_I_SIZE               0x0CB0
+#define GL_PIXEL_MAP_I_TO_R_SIZE               0x0CB2
+#define GL_PIXEL_MAP_I_TO_G_SIZE               0x0CB3
+#define GL_PIXEL_MAP_I_TO_B_SIZE               0x0CB4
+#define GL_PIXEL_MAP_I_TO_A_SIZE               0x0CB5
+#define GL_PIXEL_MAP_R_TO_R_SIZE               0x0CB6
+#define GL_PIXEL_MAP_G_TO_G_SIZE               0x0CB7
+#define GL_PIXEL_MAP_B_TO_B_SIZE               0x0CB8
+#define GL_PIXEL_MAP_A_TO_A_SIZE               0x0CB9
+#define GL_PIXEL_MAP_S_TO_S                    0x0C71
+#define GL_PIXEL_MAP_I_TO_I                    0x0C70
+#define GL_PIXEL_MAP_I_TO_R                    0x0C72
+#define GL_PIXEL_MAP_I_TO_G                    0x0C73
+#define GL_PIXEL_MAP_I_TO_B                    0x0C74
+#define GL_PIXEL_MAP_I_TO_A                    0x0C75
+#define GL_PIXEL_MAP_R_TO_R                    0x0C76
+#define GL_PIXEL_MAP_G_TO_G                    0x0C77
+#define GL_PIXEL_MAP_B_TO_B                    0x0C78
+#define GL_PIXEL_MAP_A_TO_A                    0x0C79
+#define GL_PACK_ALIGNMENT                      0x0D05
+#define GL_PACK_LSB_FIRST                      0x0D01
+#define GL_PACK_ROW_LENGTH                     0x0D02
+#define GL_PACK_SKIP_PIXELS                    0x0D04
+#define GL_PACK_SKIP_ROWS                      0x0D03
+#define GL_PACK_SWAP_BYTES                     0x0D00
+#define GL_UNPACK_ALIGNMENT                    0x0CF5
+#define GL_UNPACK_LSB_FIRST                    0x0CF1
+#define GL_UNPACK_ROW_LENGTH                   0x0CF2
+#define GL_UNPACK_SKIP_PIXELS                  0x0CF4
+#define GL_UNPACK_SKIP_ROWS                    0x0CF3
+#define GL_UNPACK_SWAP_BYTES                   0x0CF0
+#define GL_ZOOM_X                              0x0D16
+#define GL_ZOOM_Y                              0x0D17
+
+/* Texture mapping */
+#define GL_TEXTURE_ENV                         0x2300
+#define GL_TEXTURE_ENV_MODE                    0x2200
+#define GL_TEXTURE_1D                          0x0DE0
+#define GL_TEXTURE_2D                          0x0DE1
+#define GL_TEXTURE_WRAP_S                      0x2802
+#define GL_TEXTURE_WRAP_T                      0x2803
+#define GL_TEXTURE_MAG_FILTER                  0x2800
+#define GL_TEXTURE_MIN_FILTER                  0x2801
+#define GL_TEXTURE_ENV_COLOR                   0x2201
+#define GL_TEXTURE_GEN_S                       0x0C60
+#define GL_TEXTURE_GEN_T                       0x0C61
+#define GL_TEXTURE_GEN_MODE                    0x2500
+#define GL_TEXTURE_BORDER_COLOR                        0x1004
+#define GL_TEXTURE_WIDTH                       0x1000
+#define GL_TEXTURE_HEIGHT                      0x1001
+#define GL_TEXTURE_BORDER                      0x1005
+#define GL_TEXTURE_COMPONENTS                  0x1003
+#define GL_TEXTURE_RED_SIZE                    0x805C
+#define GL_TEXTURE_GREEN_SIZE                  0x805D
+#define GL_TEXTURE_BLUE_SIZE                   0x805E
+#define GL_TEXTURE_ALPHA_SIZE                  0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE              0x8060
+#define GL_TEXTURE_INTENSITY_SIZE              0x8061
+#define GL_NEAREST_MIPMAP_NEAREST              0x2700
+#define GL_NEAREST_MIPMAP_LINEAR               0x2702
+#define GL_LINEAR_MIPMAP_NEAREST               0x2701
+#define GL_LINEAR_MIPMAP_LINEAR                        0x2703
+#define GL_OBJECT_LINEAR                       0x2401
+#define GL_OBJECT_PLANE                                0x2501
+#define GL_EYE_LINEAR                          0x2400
+#define GL_EYE_PLANE                           0x2502
+#define GL_SPHERE_MAP                          0x2402
+#define GL_DECAL                               0x2101
+#define GL_MODULATE                            0x2100
+#define GL_NEAREST                             0x2600
+#define GL_REPEAT                              0x2901
+#define GL_CLAMP                               0x2900
+#define GL_S                                   0x2000
+#define GL_T                                   0x2001
+#define GL_R                                   0x2002
+#define GL_Q                                   0x2003
+#define GL_TEXTURE_GEN_R                       0x0C62
+#define GL_TEXTURE_GEN_Q                       0x0C63
+
+/* Utility */
+#define GL_VENDOR                              0x1F00
+#define GL_RENDERER                            0x1F01
+#define GL_VERSION                             0x1F02
+#define GL_EXTENSIONS                          0x1F03
+
+/* Errors */
+#define GL_NO_ERROR                            0x0
+#define GL_INVALID_ENUM                                0x0500
+#define GL_INVALID_VALUE                       0x0501
+#define GL_INVALID_OPERATION                   0x0502
+#define GL_STACK_OVERFLOW                      0x0503
+#define GL_STACK_UNDERFLOW                     0x0504
+#define GL_OUT_OF_MEMORY                       0x0505
+
+/* glPush/PopAttrib bits */
+#define GL_CURRENT_BIT                         0x00000001
+#define GL_POINT_BIT                           0x00000002
+#define GL_LINE_BIT                            0x00000004
+#define GL_POLYGON_BIT                         0x00000008
+#define GL_POLYGON_STIPPLE_BIT                 0x00000010
+#define GL_PIXEL_MODE_BIT                      0x00000020
+#define GL_LIGHTING_BIT                                0x00000040
+#define GL_FOG_BIT                             0x00000080
+#define GL_DEPTH_BUFFER_BIT                    0x00000100
+#define GL_ACCUM_BUFFER_BIT                    0x00000200
+#define GL_STENCIL_BUFFER_BIT                  0x00000400
+#define GL_VIEWPORT_BIT                                0x00000800
+#define GL_TRANSFORM_BIT                       0x00001000
+#define GL_ENABLE_BIT                          0x00002000
+#define GL_COLOR_BUFFER_BIT                    0x00004000
+#define GL_HINT_BIT                            0x00008000
+#define GL_EVAL_BIT                            0x00010000
+#define GL_LIST_BIT                            0x00020000
+#define GL_TEXTURE_BIT                         0x00040000
+#define GL_SCISSOR_BIT                         0x00080000
+#define GL_ALL_ATTRIB_BITS                     0x000FFFFF
+
+
+/* OpenGL 1.1 */
+#define GL_PROXY_TEXTURE_1D                    0x8063
+#define GL_PROXY_TEXTURE_2D                    0x8064
+#define GL_TEXTURE_PRIORITY                    0x8066
+#define GL_TEXTURE_RESIDENT                    0x8067
+#define GL_TEXTURE_BINDING_1D                  0x8068
+#define GL_TEXTURE_BINDING_2D                  0x8069
+#define GL_TEXTURE_INTERNAL_FORMAT             0x1003
+#define GL_ALPHA4                              0x803B
+#define GL_ALPHA8                              0x803C
+#define GL_ALPHA12                             0x803D
+#define GL_ALPHA16                             0x803E
+#define GL_LUMINANCE4                          0x803F
+#define GL_LUMINANCE8                          0x8040
+#define GL_LUMINANCE12                         0x8041
+#define GL_LUMINANCE16                         0x8042
+#define GL_LUMINANCE4_ALPHA4                   0x8043
+#define GL_LUMINANCE6_ALPHA2                   0x8044
+#define GL_LUMINANCE8_ALPHA8                   0x8045
+#define GL_LUMINANCE12_ALPHA4                  0x8046
+#define GL_LUMINANCE12_ALPHA12                 0x8047
+#define GL_LUMINANCE16_ALPHA16                 0x8048
+#define GL_INTENSITY                           0x8049
+#define GL_INTENSITY4                          0x804A
+#define GL_INTENSITY8                          0x804B
+#define GL_INTENSITY12                         0x804C
+#define GL_INTENSITY16                         0x804D
+#define GL_R3_G3_B2                            0x2A10
+#define GL_RGB4                                        0x804F
+#define GL_RGB5                                        0x8050
+#define GL_RGB8                                        0x8051
+#define GL_RGB10                               0x8052
+#define GL_RGB12                               0x8053
+#define GL_RGB16                               0x8054
+#define GL_RGBA2                               0x8055
+#define GL_RGBA4                               0x8056
+#define GL_RGB5_A1                             0x8057
+#define GL_RGBA8                               0x8058
+#define GL_RGB10_A2                            0x8059
+#define GL_RGBA12                              0x805A
+#define GL_RGBA16                              0x805B
+#define GL_CLIENT_PIXEL_STORE_BIT              0x00000001
+#define GL_CLIENT_VERTEX_ARRAY_BIT             0x00000002
+#define GL_ALL_CLIENT_ATTRIB_BITS              0xFFFFFFFF
+#define GL_CLIENT_ALL_ATTRIB_BITS              0xFFFFFFFF
+
 
 
 /*
@@ -1131,17 +778,13 @@ typedef double           GLclampd;       /* double precision float in [0,1] */
 
 GLAPI void GLAPIENTRY glClearIndex( GLfloat c );
 
-GLAPI void GLAPIENTRY glClearColor( GLclampf red,
-                         GLclampf green,
-                         GLclampf blue,
-                         GLclampf alpha );
+GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
 
 GLAPI void GLAPIENTRY glClear( GLbitfield mask );
 
 GLAPI void GLAPIENTRY glIndexMask( GLuint mask );
 
-GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green,
-                        GLboolean blue, GLboolean alpha );
+GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha );
 
 GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref );
 
@@ -1171,8 +814,7 @@ GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag );
 
 GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag );
 
-GLAPI void GLAPIENTRY glScissor( GLint x, GLint y,
-                                   GLsizei width, GLsizei height);
+GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height);
 
 GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation );
 
@@ -1217,7 +859,7 @@ GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode );
 
 GLAPI GLenum GLAPIENTRY glGetError( void );
 
-GLAPI const GLubyte* GLAPIENTRY glGetString( GLenum name );
+GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name );
 
 GLAPI void GLAPIENTRY glFinish( void );
 
@@ -1226,7 +868,6 @@ GLAPI void GLAPIENTRY glFlush( void );
 GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode );
 
 
-
 /*
  * Depth Buffer
  */
@@ -1244,13 +885,11 @@ GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val );
  * Accumulation Buffer
  */
 
-GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green,
-                                      GLfloat blue, GLfloat alpha );
+GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
 
 GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value );
 
 
-
 /*
  * Transformation
  */
@@ -1292,7 +931,6 @@ GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z );
 GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z );
 
 
-
 /*
  * Display Lists
  */
@@ -1315,7 +953,6 @@ GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type,
 GLAPI void GLAPIENTRY glListBase( GLuint base );
 
 
-
 /*
  * Drawing Functions
  */
@@ -1511,7 +1148,6 @@ GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 );
 GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 );
 
 
-
 /*
  * Vertex Arrays  (1.1)
  */
@@ -1533,7 +1169,7 @@ GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type,
 
 GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr );
 
-GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, void **params );
+GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params );
 
 GLAPI void GLAPIENTRY glArrayElement( GLint i );
 
@@ -1545,7 +1181,6 @@ GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count,
 GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride,
                                            const GLvoid *pointer );
 
-
 /*
  * Lighting
  */
@@ -1580,8 +1215,6 @@ GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params
 GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode );
 
 
-
-
 /*
  * Raster functions
  */
@@ -1594,11 +1227,11 @@ GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param );
 GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param );
 GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param );
 
-GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLint mapsize,
+GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize,
                                     const GLfloat *values );
-GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLint mapsize,
+GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize,
                                      const GLuint *values );
-GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLint mapsize,
+GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize,
                                      const GLushort *values );
 
 GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values );
@@ -1623,8 +1256,6 @@ GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y,
                                     GLsizei width, GLsizei height,
                                     GLenum type );
 
-
-
 /*
  * Stenciling
  */
@@ -1702,7 +1333,6 @@ GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level,
                                      GLvoid *pixels );
 
 
-
 /* 1.1 functions */
 
 GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures );
@@ -1759,8 +1389,6 @@ GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level,
                                            GLsizei width, GLsizei height );
 
 
-
-
 /*
  * Evaluators
  */
@@ -1814,7 +1442,6 @@ GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 );
 GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
 
 
-
 /*
  * Fog
  */
@@ -1828,7 +1455,6 @@ GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params );
 GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params );
 
 
-
 /*
  * Selection and Feedback
  */
@@ -1850,217 +1476,51 @@ GLAPI void GLAPIENTRY glPopName( void );
 
 
 /*
- * Extensions
+ * OpenGL 1.2
  */
 
-/* GL_EXT_blend_minmax */
-GLAPI void GLAPIENTRY glBlendEquationEXT( GLenum mode );
-
-
-
-/* GL_EXT_blend_color */
-GLAPI void GLAPIENTRY glBlendColorEXT( GLclampf red, GLclampf green,
-                                       GLclampf blue, GLclampf alpha );
-
-
-
-/* GL_EXT_polygon_offset */
-GLAPI void GLAPIENTRY glPolygonOffsetEXT( GLfloat factor, GLfloat bias );
-
-
-
-/* GL_EXT_vertex_array */
-
-GLAPI void GLAPIENTRY glVertexPointerEXT( GLint size, GLenum type,
-                                          GLsizei stride,
-                                          GLsizei count, const GLvoid *ptr );
-
-GLAPI void GLAPIENTRY glNormalPointerEXT( GLenum type, GLsizei stride,
-                                          GLsizei count, const GLvoid *ptr );
-
-GLAPI void GLAPIENTRY glColorPointerEXT( GLint size, GLenum type,
-                                         GLsizei stride,
-                                         GLsizei count, const GLvoid *ptr );
-
-GLAPI void GLAPIENTRY glIndexPointerEXT( GLenum type, GLsizei stride,
-                                         GLsizei count, const GLvoid *ptr );
-
-GLAPI void GLAPIENTRY glTexCoordPointerEXT( GLint size, GLenum type,
-                                            GLsizei stride, GLsizei count,
-                                            const GLvoid *ptr );
-
-GLAPI void GLAPIENTRY glEdgeFlagPointerEXT( GLsizei stride, GLsizei count,
-                                            const GLboolean *ptr );
-
-GLAPI void GLAPIENTRY glGetPointervEXT( GLenum pname, void **params );
-
-GLAPI void GLAPIENTRY glArrayElementEXT( GLint i );
-
-GLAPI void GLAPIENTRY glDrawArraysEXT( GLenum mode, GLint first,
-                                       GLsizei count );
-
-
-
-/* GL_EXT_texture_object */
-
-GLAPI void GLAPIENTRY glGenTexturesEXT( GLsizei n, GLuint *textures );
-
-GLAPI void GLAPIENTRY glDeleteTexturesEXT( GLsizei n, const GLuint *textures);
-
-GLAPI void GLAPIENTRY glBindTextureEXT( GLenum target, GLuint texture );
-
-GLAPI void GLAPIENTRY glPrioritizeTexturesEXT( GLsizei n,
-                                               const GLuint *textures,
-                                               const GLclampf *priorities );
-
-GLAPI GLboolean GLAPIENTRY glAreTexturesResidentEXT( GLsizei n,
-                                                     const GLuint *textures,
-                                                     GLboolean *residences );
-
-GLAPI GLboolean GLAPIENTRY glIsTextureEXT( GLuint texture );
-
-
-
-/* GL_EXT_texture3D */
-
-GLAPI void GLAPIENTRY glTexImage3DEXT( GLenum target, GLint level,
-                                       GLenum internalFormat,
-                                       GLsizei width, GLsizei height,
-                                       GLsizei depth, GLint border,
-                                       GLenum format, GLenum type,
-                                       const GLvoid *pixels );
-
-GLAPI void GLAPIENTRY glTexSubImage3DEXT( GLenum target, GLint level,
-                                          GLint xoffset, GLint yoffset,
-                                          GLint zoffset, GLsizei width,
-                                          GLsizei height, GLsizei depth,
-                                          GLenum format,
-                                          GLenum type, const GLvoid *pixels);
-
-GLAPI void GLAPIENTRY glCopyTexSubImage3DEXT( GLenum target, GLint level,
-                                              GLint xoffset, GLint yoffset,
-                                              GLint zoffset, GLint x,
-                                              GLint y, GLsizei width,
-                                              GLsizei height );
-
-
-
-/* GL_EXT_color_table */
-
-GLAPI void GLAPIENTRY glColorTableEXT( GLenum target, GLenum internalformat,
-                                       GLsizei width, GLenum format,
-                                       GLenum type, const GLvoid *table );
-
-GLAPI void GLAPIENTRY glColorSubTableEXT( GLenum target,
-                                          GLsizei start, GLsizei count,
-                                          GLenum format, GLenum type,
-                                          const GLvoid *data );
-
-GLAPI void GLAPIENTRY glGetColorTableEXT( GLenum target, GLenum format,
-                                          GLenum type, GLvoid *table );
-
-GLAPI void GLAPIENTRY glGetColorTableParameterfvEXT( GLenum target,
-                                                     GLenum pname,
-                                                     GLfloat *params );
-
-GLAPI void GLAPIENTRY glGetColorTableParameterivEXT( GLenum target,
-                                                     GLenum pname,
-                                                     GLint *params );
-
-
-/* GL_ARB_multitexture */
-
-GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture);
-GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture);
-GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s);
-GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v);
-GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s);
-GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v);
-GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s);
-GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v);
-GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s);
-GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v);
-GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t);
-GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v);
-GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t);
-GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v);
-GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t);
-GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v);
-GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t);
-GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v);
-GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r);
-GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v);
-GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r);
-GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v);
-GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r);
-GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v);
-GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r);
-GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v);
-GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v);
-GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
-GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q);
-GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v);
-GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
-GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v);
-
-
-
-/* GL_EXT_point_parameters */
-GLAPI void GLAPIENTRY glPointParameterfEXT( GLenum pname, GLfloat param );
-GLAPI void GLAPIENTRY glPointParameterfvEXT( GLenum pname,
-                                               const GLfloat *params );
-
-
-
-/* GL_INGR_blend_func_separate */
-GLAPI void GLAPIENTRY glBlendFuncSeparateINGR( GLenum sfactorRGB,
-                                               GLenum dfactorRGB,
-                                               GLenum sfactorAlpha,
-                                               GLenum dfactorAlpha );
-
-
-
-/* GL_MESA_window_pos */
-
-GLAPI void GLAPIENTRY glWindowPos2iMESA( GLint x, GLint y );
-GLAPI void GLAPIENTRY glWindowPos2sMESA( GLshort x, GLshort y );
-GLAPI void GLAPIENTRY glWindowPos2fMESA( GLfloat x, GLfloat y );
-GLAPI void GLAPIENTRY glWindowPos2dMESA( GLdouble x, GLdouble y );
-
-GLAPI void GLAPIENTRY glWindowPos2ivMESA( const GLint *p );
-GLAPI void GLAPIENTRY glWindowPos2svMESA( const GLshort *p );
-GLAPI void GLAPIENTRY glWindowPos2fvMESA( const GLfloat *p );
-GLAPI void GLAPIENTRY glWindowPos2dvMESA( const GLdouble *p );
-
-GLAPI void GLAPIENTRY glWindowPos3iMESA( GLint x, GLint y, GLint z );
-GLAPI void GLAPIENTRY glWindowPos3sMESA( GLshort x, GLshort y, GLshort z );
-GLAPI void GLAPIENTRY glWindowPos3fMESA( GLfloat x, GLfloat y, GLfloat z );
-GLAPI void GLAPIENTRY glWindowPos3dMESA( GLdouble x, GLdouble y, GLdouble z );
-
-GLAPI void GLAPIENTRY glWindowPos3ivMESA( const GLint *p );
-GLAPI void GLAPIENTRY glWindowPos3svMESA( const GLshort *p );
-GLAPI void GLAPIENTRY glWindowPos3fvMESA( const GLfloat *p );
-GLAPI void GLAPIENTRY glWindowPos3dvMESA( const GLdouble *p );
-
-GLAPI void GLAPIENTRY glWindowPos4iMESA( GLint x, GLint y, GLint z, GLint w );
-GLAPI void GLAPIENTRY glWindowPos4sMESA( GLshort x, GLshort y, GLshort z, GLshort w );
-GLAPI void GLAPIENTRY glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
-GLAPI void GLAPIENTRY glWindowPos4dMESA( GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-
-GLAPI void GLAPIENTRY glWindowPos4ivMESA( const GLint *p );
-GLAPI void GLAPIENTRY glWindowPos4svMESA( const GLshort *p );
-GLAPI void GLAPIENTRY glWindowPos4fvMESA( const GLfloat *p );
-GLAPI void GLAPIENTRY glWindowPos4dvMESA( const GLdouble *p );
-
+#define GL_RESCALE_NORMAL                      0x803A
+#define GL_CLAMP_TO_EDGE                       0x812F
+#define GL_MAX_ELEMENTS_VERTICES               0x80E8
+#define GL_MAX_ELEMENTS_INDICES                        0x80E9
+#define GL_BGR                                 0x80E0
+#define GL_BGRA                                        0x80E1
+#define GL_UNSIGNED_BYTE_3_3_2                 0x8032
+#define GL_UNSIGNED_BYTE_2_3_3_REV             0x8362
+#define GL_UNSIGNED_SHORT_5_6_5                        0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV            0x8364
+#define GL_UNSIGNED_SHORT_4_4_4_4              0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV          0x8365
+#define GL_UNSIGNED_SHORT_5_5_5_1              0x8034
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV          0x8366
+#define GL_UNSIGNED_INT_8_8_8_8                        0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_REV            0x8367
+#define GL_UNSIGNED_INT_10_10_10_2             0x8036
+#define GL_UNSIGNED_INT_2_10_10_10_REV         0x8368
+#define GL_LIGHT_MODEL_COLOR_CONTROL           0x81F8
+#define GL_SINGLE_COLOR                                0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR             0x81FA
+#define GL_TEXTURE_MIN_LOD                     0x813A
+#define GL_TEXTURE_MAX_LOD                     0x813B
+#define GL_TEXTURE_BASE_LEVEL                  0x813C
+#define GL_TEXTURE_MAX_LEVEL                   0x813D
+#define GL_SMOOTH_POINT_SIZE_RANGE             0x0B12
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY       0x0B13
+#define GL_SMOOTH_LINE_WIDTH_RANGE             0x0B22
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY       0x0B23
+#define GL_ALIASED_POINT_SIZE_RANGE            0x846D
+#define GL_ALIASED_LINE_WIDTH_RANGE            0x846E
+#define GL_PACK_SKIP_IMAGES                    0x806B
+#define GL_PACK_IMAGE_HEIGHT                   0x806C
+#define GL_UNPACK_SKIP_IMAGES                  0x806D
+#define GL_UNPACK_IMAGE_HEIGHT                 0x806E
+#define GL_TEXTURE_3D                          0x806F
+#define GL_PROXY_TEXTURE_3D                    0x8070
+#define GL_TEXTURE_DEPTH                       0x8071
+#define GL_TEXTURE_WRAP_R                      0x8072
+#define GL_MAX_3D_TEXTURE_SIZE                 0x8073
+#define GL_TEXTURE_BINDING_3D                  0x806A
 
-/* GL_MESA_resize_buffers */
-
-GLAPI void GLAPIENTRY glResizeBuffersMESA( void );
-
-
-/* 1.2 functions */
 GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start,
        GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
 
@@ -2084,8 +1544,92 @@ GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level,
                                              GLint y, GLsizei width,
                                              GLsizei height );
 
+typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
+typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+
+/*
+ * GL_ARB_imaging
+ */
+
+#define GL_CONSTANT_COLOR                      0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR            0x8002
+#define GL_CONSTANT_ALPHA                      0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA            0x8004
+#define GL_COLOR_TABLE                         0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE                0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE       0x80D2
+#define GL_PROXY_COLOR_TABLE                   0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE  0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
+#define GL_COLOR_TABLE_SCALE                   0x80D6
+#define GL_COLOR_TABLE_BIAS                    0x80D7
+#define GL_COLOR_TABLE_FORMAT                  0x80D8
+#define GL_COLOR_TABLE_WIDTH                   0x80D9
+#define GL_COLOR_TABLE_RED_SIZE                        0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE              0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE               0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE              0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE          0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE          0x80DF
+#define GL_CONVOLUTION_1D                      0x8010
+#define GL_CONVOLUTION_2D                      0x8011
+#define GL_SEPARABLE_2D                                0x8012
+#define GL_CONVOLUTION_BORDER_MODE             0x8013
+#define GL_CONVOLUTION_FILTER_SCALE            0x8014
+#define GL_CONVOLUTION_FILTER_BIAS             0x8015
+#define GL_REDUCE                              0x8016
+#define GL_CONVOLUTION_FORMAT                  0x8017
+#define GL_CONVOLUTION_WIDTH                   0x8018
+#define GL_CONVOLUTION_HEIGHT                  0x8019
+#define GL_MAX_CONVOLUTION_WIDTH               0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT              0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE          0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE                0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE         0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE                0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS           0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS         0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS          0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS         0x8023
+#define GL_CONSTANT_BORDER                     0x8151
+#define GL_REPLICATE_BORDER                    0x8153
+#define GL_CONVOLUTION_BORDER_COLOR            0x8154
+#define GL_COLOR_MATRIX                                0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH            0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH                0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE         0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE       0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE                0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE       0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS          0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS                0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS         0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS                0x80BB
+#define GL_HISTOGRAM                           0x8024
+#define GL_PROXY_HISTOGRAM                     0x8025
+#define GL_HISTOGRAM_WIDTH                     0x8026
+#define GL_HISTOGRAM_FORMAT                    0x8027
+#define GL_HISTOGRAM_RED_SIZE                  0x8028
+#define GL_HISTOGRAM_GREEN_SIZE                        0x8029
+#define GL_HISTOGRAM_BLUE_SIZE                 0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE                        0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE            0x802C
+#define GL_HISTOGRAM_SINK                      0x802D
+#define GL_MINMAX                              0x802E
+#define GL_MINMAX_FORMAT                       0x802F
+#define GL_MINMAX_SINK                         0x8030
+#define GL_TABLE_TOO_LARGE                     0x8031
+#define GL_BLEND_EQUATION                      0x8009
+#define GL_MIN                                 0x8007
+#define GL_MAX                                 0x8008
+#define GL_FUNC_ADD                            0x8006
+#define GL_FUNC_SUBTRACT                       0x800A
+#define GL_FUNC_REVERSE_SUBTRACT               0x800B
+#define GL_BLEND_COLOR                         0x8005
 
-/* 1.2 imaging extension functions */
 
 GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat,
                                     GLsizei width, GLenum format,
@@ -2195,57 +1739,552 @@ GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target,
 GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format,
        GLenum type, GLvoid *row, GLvoid *column, GLvoid *span );
 
+typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
+typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
+typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target);
 
 
-/* GL_EXT_compiled_vertex_array */
-GLAPI void GLAPIENTRY glLockArraysEXT( GLint first, GLsizei count );
-GLAPI void GLAPIENTRY glUnlockArraysEXT( void );
 
+/*
+ * OpenGL 1.3
+ */
 
+/* multitexture */
+#define GL_TEXTURE0                            0x84C0
+#define GL_TEXTURE1                            0x84C1
+#define GL_TEXTURE2                            0x84C2
+#define GL_TEXTURE3                            0x84C3
+#define GL_TEXTURE4                            0x84C4
+#define GL_TEXTURE5                            0x84C5
+#define GL_TEXTURE6                            0x84C6
+#define GL_TEXTURE7                            0x84C7
+#define GL_TEXTURE8                            0x84C8
+#define GL_TEXTURE9                            0x84C9
+#define GL_TEXTURE10                           0x84CA
+#define GL_TEXTURE11                           0x84CB
+#define GL_TEXTURE12                           0x84CC
+#define GL_TEXTURE13                           0x84CD
+#define GL_TEXTURE14                           0x84CE
+#define GL_TEXTURE15                           0x84CF
+#define GL_TEXTURE16                           0x84D0
+#define GL_TEXTURE17                           0x84D1
+#define GL_TEXTURE18                           0x84D2
+#define GL_TEXTURE19                           0x84D3
+#define GL_TEXTURE20                           0x84D4
+#define GL_TEXTURE21                           0x84D5
+#define GL_TEXTURE22                           0x84D6
+#define GL_TEXTURE23                           0x84D7
+#define GL_TEXTURE24                           0x84D8
+#define GL_TEXTURE25                           0x84D9
+#define GL_TEXTURE26                           0x84DA
+#define GL_TEXTURE27                           0x84DB
+#define GL_TEXTURE28                           0x84DC
+#define GL_TEXTURE29                           0x84DD
+#define GL_TEXTURE30                           0x84DE
+#define GL_TEXTURE31                           0x84DF
+#define GL_ACTIVE_TEXTURE                      0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE               0x84E1
+#define GL_MAX_TEXTURE_UNITS                   0x84E2
+/* texture_cube_map */
+#define GL_NORMAL_MAP                          0x8511
+#define GL_REFLECTION_MAP                      0x8512
+#define GL_TEXTURE_CUBE_MAP                    0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP            0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X         0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X         0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y         0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y         0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z         0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z         0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP              0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE           0x851C
+/* texture_compression */
+#define GL_COMPRESSED_ALPHA                    0x84E9
+#define GL_COMPRESSED_LUMINANCE                        0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA          0x84EB
+#define GL_COMPRESSED_INTENSITY                        0x84EC
+#define GL_COMPRESSED_RGB                      0x84ED
+#define GL_COMPRESSED_RGBA                     0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT            0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE       0x86A0
+#define GL_TEXTURE_COMPRESSED                  0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS      0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS          0x86A3
+/* multisample */
+#define GL_MULTISAMPLE                         0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE            0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE                 0x809F
+#define GL_SAMPLE_COVERAGE                     0x80A0
+#define GL_SAMPLE_BUFFERS                      0x80A8
+#define GL_SAMPLES                             0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE               0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT              0x80AB
+#define GL_MULTISAMPLE_BIT                     0x20000000
+/* transpose_matrix */
+#define GL_TRANSPOSE_MODELVIEW_MATRIX          0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX         0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX            0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX              0x84E6
+/* texture_env_combine */
+#define GL_COMBINE                             0x8570
+#define GL_COMBINE_RGB                         0x8571
+#define GL_COMBINE_ALPHA                       0x8572
+#define GL_SOURCE0_RGB                         0x8580
+#define GL_SOURCE1_RGB                         0x8581
+#define GL_SOURCE2_RGB                         0x8582
+#define GL_SOURCE0_ALPHA                       0x8588
+#define GL_SOURCE1_ALPHA                       0x8589
+#define GL_SOURCE2_ALPHA                       0x858A
+#define GL_OPERAND0_RGB                                0x8590
+#define GL_OPERAND1_RGB                                0x8591
+#define GL_OPERAND2_RGB                                0x8592
+#define GL_OPERAND0_ALPHA                      0x8598
+#define GL_OPERAND1_ALPHA                      0x8599
+#define GL_OPERAND2_ALPHA                      0x859A
+#define GL_RGB_SCALE                           0x8573
+#define GL_ADD_SIGNED                          0x8574
+#define GL_INTERPOLATE                         0x8575
+#define GL_SUBTRACT                            0x84E7
+#define GL_CONSTANT                            0x8576
+#define GL_PRIMARY_COLOR                       0x8577
+#define GL_PREVIOUS                            0x8578
+/* texture_env_dot3 */
+#define GL_DOT3_RGB                            0x86AE
+#define GL_DOT3_RGBA                           0x86AF
+/* texture_border_clamp */
+#define GL_CLAMP_TO_BORDER                     0x812D
+
+GLAPI void GLAPIENTRY glActiveTexture( GLenum texture );
+
+GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture );
+
+GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data );
+
+GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
+
+GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
+
+GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data );
+
+GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
+
+GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );
+
+GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img );
+
+GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s );
+
+GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s );
+
+GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s );
+
+GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s );
+
+GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t );
+
+GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t );
+
+GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v );
 
-#if defined(__BEOS__) || defined(__QUICKDRAW__)
-#pragma export off
-#endif
+GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t );
+
+GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t );
+
+GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r );
+
+GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r );
+
+GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r );
+
+GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r );
+
+GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );
+
+GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
+
+GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q );
+
+GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v );
+
+GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );
+
+GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v );
+
+
+GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] );
+
+GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] );
+
+GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] );
+
+GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] );
+
+GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert );
+
+typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
+typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
+typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
+typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
+typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img);
+
+
+/*
+ * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1)
+ */
+#ifndef GL_ARB_multitexture
+#define GL_ARB_multitexture 1
+
+#define GL_TEXTURE0_ARB                                0x84C0
+#define GL_TEXTURE1_ARB                                0x84C1
+#define GL_TEXTURE2_ARB                                0x84C2
+#define GL_TEXTURE3_ARB                                0x84C3
+#define GL_TEXTURE4_ARB                                0x84C4
+#define GL_TEXTURE5_ARB                                0x84C5
+#define GL_TEXTURE6_ARB                                0x84C6
+#define GL_TEXTURE7_ARB                                0x84C7
+#define GL_TEXTURE8_ARB                                0x84C8
+#define GL_TEXTURE9_ARB                                0x84C9
+#define GL_TEXTURE10_ARB                       0x84CA
+#define GL_TEXTURE11_ARB                       0x84CB
+#define GL_TEXTURE12_ARB                       0x84CC
+#define GL_TEXTURE13_ARB                       0x84CD
+#define GL_TEXTURE14_ARB                       0x84CE
+#define GL_TEXTURE15_ARB                       0x84CF
+#define GL_TEXTURE16_ARB                       0x84D0
+#define GL_TEXTURE17_ARB                       0x84D1
+#define GL_TEXTURE18_ARB                       0x84D2
+#define GL_TEXTURE19_ARB                       0x84D3
+#define GL_TEXTURE20_ARB                       0x84D4
+#define GL_TEXTURE21_ARB                       0x84D5
+#define GL_TEXTURE22_ARB                       0x84D6
+#define GL_TEXTURE23_ARB                       0x84D7
+#define GL_TEXTURE24_ARB                       0x84D8
+#define GL_TEXTURE25_ARB                       0x84D9
+#define GL_TEXTURE26_ARB                       0x84DA
+#define GL_TEXTURE27_ARB                       0x84DB
+#define GL_TEXTURE28_ARB                       0x84DC
+#define GL_TEXTURE29_ARB                       0x84DD
+#define GL_TEXTURE30_ARB                       0x84DE
+#define GL_TEXTURE31_ARB                       0x84DF
+#define GL_ACTIVE_TEXTURE_ARB                  0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB           0x84E1
+#define GL_MAX_TEXTURE_UNITS_ARB               0x84E2
+
+GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture);
+GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture);
+GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s);
+GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v);
+GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s);
+GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v);
+GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s);
+GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v);
+GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s);
+GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v);
+GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t);
+GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v);
+GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t);
+GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v);
+GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t);
+GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v);
+GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t);
+GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v);
+GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r);
+GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v);
+GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r);
+GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v);
+GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r);
+GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v);
+GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r);
+GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v);
+GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v);
+GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
+GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q);
+GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v);
+GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v);
+
+typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
+
+#endif /* GL_ARB_multitexture */
+
+
+
+/*
+ * Define this token if you want "old-style" header file behaviour (extensions
+ * defined in gl.h).  Otherwise, extensions will be included from glext.h.
+ */
+#if defined(GL_GLEXT_LEGACY)
+
+/* All extensions that used to be here are now found in glext.h */
+
+#else  /* GL_GLEXT_LEGACY */
+
+#include <GL/glext.h>
+
+#endif  /* GL_GLEXT_LEGACY */
+
+
+
+#if GL_ARB_shader_objects
+
+#ifndef GL_MESA_shader_debug
+#define GL_MESA_shader_debug 1
+
+#define GL_DEBUG_OBJECT_MESA              0x8759
+#define GL_DEBUG_PRINT_MESA               0x875A
+#define GL_DEBUG_ASSERT_MESA              0x875B
+
+GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void);
+GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
+GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
+                                         GLsizei *length, GLcharARB *debugLog);
+GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
+
+#endif /* GL_MESA_shader_debug */
+
+#endif /* GL_ARB_shader_objects */
 
 
 /*
- * Compile-time tests for extensions:
+ * ???. GL_MESA_packed_depth_stencil
+ * XXX obsolete
  */
-#define GL_EXT_blend_color             1
-#define GL_EXT_blend_logic_op          1
-#define GL_EXT_blend_minmax            1
-#define GL_EXT_blend_subtract          1
-#define GL_EXT_polygon_offset          1
-#define GL_EXT_vertex_array            1
-#define GL_EXT_texture_object          1
-#define GL_EXT_texture3D               1
-#define GL_EXT_paletted_texture                1
-#define GL_EXT_shared_texture_palette  1
-#define GL_EXT_point_parameters                1
-#define GL_EXT_rescale_normal          1
-#define GL_EXT_abgr                    1
-#define GL_EXT_stencil_wrap            1
-#define GL_MESA_window_pos             1
-#define GL_MESA_resize_buffers         1
-#define GL_SGIS_texture_edge_clamp     1
-#define GL_INGR_blend_func_separate    1
-#define GL_ARB_multitexture            1
-#define GL_NV_texgen_reflection                1
-#define GL_PGI_misc_hints               1
-#define GL_EXT_compiled_vertex_array    1
-#define GL_EXT_clip_volume_hint         1
-
-
-#ifdef macintosh
-       #pragma enumsalwaysint reset
-       #if PRAGMA_IMPORT_SUPPORTED
-       #pragma import off
-       #endif
+#ifndef GL_MESA_packed_depth_stencil
+#define GL_MESA_packed_depth_stencil 1
+
+#define GL_DEPTH_STENCIL_MESA                  0x8750
+#define GL_UNSIGNED_INT_24_8_MESA              0x8751
+#define GL_UNSIGNED_INT_8_24_REV_MESA          0x8752
+#define GL_UNSIGNED_SHORT_15_1_MESA            0x8753
+#define GL_UNSIGNED_SHORT_1_15_REV_MESA                0x8754
+
+#endif /* GL_MESA_packed_depth_stencil */
+
+
+#ifndef GL_MESA_program_debug
+#define GL_MESA_program_debug 1
+
+#define GL_FRAGMENT_PROGRAM_POSITION_MESA       0x8bb0
+#define GL_FRAGMENT_PROGRAM_CALLBACK_MESA       0x8bb1
+#define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA  0x8bb2
+#define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA  0x8bb3
+#define GL_VERTEX_PROGRAM_POSITION_MESA         0x8bb4
+#define GL_VERTEX_PROGRAM_CALLBACK_MESA         0x8bb5
+#define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA    0x8bb6
+#define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA    0x8bb7
+
+typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data);
+
+GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data);
+
+GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v);
+
+#endif /* GL_MESA_program_debug */
+
+
+#ifndef GL_MESA_texture_array
+#define GL_MESA_texture_array 1
+
+/* GL_MESA_texture_array uses the same enum values as GL_EXT_texture_array.
+ */
+#ifndef GL_EXT_texture_array
+
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target,
+    GLenum attachment, GLuint texture, GLint level, GLint layer);
+#endif /* GL_GLEXT_PROTOTYPES */
+
+#if 0
+/* (temporarily) disabled because of collision with typedef in glext.h
+ * that happens if apps include both gl.h and glext.h
+ */
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target,
+    GLenum attachment, GLuint texture, GLint level, GLint layer);
+#endif
+
+#define GL_TEXTURE_1D_ARRAY_EXT         0x8C18
+#define GL_PROXY_TEXTURE_1D_ARRAY_EXT   0x8C19
+#define GL_TEXTURE_2D_ARRAY_EXT         0x8C1A
+#define GL_PROXY_TEXTURE_2D_ARRAY_EXT   0x8C1B
+#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
+#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
+#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
+#endif
+
 #endif
 
 
+#ifndef GL_ATI_blend_equation_separate
+#define GL_ATI_blend_equation_separate 1
+
+#define GL_ALPHA_BLEND_EQUATION_ATI            0x883D
+
+GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA );
+typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA);
+
+#endif /* GL_ATI_blend_equation_separate */
+
+
+
+/**
+ ** NOTE!!!!!  If you add new functions to this file, or update
+ ** glext.h be sure to regenerate the gl_mangle.h file.  See comments
+ ** in that file for details.
+ **/
+
+
+
+/**********************************************************************
+ * Begin system-specific stuff
+ */
+#if defined(PRAGMA_EXPORT_SUPPORTED)
+#pragma export off
+#endif
+
+#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED
+#pragma import off
+#endif
+/*
+ * End system-specific stuff
+ **********************************************************************/
+
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif
+#endif /* __gl_h_ */