]> git.mxchange.org Git - simgear.git/commitdiff
Did I forget to commit John's loader patch?
authorcurt <curt>
Fri, 20 Sep 2002 18:10:28 +0000 (18:10 +0000)
committercurt <curt>
Fri, 20 Sep 2002 18:10:28 +0000 (18:10 +0000)
Ran dos2unix on extgl.*
Include <simgear_config.h> from extgl.h so it properly picks up the WIN32
symbol.

simgear/scene/sky/clouds3d/SkySceneLoader.cpp
simgear/scene/sky/clouds3d/SkySceneLoader.hpp
simgear/scene/sky/clouds3d/extgl.c
simgear/scene/sky/clouds3d/extgl.h

index 356a8de50fd1343190e74c7688a0b334b74a283a..066af327234d0ef483a52529a469986587fc598b 100644 (file)
@@ -25,6 +25,8 @@
 
 #include <plib/ssg.h>
 #include <plib/sg.h>
+
+#include <simgear/misc/sg_path.hxx>
 #include <simgear/math/point3d.hxx>
 #include <simgear/math/polar3d.hxx>
 #include <simgear/math/vector.hxx>
@@ -99,14 +101,18 @@ SkySceneLoader::~SkySceneLoader()
  *  It can however, load any number of Cloud
  +
  */ 
-bool SkySceneLoader::Load(std::string filename)
+//bool SkySceneLoader::Load(std::string filepath)
+bool SkySceneLoader::Load( SGPath filename )
 { 
   SkyArchive archive;
-  cout << "SkySceneLoader::Load( " << filename << " )" << endl;
+  SGPath base = filename.dir();
   if (SKYFAILED(archive.Load(filename.c_str()))) {
-       cout << "Archive file not found\n";
-    return false;
+      cout << "Archive file not found\n" <<  filename.c_str();
+      return false;
   }
+    
   char *pFilename;
   
   // Need to create the managers
@@ -124,18 +130,22 @@ bool SkySceneLoader::Load(std::string filename)
   {
     for (unsigned int i = 0; i < iNumFiles; ++i)
     {
-      FAIL_RETURN(archive.FindString("CloudFile", &pFilename, i));  
+      FAIL_RETURN(archive.FindString("CloudFile", &pFilename, i));
+      //  this is where we have to append the $fg_root string to the filename
+      base.append( pFilename );
+      const char *FilePath = base.c_str();
+     
       float rScale = 1.0;
       FAIL_RETURN(archive.FindFloat32("CloudScale", &rScale, i));
       rScale = 30.0;
       SkyArchive cloudArchive;
-      FAIL_RETURN(cloudArchive.Load(pFilename));
+      FAIL_RETURN(cloudArchive.Load(FilePath));
       FAIL_RETURN(SceneManager::InstancePtr()->LoadClouds(cloudArchive, rScale)); 
     }
   }
   
   Vec3f dir(0, 0, 1);
-  pLight->SetPosition(Vec3f(0, 0, 7000));
+  pLight->SetPosition(Vec3f(0, 0, 17000));
   pLight->SetDirection(dir);
   pLight->SetAmbient(Vec4f( 0.0f, 0.0f, 0.0f, 0.0f));
   pLight->SetDiffuse(Vec4f(1.0f, 1.0f, 1.0f, 0.0f));
@@ -175,7 +185,7 @@ void SkySceneLoader::Update( double *view_pos )
        SceneManager::InstancePtr()->Update(*pCam);
        
        // need some scheme to reshade selected clouds a few at a time to save frame rate cycles
-       ///SceneManager::InstancePtr()->ShadeClouds();
+       // SceneManager::InstancePtr()->ShadeClouds();
        
 }
 
index 526173b0764487e95abf88b779e934c32f7efbea..d98555b3dbe7b3af7b59041e32caea38854dbae4 100644 (file)
 #ifndef __SKYSCENELOADER_HPP__
 #define __SKYSCENELOADER_HPP__
 
-#include <string>
-#include "SkyUtil.hpp"
+#ifdef HAVE_CONFIG
+#  include <config.h>
+#endif
 
+#include <simgear/compiler.h>
+#include <simgear/misc/sg_path.hxx>
 #include <simgear/math/point3d.hxx>
 
+#include "SkyUtil.hpp"
+
+
 //------------------------------------------------------------------------------
 /**
  * @class SkySceneLoader
@@ -42,7 +48,7 @@ public:
   SkySceneLoader();
   ~SkySceneLoader();
 
-  bool Load(std::string filename);
+  bool Load( SGPath fileroot );
   
   void Set_Cloud_Orig( Point3D *posit );
   
index 53e10e7df94926ac5ea46103ccac0113da18e8f8..fb7b72d7c61b9b04c2eb58800ae09d59eebe97ef 100755 (executable)
-/* Copyright (c) 2001-2002 Lev Povalahev\r
-\r
-   levp@gmx.net\r
-  \r
-   http://www.uni-karlsruhe.de/~uli2/\r
-\r
-*/                         \r
-\r
-/* following extensions are supported:\r
-\r
-GL_ARB_imaging\r
-GL_ARB_depth_texture\r
-GL_ARB_matrix_palette\r
-GL_ARB_multisample\r
-GL_ARB_multitexture\r
-GL_ARB_point_parameters\r
-GL_ARB_shadow\r
-GL_ARB_shadow_ambient\r
-GL_ARB_texture_compression\r
-GL_ARB_texture_env_add\r
-GL_ARB_texture_env_dot3\r
-GL_ARB_texture_env_combine\r
-GL_ARB_texture_env_crossbar\r
-GL_ARB_texture_border_clamp\r
-GL_ARB_texture_cube_map\r
-GL_ARB_texture_mirrored_repeat\r
-GL_ARB_transpose_matrix\r
-GL_ARB_vertex_blend\r
-GL_EXT_abgr\r
-GL_EXT_compiled_vertex_array\r
-GL_EXT_fog_coord\r
-GL_EXT_multi_draw_arrays\r
-GL_EXT_point_parameters\r
-GL_EXT_secondary_color\r
-GL_EXT_stencil_wrap\r
-GL_EXT_texture_filter_anisotropic\r
-GL_EXT_texture_lod_bias\r
-GL_EXT_vertex_shader\r
-GL_EXT_vertex_weighting\r
-GL_ATI_element_array\r
-GL_ATI_envmap_bumpmap\r
-GL_ATI_fragment_shader\r
-GL_ATI_pn_triangles\r
-GL_ATI_texture_mirror_once\r
-GL_ATI_vertex_array_object;\r
-GL_ATI_vertex_streams\r
-GL_ATIX_point_sprites\r
-GL_ATIX_texture_env_route\r
-GL_HP_occlusion_test\r
-GL_NV_blend_square\r
-GL_NV_copy_depth_to_color\r
-GL_NV_depth_clamp\r
-GL_NV_evaluators\r
-GL_NV_fence\r
-GL_NV_fog_distance\r
-GL_NV_light_max_exponent\r
-GL_NV_occlusion_query\r
-GL_NV_packed_depth_stencil\r
-GL_NV_point_sprite\r
-GL_NV_register_combiners\r
-GL_NV_register_combiners2\r
-GL_NV_texgen_reflection\r
-GL_NV_texture_env_combine4\r
-GL_NV_texture_rectangle\r
-GL_NV_texture_shader\r
-GL_NV_texture_shader2\r
-GL_NV_texture_shader3\r
-GL_NV_vertex_array_range\r
-GL_NV_vertex_array_range2\r
-GL_NV_vertex_program\r
-GL_NV_vertex_program1_1\r
-GL_SGIS_generate_mipmap\r
-GL_SGIX_shadow\r
-GL_SGIX_depth_texture\r
-WGL_ARB_buffer_region\r
-WGL_ARB_extensions_string\r
-WGL_ARB_pbuffer\r
-WGL_ARB_pixel_format\r
-WGL_ARB_render_texture \r
-WGL_EXT_extensions_string\r
-\r
-*/  \r
-     \r
-       \r
-#include "extgl.h"\r
-#include <stdio.h>\r
-\r
-/* function variables */\r
-\r
-/*-------------------------------------*/\r
-/* WGL stuff */\r
-/*-------------------------------------*/\r
-\r
-#ifdef WIN32\r
-\r
-/* WGL_EXT_etxension_string */\r
-\r
-wglGetExtensionsStringEXTPROC wglGetExtensionsStringEXT = NULL;\r
-\r
-/* WGL_ARB_buffer_region */\r
-\r
-wglCreateBufferRegionARBPROC wglCreateBufferRegionARB = NULL;\r
-wglDeleteBufferRegionARBPROC wglDeleteBufferRegionARB = NULL;\r
-wglSaveBufferRegionARBPROC wglSaveBufferRegionARB = NULL;\r
-wglRestoreBufferRegionARBPROC wglRestoreBufferRegionARB = NULL;\r
-\r
-/* WGL_ARB_extension_string */\r
-\r
-wglGetExtensionsStringARBPROC wglGetExtensionsStringARB = NULL;\r
-\r
-/* WGL_ARB_pbuffer */\r
-\r
-wglCreatePbufferARBPROC wglCreatePbufferARB = NULL;\r
-wglGetPbufferDCARBPROC wglGetPbufferDCARB = NULL;\r
-wglReleasePbufferDCARBPROC wglReleasePbufferDCARB = NULL;\r
-wglDestroyPbufferARBPROC wglDestroyPbufferARB = NULL;\r
-wglQueryPbufferARBPROC wglQueryPbufferARB = NULL;\r
-\r
-/* WGL_ARB_pixel_format */\r
-\r
-wglGetPixelFormatAttribivARBPROC wglGetPixelFormatAttribivARB = NULL;\r
-wglGetPixelFormatAttribfvARBPROC wglGetPixelFormatAttribfvARB = NULL;\r
-wglChoosePixelFormatARBPROC wglChoosePixelFormatARB = NULL;\r
-\r
-/* WGL_ARB_render_texture */\r
-\r
-wglBindTexImageARBPROC wglBindTexImageARB = NULL;\r
-wglReleaseTexImageARBPROC wglReleaseTexImageARB = NULL;\r
-wglSetPbufferAttribARBPROC wglSetPbufferAttribARB = NULL;\r
-\r
-/* WGL_EXT_swap_control */\r
-\r
-wglSwapIntervalEXTPROC wglSwapIntervalEXT = NULL;\r
-wglGetSwapIntervalEXTPROC wglGetSwapIntervalEXT = NULL;\r
-\r
-/* WGL_ARB_make_current_read */\r
-\r
-wglMakeContextCurrentARBPROC wglMakeContextCurrentARB = NULL;\r
-wglGetCurrentReadDCARBPROC wglGetCurrentReadDCARB = NULL;\r
-\r
-/* VAR */\r
-\r
-wglAllocateMemoryNVPROC wglAllocateMemoryNV = NULL;\r
-wglFreeMemoryNVPROC wglFreeMemoryNV = NULL;\r
-\r
-\r
-\r
-#endif /* WIN32 */\r
-\r
-/*-------------------------------------*/\r
-/*---WGL STUFF END---------------------*/\r
-/*-------------------------------------*/\r
-\r
-glBlendColorPROC glBlendColor = NULL;\r
-glBlendEquationPROC glBlendEquation = NULL;\r
-glDrawRangeElementsPROC glDrawRangeElements = NULL;\r
-glColorTablePROC glColorTable = NULL;\r
-glColorTableParameterfvPROC glColorTableParameterfv = NULL;\r
-glColorTableParameterivPROC glColorTableParameteriv = NULL;\r
-glCopyColorTablePROC glCopyColorTable = NULL;\r
-glGetColorTablePROC glGetColorTable = NULL;\r
-glGetColorTableParameterfvPROC glGetColorTableParameterfv = NULL;\r
-glGetColorTableParameterivPROC glGetColorTableParameteriv = NULL;\r
-glColorSubTablePROC glColorSubTable = NULL;\r
-glCopyColorSubTablePROC glCopyColorSubTable = NULL;\r
-glConvolutionFilter1DPROC glConvolutionFilter1D = NULL;\r
-glConvolutionFilter2DPROC glConvolutionFilter2D = NULL;\r
-glConvolutionParameterfPROC glConvolutionParameterf = NULL;\r
-glConvolutionParameterfvPROC glConvolutionParameterfv = NULL;\r
-glConvolutionParameteriPROC glConvolutionParameteri = NULL;\r
-glConvolutionParameterivPROC glConvolutionParameteriv = NULL;\r
-glCopyConvolutionFilter1DPROC glCopyConvolutionFilter1D = NULL;\r
-glCopyConvolutionFilter2DPROC glCopyConvolutionFilter2D = NULL;\r
-glGetConvolutionFilterPROC glGetConvolutionFilter = NULL;\r
-glGetConvolutionParameterfvPROC glGetConvolutionParameterfv = NULL;\r
-glGetConvolutionParameterivPROC glGetConvolutionParameteriv = NULL;\r
-glGetSeparableFilterPROC glGetSeparableFilter = NULL;\r
-glSeparableFilter2DPROC glSeparableFilter2D = NULL;\r
-glGetHistogramPROC glGetHistogram = NULL;\r
-glGetHistogramParameterfvPROC glGetHistogramParameterfv = NULL;\r
-glGetHistogramParameterivPROC glGetHistogramParameteriv = NULL;\r
-glGetMinmaxPROC glGetMinmax = NULL;\r
-glGetMinmaxParameterfvPROC glGetMinmaxParameterfv = NULL;\r
-glGetMinmaxParameterivPROC glGetMinmaxParameteriv = NULL;\r
-glHistogramPROC glHistogram = NULL;\r
-glMinmaxPROC glMinmax = NULL;\r
-glResetHistogramPROC glResetHistogram = NULL;\r
-glResetMinmaxPROC glResetMinmax = NULL;\r
-glTexImage3DPROC glTexImage3D = NULL;\r
-glTexSubImage3DPROC glTexSubImage3D = NULL;\r
-glCopyTexSubImage3DPROC glCopyTexSubImage3D = NULL;\r
-\r
-/* 1.3 */\r
-\r
-glActiveTexturePROC glActiveTexture = NULL;\r
-glClientActiveTexturePROC glClientActiveTexture = NULL;\r
-glMultiTexCoord1dPROC glMultiTexCoord1d = NULL;\r
-glMultiTexCoord1dvPROC glMultiTexCoord1dv = NULL;\r
-glMultiTexCoord1fPROC glMultiTexCoord1f = NULL;\r
-glMultiTexCoord1fvPROC glMultiTexCoord1fv = NULL;\r
-glMultiTexCoord1iPROC glMultiTexCoord1i = NULL;\r
-glMultiTexCoord1ivPROC glMultiTexCoord1iv = NULL;\r
-glMultiTexCoord1sPROC glMultiTexCoord1s = NULL;\r
-glMultiTexCoord1svPROC glMultiTexCoord1sv = NULL;\r
-glMultiTexCoord2dPROC glMultiTexCoord2d = NULL;\r
-glMultiTexCoord2dvPROC glMultiTexCoord2dv = NULL;\r
-glMultiTexCoord2fPROC glMultiTexCoord2f = NULL;\r
-glMultiTexCoord2fvPROC glMultiTexCoord2fv = NULL;\r
-glMultiTexCoord2iPROC glMultiTexCoord2i = NULL;\r
-glMultiTexCoord2ivPROC glMultiTexCoord2iv = NULL;\r
-glMultiTexCoord2sPROC glMultiTexCoord2s = NULL;\r
-glMultiTexCoord2svPROC glMultiTexCoord2sv = NULL;\r
-glMultiTexCoord3dPROC glMultiTexCoord3d = NULL;\r
-glMultiTexCoord3dvPROC glMultiTexCoord3dv = NULL;\r
-glMultiTexCoord3fPROC glMultiTexCoord3f = NULL;\r
-glMultiTexCoord3fvPROC glMultiTexCoord3fv = NULL;\r
-glMultiTexCoord3iPROC glMultiTexCoord3i = NULL;\r
-glMultiTexCoord3ivPROC glMultiTexCoord3iv = NULL;\r
-glMultiTexCoord3sPROC glMultiTexCoord3s = NULL;\r
-glMultiTexCoord3svPROC glMultiTexCoord3sv = NULL;\r
-glMultiTexCoord4dPROC glMultiTexCoord4d = NULL;\r
-glMultiTexCoord4dvPROC glMultiTexCoord4dv = NULL;\r
-glMultiTexCoord4fPROC glMultiTexCoord4f = NULL;\r
-glMultiTexCoord4fvPROC glMultiTexCoord4fv = NULL;\r
-glMultiTexCoord4iPROC glMultiTexCoord4i = NULL;\r
-glMultiTexCoord4ivPROC glMultiTexCoord4iv = NULL;\r
-glMultiTexCoord4sPROC glMultiTexCoord4s = NULL;\r
-glMultiTexCoord4svPROC glMultiTexCoord4sv = NULL;\r
-glLoadTransposeMatrixfPROC glLoadTransposeMatrixf = NULL;\r
-glLoadTransposeMatrixdPROC glLoadTransposeMatrixd = NULL;\r
-glMultTransposeMatrixfPROC glMultTransposeMatrixf = NULL;\r
-glMultTransposeMatrixdPROC glMultTransposeMatrixd = NULL;\r
-glCompressedTexImage3DPROC glCompressedTexImage3D = NULL;\r
-glCompressedTexImage2DPROC glCompressedTexImage2D = NULL;\r
-glCompressedTexImage1DPROC glCompressedTexImage1D = NULL;\r
-glCompressedTexSubImage3DPROC glCompressedTexSubImage3D = NULL;\r
-glCompressedTexSubImage2DPROC glCompressedTexSubImage2D = NULL;\r
-glCompressedTexSubImage1DPROC glCompressedTexSubImage1D = NULL;\r
-glGetCompressedTexImagePROC glGetCompressedTexImage = NULL;\r
-glSampleCoveragePROC glSampleCoverage = NULL;\r
-\r
-/* ARB_multitexture */\r
-\r
-glActiveTexturePROC glActiveTextureARB = NULL;\r
-glClientActiveTexturePROC glClientActiveTextureARB = NULL;\r
-glMultiTexCoord1dPROC glMultiTexCoord1dARB = NULL;\r
-glMultiTexCoord1dvPROC glMultiTexCoord1dvARB = NULL;\r
-glMultiTexCoord1fPROC glMultiTexCoord1fARB = NULL;\r
-glMultiTexCoord1fvPROC glMultiTexCoord1fvARB = NULL;\r
-glMultiTexCoord1iPROC glMultiTexCoord1iARB = NULL;\r
-glMultiTexCoord1ivPROC glMultiTexCoord1ivARB = NULL;\r
-glMultiTexCoord1sPROC glMultiTexCoord1sARB = NULL;\r
-glMultiTexCoord1svPROC glMultiTexCoord1svARB = NULL;\r
-glMultiTexCoord2dPROC glMultiTexCoord2dARB = NULL;\r
-glMultiTexCoord2dvPROC glMultiTexCoord2dvARB = NULL;\r
-glMultiTexCoord2fPROC glMultiTexCoord2fARB = NULL;\r
-glMultiTexCoord2fvPROC glMultiTexCoord2fvARB = NULL;\r
-glMultiTexCoord2iPROC glMultiTexCoord2iARB = NULL;\r
-glMultiTexCoord2ivPROC glMultiTexCoord2ivARB = NULL;\r
-glMultiTexCoord2sPROC glMultiTexCoord2sARB = NULL;\r
-glMultiTexCoord2svPROC glMultiTexCoord2svARB = NULL;\r
-glMultiTexCoord3dPROC glMultiTexCoord3dARB = NULL;\r
-glMultiTexCoord3dvPROC glMultiTexCoord3dvARB = NULL;\r
-glMultiTexCoord3fPROC glMultiTexCoord3fARB = NULL;\r
-glMultiTexCoord3fvPROC glMultiTexCoord3fvARB = NULL;\r
-glMultiTexCoord3iPROC glMultiTexCoord3iARB = NULL;\r
-glMultiTexCoord3ivPROC glMultiTexCoord3ivARB = NULL;\r
-glMultiTexCoord3sPROC glMultiTexCoord3sARB = NULL;\r
-glMultiTexCoord3svPROC glMultiTexCoord3svARB = NULL;\r
-glMultiTexCoord4dPROC glMultiTexCoord4dARB = NULL;\r
-glMultiTexCoord4dvPROC glMultiTexCoord4dvARB = NULL;\r
-glMultiTexCoord4fPROC glMultiTexCoord4fARB = NULL;\r
-glMultiTexCoord4fvPROC glMultiTexCoord4fvARB = NULL;\r
-glMultiTexCoord4iPROC glMultiTexCoord4iARB = NULL;\r
-glMultiTexCoord4ivPROC glMultiTexCoord4ivARB = NULL;\r
-glMultiTexCoord4sPROC glMultiTexCoord4sARB = NULL;\r
-glMultiTexCoord4svPROC glMultiTexCoord4svARB = NULL;\r
-\r
-/* ARB_transpose_matrix */\r
-\r
-glLoadTransposeMatrixfPROC glLoadTransposeMatrixfARB = NULL;\r
-glLoadTransposeMatrixdPROC glLoadTransposeMatrixdARB = NULL;\r
-glMultTransposeMatrixfPROC glMultTransposeMatrixfARB = NULL;\r
-glMultTransposeMatrixdPROC glMultTransposeMatrixdARB = NULL;\r
-\r
-/* ARB_texture_compression */\r
-\r
-glCompressedTexImage3DPROC glCompressedTexImage3DARB = NULL;\r
-glCompressedTexImage2DPROC glCompressedTexImage2DARB = NULL;\r
-glCompressedTexImage1DPROC glCompressedTexImage1DARB = NULL; \r
-glCompressedTexSubImage3DPROC glCompressedTexSubImage3DARB = NULL;\r
-glCompressedTexSubImage2DPROC glCompressedTexSubImage2DARB = NULL;\r
-glCompressedTexSubImage1DPROC glCompressedTexSubImage1DARB = NULL;\r
-glGetCompressedTexImagePROC glGetCompressedTexImageARB = NULL;\r
-\r
-glSecondaryColor3bEXTPROC glSecondaryColor3bEXT = NULL;\r
-glSecondaryColor3bvEXTPROC glSecondaryColor3bvEXT = NULL;\r
-glSecondaryColor3dEXTPROC glSecondaryColor3dEXT = NULL;\r
-glSecondaryColor3dvEXTPROC glSecondaryColor3dvEXT = NULL;\r
-glSecondaryColor3fEXTPROC glSecondaryColor3fEXT = NULL;\r
-glSecondaryColor3fvEXTPROC glSecondaryColor3fvEXT = NULL;\r
-glSecondaryColor3iEXTPROC glSecondaryColor3iEXT = NULL;\r
-glSecondaryColor3ivEXTPROC glSecondaryColor3ivEXT = NULL;\r
-glSecondaryColor3sEXTPROC glSecondaryColor3sEXT = NULL;\r
-glSecondaryColor3svEXTPROC glSecondaryColor3svEXT = NULL;\r
-glSecondaryColor3ubEXTPROC glSecondaryColor3ubEXT = NULL;\r
-glSecondaryColor3ubvEXTPROC glSecondaryColor3ubvEXT = NULL;\r
-glSecondaryColor3uiEXTPROC glSecondaryColor3uiEXT = NULL;\r
-glSecondaryColor3uivEXTPROC glSecondaryColor3uivEXT = NULL;\r
-glSecondaryColor3usEXTPROC glSecondaryColor3usEXT = NULL;\r
-glSecondaryColor3usvEXTPROC glSecondaryColor3usvEXT = NULL;\r
-glSecondaryColorPointerEXTPROC glSecondaryColorPointerEXT = NULL;\r
-\r
-/* ETX_compiled_vertex_array */\r
-\r
-glLockArraysEXTPROC glLockArraysEXT = NULL;\r
-glUnlockArraysEXTPROC glUnlockArraysEXT = NULL;\r
-\r
-\r
-/* EXT_fog_color */\r
-\r
-glFogCoordfEXTPROC glFogCoordfEXT = NULL;\r
-glFogCoordfvEXTPROC glFogCoordfvEXT = NULL;\r
-glFogCoorddEXTPROC glFogCoorddEXT = NULL;\r
-glFogCoorddvEXTPROC glFogCoorddvEXT = NULL;\r
-glFogCoordPointerEXTPROC glFogCoordPointerEXT = NULL;\r
-\r
-/* NV_vertex_array_range */\r
-\r
-glFlushVertexArrayRangeNVPROC glFlushVertexArrayRangeNV = NULL;\r
-glVertexArrayRangeNVPROC glVertexArrayRangeNV = NULL;\r
-\r
-/* EXT_point_parameters */\r
-\r
-glPointParameterfEXTPROC glPointParameterfEXT = NULL;\r
-glPointParameterfvEXTPROC glPointParameterfvEXT = NULL;\r
-\r
-/* NV_register_combiners */\r
-\r
-glCombinerParameterfvNVPROC glCombinerParameterfvNV = NULL;\r
-glCombinerParameterfNVPROC  glCombinerParameterfNV = NULL;\r
-glCombinerParameterivNVPROC glCombinerParameterivNV = NULL;\r
-glCombinerParameteriNVPROC glCombinerParameteriNV = NULL;\r
-glCombinerInputNVPROC glCombinerInputNV = NULL;\r
-glCombinerOutputNVPROC glCombinerOutputNV = NULL;\r
-glFinalCombinerInputNVPROC glFinalCombinerInputNV = NULL;\r
-glGetCombinerInputParameterfvNVPROC glGetCombinerInputParameterfvNV = NULL;\r
-glGetCombinerInputParameterivNVPROC glGetCombinerInputParameterivNV = NULL;\r
-glGetCombinerOutputParameterfvNVPROC glGetCombinerOutputParameterfvNV = NULL;\r
-glGetCombinerOutputParameterivNVPROC glGetCombinerOutputParameterivNV = NULL;\r
-glGetFinalCombinerInputParameterfvNVPROC glGetFinalCombinerInputParameterfvNV = NULL;\r
-glGetFinalCombinerInputParameterivNVPROC glGetFinalCombinerInputParameterivNV = NULL;\r
-\r
-/* ARB_multisample */\r
-\r
-glSampleCoveragePROC glSampleCoverageARB = NULL;\r
-\r
-/* EXT_vertex_weighting */\r
-\r
-glVertexWeightfEXTPROC glVertexWeightfEXT = NULL;\r
-glVertexWeightfvEXTPROC glVertexWeightfvEXT = NULL;\r
-glVertexWeightPointerEXTPROC glVertexWeightPointerEXT = NULL;\r
-\r
-/* NV_vertex_program */\r
-\r
-glBindProgramNVPROC glBindProgramNV = NULL;\r
-glDeleteProgramsNVPROC glDeleteProgramsNV = NULL;\r
-glExecuteProgramNVPROC glExecuteProgramNV = NULL;\r
-glGenProgramsNVPROC glGenProgramsNV = NULL;\r
-glAreProgramsResidentNVPROC glAreProgramsResidentNV = NULL;\r
-glRequestResidentProgramsNVPROC glRequestResidentProgramsNV = NULL;\r
-glGetProgramParameterfvNVPROC glGetProgramParameterfvNV = NULL;\r
-glGetProgramParameterdvNVPROC glGetProgramParameterdvNV = NULL;\r
-glGetProgramivNVPROC glGetProgramivNV = NULL;\r
-glGetProgramStringNVPROC glGetProgramStringNV = NULL;\r
-glGetTrackMatrixivNVPROC glGetTrackMatrixivNV = NULL;\r
-glGetVertexAttribdvNVPROC glGetVertexAttribdvNV = NULL;\r
-glGetVertexAttribfvNVPROC glGetVertexAttribfvNV = NULL;\r
-glGetVertexAttribivNVPROC glGetVertexAttribivNV = NULL;\r
-glGetVertexAttribPointervNVPROC glGetVertexAttribPointervNV = NULL;\r
-glIsProgramNVPROC glIsProgramNV = NULL;\r
-glLoadProgramNVPROC glLoadProgramNV = NULL;\r
-glProgramParameter4fNVPROC glProgramParameter4fNV = NULL;\r
-glProgramParameter4dNVPROC glProgramParameter4dNV = NULL;\r
-glProgramParameter4dvNVPROC glProgramParameter4dvNV = NULL;\r
-glProgramParameter4fvNVPROC glProgramParameter4fvNV = NULL;\r
-glProgramParameters4dvNVPROC glProgramParameters4dvNV = NULL;\r
-glProgramParameters4fvNVPROC glProgramParameters4fvNV = NULL;\r
-glTrackMatrixNVPROC glTrackMatrixNV = NULL;\r
-glVertexAttribPointerNVPROC glVertexAttribPointerNV = NULL;\r
-glVertexAttrib1sNVPROC glVertexAttrib1sNV = NULL;\r
-glVertexAttrib1fNVPROC glVertexAttrib1fNV = NULL;\r
-glVertexAttrib1dNVPROC glVertexAttrib1dNV = NULL;\r
-glVertexAttrib2sNVPROC glVertexAttrib2sNV = NULL;\r
-glVertexAttrib2fNVPROC glVertexAttrib2fNV = NULL;\r
-glVertexAttrib2dNVPROC glVertexAttrib2dNV = NULL;\r
-glVertexAttrib3sNVPROC glVertexAttrib3sNV = NULL;\r
-glVertexAttrib3fNVPROC glVertexAttrib3fNV = NULL;\r
-glVertexAttrib3dNVPROC glVertexAttrib3dNV = NULL;\r
-glVertexAttrib4sNVPROC glVertexAttrib4sNV = NULL;\r
-glVertexAttrib4fNVPROC glVertexAttrib4fNV = NULL;\r
-glVertexAttrib4dNVPROC glVertexAttrib4dNV = NULL;\r
-glVertexAttrib4ubNVPROC glVertexAttrib4ubNV = NULL;\r
-glVertexAttrib1svNVPROC glVertexAttrib1svNV = NULL;\r
-glVertexAttrib1fvNVPROC glVertexAttrib1fvNV = NULL;\r
-glVertexAttrib1dvNVPROC glVertexAttrib1dvNV = NULL;\r
-glVertexAttrib2svNVPROC glVertexAttrib2svNV = NULL;\r
-glVertexAttrib2fvNVPROC glVertexAttrib2fvNV = NULL;\r
-glVertexAttrib2dvNVPROC glVertexAttrib2dvNV = NULL;\r
-glVertexAttrib3svNVPROC glVertexAttrib3svNV = NULL;\r
-glVertexAttrib3fvNVPROC glVertexAttrib3fvNV = NULL;\r
-glVertexAttrib3dvNVPROC glVertexAttrib3dvNV = NULL;\r
-glVertexAttrib4svNVPROC glVertexAttrib4svNV = NULL;\r
-glVertexAttrib4fvNVPROC glVertexAttrib4fvNV = NULL;\r
-glVertexAttrib4dvNVPROC glVertexAttrib4dvNV = NULL;\r
-glVertexAttrib4ubvNVPROC glVertexAttrib4ubvNV = NULL;\r
-glVertexAttribs1svNVPROC glVertexAttribs1svNV = NULL;\r
-glVertexAttribs1fvNVPROC glVertexAttribs1fvNV = NULL;\r
-glVertexAttribs1dvNVPROC glVertexAttribs1dvNV = NULL;\r
-glVertexAttribs2svNVPROC glVertexAttribs2svNV = NULL;\r
-glVertexAttribs2fvNVPROC glVertexAttribs2fvNV = NULL;\r
-glVertexAttribs2dvNVPROC glVertexAttribs2dvNV = NULL;\r
-glVertexAttribs3svNVPROC glVertexAttribs3svNV = NULL;\r
-glVertexAttribs3fvNVPROC glVertexAttribs3fvNV = NULL;\r
-glVertexAttribs3dvNVPROC glVertexAttribs3dvNV = NULL;\r
-glVertexAttribs4svNVPROC glVertexAttribs4svNV = NULL;\r
-glVertexAttribs4fvNVPROC glVertexAttribs4fvNV = NULL;\r
-glVertexAttribs4dvNVPROC glVertexAttribs4dvNV = NULL;\r
-glVertexAttribs4ubvNVPROC glVertexAttribs4ubvNV = NULL;\r
-\r
-/* NV_fence */\r
-\r
-glGenFencesNVPROC glGenFencesNV = NULL;\r
-glDeleteFencesNVPROC glDeleteFencesNV = NULL;\r
-glSetFenceNVPROC glSetFenceNV = NULL;\r
-glTestFenceNVPROC glTestFenceNV = NULL;\r
-glFinishFenceNVPROC glFinishFenceNV = NULL;\r
-glIsFenceNVPROC glIsFenceNV = NULL;\r
-glGetFenceivNVPROC glGetFenceivNV = NULL;\r
-\r
-/* NV_register_combiners2 */\r
-\r
-glCombinerStageParameterfvNVPROC glCombinerStageParameterfvNV = NULL;\r
-glGetCombinerStageParameterfvNVPROC glGetCombinerStageParameterfvNV = NULL;\r
-\r
-/* NV_evaluators */\r
-\r
-glMapControlPointsNVPROC glMapControlPointsNV = NULL;\r
-glMapParameterivNVPROC glMapParameterivNV = NULL;\r
-glMapParameterfvNVPROC glMapParameterfvNV = NULL;\r
-glGetMapControlPointsNVPROC glGetMapControlPointsNV = NULL;\r
-glGetMapParameterivNVPROC glGetMapParameterivNV = NULL;\r
-glGetMapParameterfvNVPROC glGetMapParameterfvNV = NULL;\r
-glGetMapAttribParameterivNVPROC glGetMapAttribParameterivNV = NULL;\r
-glGetMapAttribParameterfvNVPROC glGetMapAttribParameterfvNV = NULL;\r
-glEvalMapsNVPROC glEvalMapsNV = NULL;\r
-\r
-/* ATI_pn_triangles */\r
-\r
-glPNTrianglesiATIPROC glPNTrianglesiATI = NULL;\r
-glPNTrianglesfATIPROC glPNTrianglesfATI = NULL;\r
-\r
-/* ARB_point_parameters */\r
-\r
-glPointParameterfARBPROC glPointParameterfARB = NULL;\r
-glPointParameterfvARBPROC glPointParameterfvARB = NULL;\r
-\r
-/* ARB_vertex_blend */\r
-\r
-glWeightbvARBPROC glWeightbvARB = NULL;\r
-glWeightsvARBPROC glWeightsvARB = NULL;\r
-glWeightivARBPROC glWeightivARB = NULL;\r
-glWeightfvARBPROC glWeightfvARB = NULL;\r
-glWeightdvARBPROC glWeightdvARB = NULL;\r
-glWeightubvARBPROC glWeightubvARB = NULL;\r
-glWeightusvARBPROC glWeightusvARB = NULL;\r
-glWeightuivARBPROC glWeightuivARB = NULL;\r
-glWeightPointerARBPROC glWeightPointerARB = NULL;\r
-glVertexBlendARBPROC glVertexBlendARB = NULL;\r
-\r
-/* EXT_multi_draw_arrays */\r
-\r
-glMultiDrawArraysEXTPROC glMultiDrawArraysEXT = NULL;\r
-glMultiDrawElementsEXTPROC glMultiDrawElementsEXT = NULL;\r
-\r
-/* ARB_matrix_palette */\r
-\r
-glCurrentPaletteMatrixARBPROC glCurrentPaletteMatrixARB = NULL;\r
-glMatrixIndexubvARBPROC glMatrixIndexubvARB = NULL;\r
-glMatrixIndexusvARBPROC glMatrixIndexusvARB = NULL;\r
-glMatrixIndexuivARBPROC glMatrixIndexuivARB = NULL;\r
-glMatrixIndexPointerARBPROC glMatrixIndexPointerARB = NULL;\r
-\r
-/* EXT_vertex_shader */\r
-\r
-glBeginVertexShaderEXTPROC glBeginVertexShaderEXT = NULL;\r
-glEndVertexShaderEXTPROC glEndVertexShaderEXT = NULL;\r
-glBindVertexShaderEXTPROC glBindVertexShaderEXT = NULL;\r
-glGenVertexShadersEXTPROC glGenVertexShadersEXT = NULL;\r
-glDeleteVertexShaderEXTPROC glDeleteVertexShaderEXT = NULL;\r
-glShaderOp1EXTPROC glShaderOp1EXT = NULL;\r
-glShaderOp2EXTPROC glShaderOp2EXT = NULL;\r
-glShaderOp3EXTPROC glShaderOp3EXT = NULL;\r
-glSwizzleEXTPROC glSwizzleEXT = NULL;\r
-glWriteMaskEXTPROC glWriteMaskEXT = NULL;\r
-glInsertComponentEXTPROC glInsertComponentEXT = NULL;\r
-glExtractComponentEXTPROC glExtractComponentEXT = NULL;\r
-glGenSymbolsEXTPROC glGenSymbolsEXT = NULL;\r
-glSetInvariantEXTPROC glSetInvariantEXT = NULL;\r
-glSetLocalConstantEXTPROC glSetLocalConstantEXT = NULL;\r
-glVariantbvEXTPROC glVariantbvEXT = NULL;\r
-glVariantsvEXTPROC glVariantsvEXT = NULL;\r
-glVariantivEXTPROC glVariantivEXT = NULL;\r
-glVariantfvEXTPROC glVariantfvEXT = NULL;\r
-glVariantdvEXTPROC glVariantdvEXT = NULL;\r
-glVariantubvEXTPROC glVariantubvEXT = NULL;\r
-glVariantusvEXTPROC glVariantusvEXT = NULL;\r
-glVariantuivEXTPROC glVariantuivEXT = NULL;\r
-glVariantPointerEXTPROC glVariantPointerEXT = NULL;\r
-glEnableVariantClientStateEXTPROC glEnableVariantClientStateEXT = NULL;\r
-glDisableVariantClientStateEXTPROC glDisableVariantClientStateEXT = NULL;\r
-glBindLightParameterEXTPROC glBindLightParameterEXT = NULL;\r
-glBindMaterialParameterEXTPROC glBindMaterialParameterEXT = NULL;\r
-glBindTexGenParameterEXTPROC glBindTexGenParameterEXT = NULL;\r
-glBindTextureUnitParameterEXTPROC glBindTextureUnitParameterEXT = NULL;\r
-glBindParameterEXTPROC glBindParameterEXT = NULL;\r
-glIsVariantEnabledEXTPROC glIsVariantEnabledEXT = NULL;\r
-glGetVariantBooleanvEXTPROC glGetVariantBooleanvEXT = NULL;\r
-glGetVariantIntegervEXTPROC glGetVariantIntegervEXT = NULL;\r
-glGetVariantFloatvEXTPROC glGetVariantFloatvEXT = NULL;\r
-glGetVariantPointervEXTPROC glGetVariantPointervEXT = NULL;\r
-glGetInvariantBooleanvEXTPROC glGetInvariantBooleanvEXT = NULL;\r
-glGetInvariantIntegervEXTPROC glGetInvariantIntegervEXT = NULL;\r
-glGetInvariantFloatvEXTPROC glGetInvariantFloatvEXT = NULL;\r
-glGetLocalConstantBooleanvEXTPROC glGetLocalConstantBooleanvEXT = NULL;\r
-glGetLocalConstantIntegervEXTPROC glGetLocalConstantIntegervEXT = NULL;\r
-glGetLocalConstantFloatvEXTPROC glGetLocalConstantFloatvEXT = NULL;\r
-\r
-/* ATI_envmap_bumpmap */\r
-\r
-glTexBumpParameterivATIPROC glTexBumpParameterivATI = NULL;\r
-glTexBumpParameterfvATIPROC glTexBumpParameterfvATI = NULL;\r
-glGetTexBumpParameterivATIPROC glGetTexBumpParameterivATI = NULL;\r
-glGetTexBumpParameterfvATIPROC glGetTexBumpParameterfvATI = NULL;\r
-\r
-/* ATI_fragment_shader */\r
-\r
-glGenFragmentShadersATIPROC glGenFragmentShadersATI = NULL;\r
-glBindFragmentShaderATIPROC glBindFragmentShaderATI = NULL;\r
-glDeleteFragmentShaderATIPROC glDeleteFragmentShaderATI = NULL;\r
-glBeginFragmentShaderATIPROC glBeginFragmentShaderATI = NULL;\r
-glEndFragmentShaderATIPROC glEndFragmentShaderATI = NULL;\r
-glPassTexCoordATIPROC glPassTexCoordATI = NULL;\r
-glSampleMapATIPROC glSampleMapATI = NULL;\r
-glColorFragmentOp1ATIPROC glColorFragmentOp1ATI = NULL;\r
-glColorFragmentOp2ATIPROC glColorFragmentOp2ATI = NULL;\r
-glColorFragmentOp3ATIPROC glColorFragmentOp3ATI = NULL;\r
-glAlphaFragmentOp1ATIPROC glAlphaFragmentOp1ATI = NULL;\r
-glAlphaFragmentOp2ATIPROC glAlphaFragmentOp2ATI = NULL;\r
-glAlphaFragmentOp3ATIPROC glAlphaFragmentOp3ATI = NULL;\r
-glSetFragmentShaderConstantATIPROC glSetFragmentShaderConstantATI = NULL;\r
-\r
-/* ATI_element_array */\r
-\r
-glElementPointerATIPROC glElementPointerATI = NULL;\r
-glDrawElementArrayATIPROC glDrawElementArrayATI = NULL;\r
-glDrawRangeElementArrayATIPROC glDrawRangeElementArrayATI = NULL;\r
-\r
-/* ATI_vertex_streams */\r
-\r
-glClientActiveVertexStreamATIPROC glClientActiveVertexStreamATI = NULL;\r
-glVertexBlendEnviATIPROC glVertexBlendEnviATI = NULL;\r
-glVertexBlendEnvfATIPROC glVertexBlendEnvfATI = NULL;\r
-glVertexStream2sATIPROC glVertexStream2sATI = NULL;\r
-glVertexStream2svATIPROC glVertexStream2svATI = NULL;\r
-glVertexStream2iATIPROC glVertexStream2iATI = NULL;\r
-glVertexStream2ivATIPROC glVertexStream2ivATI = NULL;\r
-glVertexStream2fATIPROC glVertexStream2fATI = NULL;\r
-glVertexStream2fvATIPROC glVertexStream2fvATI = NULL;\r
-glVertexStream2dATIPROC glVertexStream2dATI = NULL;\r
-glVertexStream2dvATIPROC glVertexStream2dvATI = NULL;\r
-glVertexStream3sATIPROC glVertexStream3sATI = NULL;\r
-glVertexStream3svATIPROC glVertexStream3svATI = NULL;\r
-glVertexStream3iATIPROC glVertexStream3iATI = NULL;\r
-glVertexStream3ivATIPROC glVertexStream3ivATI = NULL;\r
-glVertexStream3fATIPROC glVertexStream3fATI = NULL;\r
-glVertexStream3fvATIPROC glVertexStream3fvATI = NULL;\r
-glVertexStream3dATIPROC glVertexStream3dATI = NULL;\r
-glVertexStream3dvATIPROC glVertexStream3dvATI = NULL;\r
-glVertexStream4sATIPROC glVertexStream4sATI = NULL;\r
-glVertexStream4svATIPROC glVertexStream4svATI = NULL;\r
-glVertexStream4iATIPROC glVertexStream4iATI = NULL;\r
-glVertexStream4ivATIPROC glVertexStream4ivATI = NULL;\r
-glVertexStream4fATIPROC glVertexStream4fATI = NULL;\r
-glVertexStream4fvATIPROC glVertexStream4fvATI = NULL;\r
-glVertexStream4dATIPROC glVertexStream4dATI = NULL;\r
-glVertexStream4dvATIPROC glVertexStream4dvATI = NULL;\r
-glNormalStream3bATIPROC glNormalStream3bATI = NULL;\r
-glNormalStream3bvATIPROC glNormalStream3bvATI = NULL;\r
-glNormalStream3sATIPROC glNormalStream3sATI = NULL;\r
-glNormalStream3svATIPROC glNormalStream3svATI = NULL;\r
-glNormalStream3iATIPROC glNormalStream3iATI = NULL;\r
-glNormalStream3ivATIPROC glNormalStream3ivATI = NULL;\r
-glNormalStream3fATIPROC glNormalStream3fATI = NULL;\r
-glNormalStream3fvATIPROC glNormalStream3fvATI = NULL;\r
-glNormalStream3dATIPROC glNormalStream3dATI = NULL;\r
-glNormalStream3dvATIPROC glNormalStream3dvATI = NULL;\r
-\r
-/* ATI_vertex_array_object */\r
-\r
-glNewObjectBufferATIPROC glNewObjectBufferATI = NULL;\r
-glIsObjectBufferATIPROC glIsObjectBufferATI = NULL;\r
-glUpdateObjectBufferATIPROC glUpdateObjectBufferATI = NULL;\r
-glGetObjectBufferfvATIPROC glGetObjectBufferfvATI = NULL;\r
-glGetObjectBufferivATIPROC glGetObjectBufferivATI = NULL;\r
-glFreeObjectBufferATIPROC glFreeObjectBufferATI = NULL;\r
-glArrayObjectATIPROC glArrayObjectATI = NULL;\r
-glGetArrayObjectfvATIPROC glGetArrayObjectfvATI = NULL;\r
-glGetArrayObjectivATIPROC glGetArrayObjectivATI = NULL;\r
-glVariantArrayObjectATIPROC glVariantArrayObjectATI = NULL;\r
-glGetVariantArrayObjectfvATIPROC glGetVariantArrayObjectfvATI = NULL;\r
-glGetVariantArrayObjectivATIPROC glGetVariantArrayObjectivATI = NULL;\r
-\r
-/* NV_occlusion_query */\r
-\r
-glGenOcclusionQueriesNVPROC glGenOcclusionQueriesNV = NULL;\r
-glDeleteOcclusionQueriesNVPROC glDeleteOcclusionQueriesNV = NULL;\r
-glIsOcclusionQueryNVPROC glIsOcclusionQueryNV = NULL;\r
-glBeginOcclusionQueryNVPROC glBeginOcclusionQueryNV = NULL;\r
-glEndOcclusionQueryNVPROC glEndOcclusionQueryNV = NULL;\r
-glGetOcclusionQueryivNVPROC glGetOcclusionQueryivNV = NULL;\r
-glGetOcclusionQueryuivNVPROC glGetOcclusionQueryuivNV = NULL;\r
-\r
-/* NV_point_sprite */\r
-\r
-glPointParameteriNVPROC glPointParameteriNV = NULL;\r
-glPointParameterivNVPROC glPointParameterivNV = NULL;\r
-\r
-/* ARB_window_pos */\r
-\r
-glWindowPos2dARBPROC glWindowPos2dARB = NULL;\r
-glWindowPos2fARBPROC glWindowPos2fARB = NULL;\r
-glWindowPos2iARBPROC glWindowPos2iARB = NULL;\r
-glWindowPos2sARBPROC glWindowPos2sARB = NULL;\r
-glWindowPos2dvARBPROC glWindowPos2dvARB = NULL;\r
-glWindowPos2fvARBPROC glWindowPos2fvARB = NULL;\r
-glWindowPos2ivARBPROC glWindowPos2ivARB = NULL;\r
-glWindowPos2svARBPROC glWindowPos2svARB = NULL;\r
-glWindowPos3dARBPROC glWindowPos3dARB = NULL;\r
-glWindowPos3fARBPROC glWindowPos3fARB = NULL;\r
-glWindowPos3iARBPROC glWindowPos3iARB = NULL;\r
-glWindowPos3sARBPROC glWindowPos3sARB = NULL;\r
-glWindowPos3dvARBPROC glWindowPos3dvARB = NULL;\r
-glWindowPos3fvARBPROC glWindowPos3fvARB = NULL;\r
-glWindowPos3ivARBPROC glWindowPos3ivARB = NULL;\r
-glWindowPos3svARBPROC glWindowPos3svARB = NULL;\r
-\r
-/* misc  */\r
-\r
-static int error = 0;\r
-\r
-struct ExtensionTypes SupportedExtensions;\r
-\r
-/* getProcAddress */\r
-\r
-void *lglGetProcAddress(char *name)\r
-{\r
-#ifdef WIN32\r
-    void *t = wglGetProcAddress(name);\r
-/*    char err[1000];*/\r
-    if (t == NULL)\r
-    {\r
-        /*sprintf(err, "wglGetProcAddress on %s failed", name);*/\r
-        error = 1;  /*      MessageBox(0, err, "Error", MB_OK | MB_ICONHAND);*/\r
-    }\r
-    return t;\r
-#else\r
-    void *t = glXGetProcAddressARB((byte*)name);\r
-    if (t == NULL)\r
-    {\r
-        error = 1:\r
-    }\r
-    return t;\r
-#endif\r
-}\r
-\r
-/*-----------------------------------------------------*/\r
-/* WGL stuff */\r
-/*-----------------------------------------------------*/\r
-\r
-#ifdef WIN32\r
-\r
-static HDC _dc = 0;\r
-\r
-#endif /* WIN32 */\r
-\r
-#ifdef WIN32\r
-\r
-/* set the DC you will be working with */\r
-\r
-/** returns true if the extention is available */\r
-int QueryWGLExtension(const char *name)\r
-{\r
-    const GLubyte *extensions = NULL;\r
-    const GLubyte *start;\r
-    GLubyte *where, *terminator;\r
-\r
-    /* Extension names should not have spaces. */\r
-    where = (GLubyte *) strchr(name, ' ');\r
-    if (where || *name == '\0')\r
-        return 0;\r
-    if ((wglGetExtensionsStringARB == NULL) || (_dc == 0))\r
-        if (wglGetExtensionsStringEXT == NULL)\r
-            return 0;\r
-        else\r
-            extensions = wglGetExtensionsStringEXT();\r
-    else\r
-        extensions = wglGetExtensionsStringARB(_dc);\r
-    /* It takes a bit of care to be fool-proof about parsing the\r
-         OpenGL extensions string. Don't be fooled by sub-strings,\r
-        etc. */\r
-    start = extensions;\r
-    for (;;) \r
-    {\r
-        where = (GLubyte *) strstr((const char *) start, name);\r
-        if (!where)\r
-            break;\r
-        terminator = where + strlen(name);\r
-        if (where == start || *(where - 1) == ' ')\r
-            if (*terminator == ' ' || *terminator == '\0')\r
-                return 1;\r
-        start = terminator;\r
-    }\r
-    return 0;\r
-}\r
-\r
-void InitWGLARBBufferRegion()\r
-{\r
-    if (!SupportedExtensions.wgl.ARB_buffer_region)\r
-        return;\r
-    wglCreateBufferRegionARB = (wglCreateBufferRegionARBPROC) lglGetProcAddress("wglCreateBufferRegionARB");\r
-    wglDeleteBufferRegionARB = (wglDeleteBufferRegionARBPROC) lglGetProcAddress("wglDeleteBufferRegionARB");\r
-    wglSaveBufferRegionARB = (wglSaveBufferRegionARBPROC) lglGetProcAddress("wglSaveBufferRegionARB");\r
-    wglRestoreBufferRegionARB = (wglRestoreBufferRegionARBPROC) lglGetProcAddress("wglRestoreBufferRegionARB");\r
-\r
-}\r
-\r
-void InitWGLARBPbuffer()\r
-{\r
-    if (!SupportedExtensions.wgl.ARB_pbuffer)\r
-        return;\r
-    wglCreatePbufferARB = (wglCreatePbufferARBPROC) lglGetProcAddress("wglCreatePbufferARB");\r
-    wglGetPbufferDCARB = (wglGetPbufferDCARBPROC) lglGetProcAddress("wglGetPbufferDCARB");\r
-    wglReleasePbufferDCARB = (wglReleasePbufferDCARBPROC) lglGetProcAddress("wglReleasePbufferDCARB");\r
-    wglDestroyPbufferARB = (wglDestroyPbufferARBPROC) lglGetProcAddress("wglDestroyPbufferARB");\r
-    wglQueryPbufferARB = (wglQueryPbufferARBPROC) lglGetProcAddress("wglQueryPbufferARB");\r
-}\r
-\r
-void InitWGLARBPixelFormat()\r
-{\r
-    if (!SupportedExtensions.wgl.ARB_pixel_format)\r
-        return;\r
-    wglGetPixelFormatAttribivARB = (wglGetPixelFormatAttribivARBPROC) lglGetProcAddress("wglGetPixelFormatAttribivARB");\r
-    wglGetPixelFormatAttribfvARB = (wglGetPixelFormatAttribfvARBPROC) lglGetProcAddress("wglGetPixelFormatAttribfvARB");\r
-    wglChoosePixelFormatARB = (wglChoosePixelFormatARBPROC) lglGetProcAddress("wglChoosePixelFormatARB");\r
-}\r
-\r
-void InitWGLARBRenderTexture()\r
-{\r
-    if (!SupportedExtensions.wgl.ARB_render_texture)\r
-        return;\r
-    wglBindTexImageARB = (wglBindTexImageARBPROC) lglGetProcAddress("wglBindTexImageARB");\r
-    wglReleaseTexImageARB = (wglReleaseTexImageARBPROC) lglGetProcAddress("wglReleaseTexImageARB");\r
-    wglSetPbufferAttribARB = (wglSetPbufferAttribARBPROC) lglGetProcAddress("wglSetPbufferAttribARB");\r
-}\r
-\r
-void InitWGLEXTSwapControl()\r
-{\r
-    if (!SupportedExtensions.wgl.EXT_swap_control)\r
-        return;\r
-    wglSwapIntervalEXT = (wglSwapIntervalEXTPROC) lglGetProcAddress("wglSwapIntervalEXT");\r
-    wglGetSwapIntervalEXT = (wglGetSwapIntervalEXTPROC) lglGetProcAddress("wglGetSwapIntervalEXT");\r
-}\r
-\r
-void InitWGLARBMakeCurrentRead()\r
-{\r
-    if (!SupportedExtensions.wgl.ARB_make_current_read)\r
-        return;\r
-    wglMakeContextCurrentARB = (wglMakeContextCurrentARBPROC) lglGetProcAddress("wglMakeContextCurrentARB");\r
-    wglGetCurrentReadDCARB = (wglGetCurrentReadDCARBPROC) lglGetProcAddress("wglGetCurrentReadDCARB");\r
-}\r
-\r
-void InitSupportedWGLExtensions()\r
-{\r
-    SupportedExtensions.wgl.ARB_buffer_region = QueryWGLExtension("WGL_ARB_buffer_region");\r
-    SupportedExtensions.wgl.ARB_pbuffer = QueryWGLExtension("WGL_ARB_pbuffer");\r
-    SupportedExtensions.wgl.ARB_pixel_format = QueryWGLExtension("WGL_ARB_pixel_format");\r
-    SupportedExtensions.wgl.ARB_render_texture = QueryWGLExtension("WGL_ARB_render_texture");\r
-    SupportedExtensions.wgl.EXT_swap_control = QueryWGLExtension("WGL_EXT_swap_control");\r
-    SupportedExtensions.wgl.ARB_make_current_read = QueryWGLExtension("WGL_ARB_make_current_read");\r
-    SupportedExtensions.wgl.ARB_multisample = QueryWGLExtension("WGL_ARB_multisample");\r
-}\r
-\r
-void _wglSetDC(HDC dc)\r
-{\r
-    _dc = dc;\r
-}\r
-\r
-int wglInitialize(HDC dc)\r
-{\r
-    _dc = dc;    \r
-    error = 0;\r
-    wglGetExtensionsStringARB = (wglGetExtensionsStringARBPROC) lglGetProcAddress("wglGetExtensionsStringARB");\r
-    wglGetExtensionsStringEXT = (wglGetExtensionsStringEXTPROC) lglGetProcAddress("wglGetExtensionsStringEXT");\r
-    SupportedExtensions.wgl.ARB_extensions_string = wglGetExtensionsStringARB != NULL;\r
-    SupportedExtensions.wgl.EXT_extensions_string = wglGetExtensionsStringEXT != NULL;\r
-    error = 0;\r
-\r
-    InitSupportedWGLExtensions();\r
-   \r
-\r
-    InitWGLARBMakeCurrentRead();\r
-    InitWGLEXTSwapControl();\r
-    InitWGLARBRenderTexture();\r
-    InitWGLARBPixelFormat();\r
-    InitWGLARBPbuffer();\r
-    InitWGLARBBufferRegion();\r
-    \r
-    return error;\r
-}\r
-\r
-#endif /* WIN32 */\r
-\r
-/*-----------------------------------------------------*/\r
-/* WGL stuff END*/\r
-/*-----------------------------------------------------*/\r
-\r
-/** returns true if the extention is available */\r
-int QueryExtension(const char *name)\r
-{\r
-    const GLubyte *extensions = NULL;\r
-    const GLubyte *start;\r
-    GLubyte *where, *terminator;\r
-\r
-    /* Extension names should not have spaces. */\r
-    where = (GLubyte *) strchr(name, ' ');\r
-    if (where || *name == '\0')\r
-        return 0;\r
-    extensions = glGetString(GL_EXTENSIONS);\r
-    /* It takes a bit of care to be fool-proof about parsing the\r
-         OpenGL extensions string. Don't be fooled by sub-strings,\r
-        etc. */\r
-    start = extensions;\r
-    for (;;) \r
-    {\r
-        where = (GLubyte *) strstr((const char *) start, name);\r
-        if (!where)\r
-            break;\r
-        terminator = where + strlen(name);\r
-        if (where == start || *(where - 1) == ' ')\r
-            if (*terminator == ' ' || *terminator == '\0')\r
-                return 1;\r
-        start = terminator;\r
-    }\r
-    return 0;\r
-    \r
-/*    char *s = (char*)glGetString(GL_EXTENSIONS);\r
-    char *temp = strstr(s, name);\r
-    return temp!=NULL;*/\r
-}\r
\r
-void InitARBWindowPos()\r
-{\r
-    if (!SupportedExtensions.ARB_window_pos)\r
-        return;\r
-    glWindowPos2dARB = (glWindowPos2dARBPROC) lglGetProcAddress("glWindowPos2dARB");\r
-    glWindowPos2fARB = (glWindowPos2fARBPROC) lglGetProcAddress("glWindowPos2fARB");\r
-    glWindowPos2iARB = (glWindowPos2iARBPROC) lglGetProcAddress("glWindowPos2iARB");\r
-    glWindowPos2sARB = (glWindowPos2sARBPROC) lglGetProcAddress("glWindowPos2sARB");\r
-    glWindowPos2dvARB = (glWindowPos2dvARBPROC) lglGetProcAddress("glWindowPos2dvARB");\r
-    glWindowPos2fvARB = (glWindowPos2fvARBPROC) lglGetProcAddress("glWindowPos2fvARB");\r
-    glWindowPos2ivARB = (glWindowPos2ivARBPROC) lglGetProcAddress("glWindowPos2ivARB");\r
-    glWindowPos2svARB = (glWindowPos2svARBPROC) lglGetProcAddress("glWindowPos2svARB");\r
-    glWindowPos3dARB = (glWindowPos3dARBPROC) lglGetProcAddress("glWindowPos3dARB");\r
-    glWindowPos3fARB = (glWindowPos3fARBPROC) lglGetProcAddress("glWindowPos3fARB");\r
-    glWindowPos3iARB = (glWindowPos3iARBPROC) lglGetProcAddress("glWindowPos3iARB");\r
-    glWindowPos3sARB = (glWindowPos3sARBPROC) lglGetProcAddress("glWindowPos3sARB");\r
-    glWindowPos3dvARB = (glWindowPos3dvARBPROC) lglGetProcAddress("glWindowPos3dvARB");\r
-    glWindowPos3fvARB = (glWindowPos3fvARBPROC) lglGetProcAddress("glWindowPos3fvARB");\r
-    glWindowPos3ivARB = (glWindowPos3ivARBPROC) lglGetProcAddress("glWindowPos3ivARB");\r
-    glWindowPos3svARB = (glWindowPos3svARBPROC) lglGetProcAddress("glWindowPos3svARB");\r
-}\r
-\r
-void InitARBTextureCompression()\r
-{\r
-    if (!SupportedExtensions.ARB_texture_compression)\r
-        return;\r
-    glCompressedTexImage3DARB = (glCompressedTexImage3DPROC) lglGetProcAddress("glCompressedTexImage3DARB");\r
-    glCompressedTexImage2DARB = (glCompressedTexImage2DPROC) lglGetProcAddress("glCompressedTexImage2DARB");\r
-    glCompressedTexImage1DARB = (glCompressedTexImage1DPROC) lglGetProcAddress("glCompressedTexImage1DARB");\r
-    glCompressedTexSubImage3DARB = (glCompressedTexSubImage3DPROC) lglGetProcAddress("glCompressedTexSubImage3DARB");\r
-    glCompressedTexSubImage2DARB = (glCompressedTexSubImage2DPROC) lglGetProcAddress("glCompressedTexSubImage2DARB");\r
-    glCompressedTexSubImage1DARB = (glCompressedTexSubImage1DPROC) lglGetProcAddress("glCompressedTexSubImage1DARB");\r
-    glGetCompressedTexImageARB = (glGetCompressedTexImagePROC) lglGetProcAddress("glGetCompressedTexImageARB");\r
-}\r
-\r
-void InitNVPointSprite()\r
-{\r
-    if (!SupportedExtensions.NV_point_sprite)\r
-        return;\r
-    glPointParameteriNV = (glPointParameteriNVPROC) lglGetProcAddress("glPointParameteriNV");\r
-    glPointParameterivNV = (glPointParameterivNVPROC) lglGetProcAddress("glPointParameterivNV");\r
-}\r
-\r
-void InitNVOcclusionQuery()\r
-{\r
-    if (!SupportedExtensions.NV_occlusion_query)\r
-        return;\r
-    glGenOcclusionQueriesNV = (glGenOcclusionQueriesNVPROC) lglGetProcAddress("glGenOcclusionQueriesNV");\r
-    glDeleteOcclusionQueriesNV = (glDeleteOcclusionQueriesNVPROC) lglGetProcAddress("glDeleteOcclusionQueriesNV");\r
-    glIsOcclusionQueryNV = (glIsOcclusionQueryNVPROC) lglGetProcAddress("glIsOcclusionQueryNV");\r
-    glBeginOcclusionQueryNV = (glBeginOcclusionQueryNVPROC) lglGetProcAddress("glBeginOcclusionQueryNV");\r
-    glEndOcclusionQueryNV = (glEndOcclusionQueryNVPROC) lglGetProcAddress("glEndOcclusionQueryNV");\r
-    glGetOcclusionQueryivNV = (glGetOcclusionQueryivNVPROC) lglGetProcAddress("glGetOcclusionQueryivNV");\r
-    glGetOcclusionQueryuivNV = (glGetOcclusionQueryuivNVPROC) lglGetProcAddress("glGetOcclusionQueryuivNV");\r
-}\r
-\r
-#ifndef __PROTOTYPE__\r
\r
-void InitATIVertexArrayObject()\r
-{\r
-    if (!SupportedExtensions.ATI_vertex_array_object)\r
-        return;\r
-    glNewObjectBufferATI = (glNewObjectBufferATIPROC) lglGetProcAddress("glNewObjectBufferATI");\r
-    glIsObjectBufferATI = (glIsObjectBufferATIPROC) lglGetProcAddress("glIsObjectBufferATI");\r
-    glUpdateObjectBufferATI = (glUpdateObjectBufferATIPROC) lglGetProcAddress("glUpdateObjectBufferATI");\r
-    glGetObjectBufferfvATI = (glGetObjectBufferfvATIPROC) lglGetProcAddress("glGetObjectBufferfvATI");\r
-    glGetObjectBufferivATI = (glGetObjectBufferivATIPROC) lglGetProcAddress("glGetObjectBufferivATI");\r
-    glFreeObjectBufferATI = (glFreeObjectBufferATIPROC) lglGetProcAddress("glFreeObjectBufferATI");\r
-    glArrayObjectATI = (glArrayObjectATIPROC) lglGetProcAddress("glArrayObjectATI");\r
-    glGetArrayObjectfvATI = (glGetArrayObjectfvATIPROC) lglGetProcAddress("glGetArrayObjectfvATI");\r
-    glGetArrayObjectivATI = (glGetArrayObjectivATIPROC) lglGetProcAddress("glGetArrayObjectivATI");\r
-    glVariantArrayObjectATI = (glVariantArrayObjectATIPROC) lglGetProcAddress("glVariantArrayObjectATI");\r
-    glGetVariantArrayObjectfvATI = (glGetVariantArrayObjectfvATIPROC) lglGetProcAddress("glGetVariantArrayObjectfvATI");\r
-    glGetVariantArrayObjectivATI = (glGetVariantArrayObjectivATIPROC) lglGetProcAddress("glGetVariantArrayObjectivATI");\r
-}\r
-\r
-void InitATIVertexStreams()\r
-{\r
-    if (!SupportedExtensions.ATI_vertex_streams)\r
-        return;\r
-    glClientActiveVertexStreamATI = (glClientActiveVertexStreamATIPROC) lglGetProcAddress("glClientActiveVertexStreamATI");\r
-    glVertexBlendEnviATI = (glVertexBlendEnviATIPROC) lglGetProcAddress("glVertexBlendEnviATI");\r
-    glVertexBlendEnvfATI = (glVertexBlendEnvfATIPROC) lglGetProcAddress("glVertexBlendEnvfATI");\r
-    glVertexStream2sATI = (glVertexStream2sATIPROC) lglGetProcAddress("glVertexStream2sATI");\r
-    glVertexStream2svATI = (glVertexStream2svATIPROC) lglGetProcAddress("glVertexStream2svATI");\r
-    glVertexStream2iATI = (glVertexStream2iATIPROC) lglGetProcAddress("glVertexStream2iATI");\r
-    glVertexStream2ivATI = (glVertexStream2ivATIPROC) lglGetProcAddress("glVertexStream2ivATI");\r
-    glVertexStream2fATI = (glVertexStream2fATIPROC) lglGetProcAddress("glVertexStream2fATI");\r
-    glVertexStream2fvATI = (glVertexStream2fvATIPROC) lglGetProcAddress("glVertexStream2fvATI");\r
-    glVertexStream2dATI = (glVertexStream2dATIPROC) lglGetProcAddress("glVertexStream2dATI");\r
-    glVertexStream2dvATI = (glVertexStream2dvATIPROC) lglGetProcAddress("glVertexStream2dvATI");\r
-    glVertexStream3sATI = (glVertexStream3sATIPROC) lglGetProcAddress("glVertexStream3sATI");\r
-    glVertexStream3svATI = (glVertexStream3svATIPROC) lglGetProcAddress("glVertexStream3svATI");\r
-    glVertexStream3iATI = (glVertexStream3iATIPROC) lglGetProcAddress("glVertexStream3iATI");\r
-    glVertexStream3ivATI = (glVertexStream3ivATIPROC) lglGetProcAddress("glVertexStream3ivATI");\r
-    glVertexStream3fATI = (glVertexStream3fATIPROC) lglGetProcAddress("glVertexStream3fATI");\r
-    glVertexStream3fvATI = (glVertexStream3fvATIPROC) lglGetProcAddress("glVertexStream3fvATI");\r
-    glVertexStream3dATI = (glVertexStream3dATIPROC) lglGetProcAddress("glVertexStream3dATI");\r
-    glVertexStream3dvATI = (glVertexStream3dvATIPROC) lglGetProcAddress("glVertexStream3dvATI");\r
-    glVertexStream4sATI = (glVertexStream4sATIPROC) lglGetProcAddress("glVertexStream4sATI");\r
-    glVertexStream4svATI = (glVertexStream4svATIPROC) lglGetProcAddress("glVertexStream4svATI");\r
-    glVertexStream4iATI = (glVertexStream4iATIPROC) lglGetProcAddress("glVertexStream4iATI");\r
-    glVertexStream4ivATI = (glVertexStream4ivATIPROC) lglGetProcAddress("glVertexStream4ivATI");\r
-    glVertexStream4fATI = (glVertexStream4fATIPROC) lglGetProcAddress("glVertexStream4fATI");\r
-    glVertexStream4fvATI = (glVertexStream4fvATIPROC) lglGetProcAddress("glVertexStream4fvATI");\r
-    glVertexStream4dATI = (glVertexStream4dATIPROC) lglGetProcAddress("glVertexStream4dATI");\r
-    glVertexStream4dvATI = (glVertexStream4dvATIPROC) lglGetProcAddress("glVertexStream4dvATI");\r
-    glNormalStream3bATI = (glNormalStream3bATIPROC) lglGetProcAddress("glNormalStream3bATI");\r
-    glNormalStream3bvATI = (glNormalStream3bvATIPROC) lglGetProcAddress("glNormalStream3bvATI");\r
-    glNormalStream3sATI = (glNormalStream3sATIPROC) lglGetProcAddress("glNormalStream3sATI");\r
-    glNormalStream3svATI = (glNormalStream3svATIPROC) lglGetProcAddress("glNormalStream3svATI");\r
-    glNormalStream3iATI = (glNormalStream3iATIPROC) lglGetProcAddress("glNormalStream3iATI");\r
-    glNormalStream3ivATI = (glNormalStream3ivATIPROC) lglGetProcAddress("glNormalStream3ivATI");\r
-    glNormalStream3fATI = (glNormalStream3fATIPROC) lglGetProcAddress("glNormalStream3fATI");\r
-    glNormalStream3fvATI = (glNormalStream3fvATIPROC) lglGetProcAddress("glNormalStream3fvATI");\r
-    glNormalStream3dATI = (glNormalStream3dATIPROC) lglGetProcAddress("glNormalStream3dATI");\r
-    glNormalStream3dvATI = (glNormalStream3dvATIPROC) lglGetProcAddress("glNormalStream3dvATI");\r
-}\r
-\r
-void InitATIElementArray()\r
-{\r
-    if (!SupportedExtensions.ATI_element_array)\r
-        return;\r
-    glElementPointerATI = (glElementPointerATIPROC) lglGetProcAddress("glElementPointerATI");\r
-    glDrawElementArrayATI = (glDrawElementArrayATIPROC) lglGetProcAddress("glDrawElementArrayATI");\r
-    glDrawRangeElementArrayATI = (glDrawRangeElementArrayATIPROC) lglGetProcAddress("glDrawRangeElementArrayATI");\r
-}\r
-\r
-void InitATIFragmentShader()\r
-{\r
-    if (!SupportedExtensions.ATI_fragment_shader)\r
-        return;\r
-    glGenFragmentShadersATI = (glGenFragmentShadersATIPROC) lglGetProcAddress("glGenFragmentShadersATI");\r
-    glBindFragmentShaderATI = (glBindFragmentShaderATIPROC) lglGetProcAddress("glBindFragmentShaderATI");\r
-    glDeleteFragmentShaderATI = (glDeleteFragmentShaderATIPROC) lglGetProcAddress("glDeleteFragmentShaderATI");\r
-    glBeginFragmentShaderATI = (glBeginFragmentShaderATIPROC) lglGetProcAddress("glBeginFragmentShaderATI");\r
-    glEndFragmentShaderATI = (glEndFragmentShaderATIPROC) lglGetProcAddress("glEndFragmentShaderATI");\r
-    glPassTexCoordATI = (glPassTexCoordATIPROC) lglGetProcAddress("glPassTexCoordATI");\r
-    glSampleMapATI = (glSampleMapATIPROC) lglGetProcAddress("glSampleMapATI");\r
-    glColorFragmentOp1ATI = (glColorFragmentOp1ATIPROC) lglGetProcAddress("glColorFragmentOp1ATI");\r
-    glColorFragmentOp2ATI = (glColorFragmentOp2ATIPROC) lglGetProcAddress("glColorFragmentOp2ATI");\r
-    glColorFragmentOp3ATI = (glColorFragmentOp3ATIPROC) lglGetProcAddress("glColorFragmentOp3ATI");\r
-    glAlphaFragmentOp1ATI = (glAlphaFragmentOp1ATIPROC) lglGetProcAddress("glAlphaFragmentOp1ATI");\r
-    glAlphaFragmentOp2ATI = (glAlphaFragmentOp2ATIPROC) lglGetProcAddress("glAlphaFragmentOp2ATI");\r
-    glAlphaFragmentOp3ATI = (glAlphaFragmentOp3ATIPROC) lglGetProcAddress("glAlphaFragmentOp3ATI");\r
-    glSetFragmentShaderConstantATI = (glSetFragmentShaderConstantATIPROC) lglGetProcAddress("glSetFragmentShaderConstantATI");\r
-}\r
-\r
-void InitATIEnvmapBumpmap()\r
-{\r
-    if (!SupportedExtensions.ATI_envmap_bumpmap)\r
-        return;\r
-    glTexBumpParameterivATI = (glTexBumpParameterivATIPROC) lglGetProcAddress("glTexBumpParameterivATI");\r
-    glTexBumpParameterfvATI = (glTexBumpParameterfvATIPROC) lglGetProcAddress("glTexBumpParameterfvATI");\r
-    glGetTexBumpParameterivATI = (glGetTexBumpParameterivATIPROC) lglGetProcAddress("glGetTexBumpParameterivATI");\r
-    glGetTexBumpParameterfvATI = (glGetTexBumpParameterfvATIPROC) lglGetProcAddress("glGetTexBumpParameterfvATI");\r
-}\r
-\r
-void InitEXTVertexShader()\r
-{\r
-    if (!SupportedExtensions.EXT_vertex_shader)\r
-        return;\r
-    glBeginVertexShaderEXT = (glBeginVertexShaderEXTPROC) lglGetProcAddress("glBeginVertexShaderEXT");\r
-    glEndVertexShaderEXT = (glEndVertexShaderEXTPROC) lglGetProcAddress("glEndVertexShaderEXT");\r
-    glBindVertexShaderEXT = (glBindVertexShaderEXTPROC) lglGetProcAddress("glBindVertexShaderEXT");\r
-    glGenVertexShadersEXT = (glGenVertexShadersEXTPROC) lglGetProcAddress("glGenVertexShadersEXT");\r
-    glDeleteVertexShaderEXT = (glDeleteVertexShaderEXTPROC) lglGetProcAddress("glDeleteVertexShaderEXT");\r
-    glShaderOp1EXT = (glShaderOp1EXTPROC) lglGetProcAddress("glShaderOp1EXT");\r
-    glShaderOp2EXT = (glShaderOp2EXTPROC) lglGetProcAddress("glShaderOp2EXT");\r
-    glShaderOp3EXT = (glShaderOp3EXTPROC) lglGetProcAddress("glShaderOp3EXT");\r
-    glSwizzleEXT = (glSwizzleEXTPROC) lglGetProcAddress("glSwizzleEXT");\r
-    glWriteMaskEXT = (glWriteMaskEXTPROC) lglGetProcAddress("glWriteMaskEXT");\r
-    glInsertComponentEXT = (glInsertComponentEXTPROC) lglGetProcAddress("glInsertComponentEXT");\r
-    glExtractComponentEXT = (glExtractComponentEXTPROC) lglGetProcAddress("glExtractComponentEXT");\r
-    glGenSymbolsEXT = (glGenSymbolsEXTPROC) lglGetProcAddress("glGenSymbolsEXT");\r
-    glSetInvariantEXT = (glSetInvariantEXTPROC) lglGetProcAddress("glSetInvarianceEXT");\r
-    glSetLocalConstantEXT = (glSetLocalConstantEXTPROC) lglGetProcAddress("glSetLocalConstantEXT");\r
-    glVariantbvEXT = (glVariantbvEXTPROC) lglGetProcAddress("glVariantbvEXT");\r
-    glVariantsvEXT = (glVariantsvEXTPROC) lglGetProcAddress("glVariantsvEXT");\r
-    glVariantivEXT = (glVariantivEXTPROC) lglGetProcAddress("glVariantivEXT");\r
-    glVariantfvEXT = (glVariantfvEXTPROC) lglGetProcAddress("glVariantfvEXT");\r
-    glVariantdvEXT = (glVariantdvEXTPROC) lglGetProcAddress("glVariantdvEXT");\r
-    glVariantubvEXT = (glVariantubvEXTPROC) lglGetProcAddress("glVariantubvEXT");\r
-    glVariantusvEXT = (glVariantusvEXTPROC) lglGetProcAddress("glVariantusvEXT");\r
-    glVariantuivEXT = (glVariantuivEXTPROC) lglGetProcAddress("glVariantuivEXT");\r
-    glVariantPointerEXT = (glVariantPointerEXTPROC) lglGetProcAddress("glVariantPointerEXT");\r
-    glEnableVariantClientStateEXT = (glEnableVariantClientStateEXTPROC) lglGetProcAddress("glEnableVariantClientStateEXT");\r
-    glDisableVariantClientStateEXT = (glDisableVariantClientStateEXTPROC) lglGetProcAddress("glDisableVariantClientStateEXT");\r
-    glBindLightParameterEXT = (glBindLightParameterEXTPROC) lglGetProcAddress("glBindLightParameterEXT");\r
-    glBindMaterialParameterEXT = (glBindMaterialParameterEXTPROC) lglGetProcAddress("glBindMaterialParameterEXT");\r
-    glBindTexGenParameterEXT = (glBindTexGenParameterEXTPROC) lglGetProcAddress("glBindTexGenParameterEXT");\r
-    glBindTextureUnitParameterEXT = (glBindTextureUnitParameterEXTPROC) lglGetProcAddress("glBindTextureUnitParameterEXT");\r
-    glBindParameterEXT = (glBindParameterEXTPROC) lglGetProcAddress("glBindParameterEXT");\r
-    glIsVariantEnabledEXT = (glIsVariantEnabledEXTPROC) lglGetProcAddress("glIsVariantEnabledEXT");\r
-    glGetVariantBooleanvEXT = (glGetVariantBooleanvEXTPROC) lglGetProcAddress("glGetVariantBooleanvEXT");\r
-    glGetVariantIntegervEXT = (glGetVariantIntegervEXTPROC) lglGetProcAddress("glGetVariantIntegervEXT");\r
-    glGetVariantFloatvEXT = (glGetVariantFloatvEXTPROC) lglGetProcAddress("glGetVariantFloatvEXT");\r
-    glGetVariantPointervEXT = (glGetVariantPointervEXTPROC) lglGetProcAddress("glGetVariantPointervEXT");\r
-    glGetInvariantBooleanvEXT = (glGetInvariantBooleanvEXTPROC) lglGetProcAddress("glGetInvariantBooleanvEXT");\r
-    glGetInvariantIntegervEXT = (glGetInvariantIntegervEXTPROC) lglGetProcAddress("glGetInvariantIntegervEXT");\r
-    glGetInvariantFloatvEXT = (glGetInvariantFloatvEXTPROC) lglGetProcAddress("glGetInvariantFloatvEXT");\r
-    glGetLocalConstantBooleanvEXT = (glGetLocalConstantBooleanvEXTPROC) lglGetProcAddress("glGetLocalConstantBooleanvEXT");\r
-    glGetLocalConstantIntegervEXT = (glGetLocalConstantIntegervEXTPROC) lglGetProcAddress("glGetLocalConstantIntegervEXT");\r
-    glGetLocalConstantFloatvEXT = (glGetLocalConstantFloatvEXTPROC) lglGetProcAddress("glGetLocalConstantFloatvEXT");\r
-}\r
-\r
-void InitARBMatrixPalette()\r
-{\r
-    if (!SupportedExtensions.ARB_matrix_palette)\r
-        return;\r
-    glCurrentPaletteMatrixARB = (glCurrentPaletteMatrixARBPROC) lglGetProcAddress("glCurrentPaletteMatrixARB");\r
-    glMatrixIndexubvARB = (glMatrixIndexubvARBPROC) lglGetProcAddress("glMatrixIndexubvARB");\r
-    glMatrixIndexusvARB = (glMatrixIndexusvARBPROC) lglGetProcAddress("glMatrixIndexusvARB");\r
-    glMatrixIndexuivARB = (glMatrixIndexuivARBPROC) lglGetProcAddress("glMatrixIndexuivARB");\r
-    glMatrixIndexPointerARB = (glMatrixIndexPointerARBPROC) lglGetProcAddress("glMatrixIndexPointerARB");\r
-}\r
-\r
-void InitEXTMultiDrawArrays()\r
-{\r
-    if (!SupportedExtensions.EXT_multi_draw_arrays)\r
-        return;\r
-    glMultiDrawArraysEXT = (glMultiDrawArraysEXTPROC) lglGetProcAddress("glMultiDrawArraysEXT");\r
-    glMultiDrawElementsEXT = (glMultiDrawElementsEXTPROC) lglGetProcAddress("glMultiDrawElementsEXT");\r
-}\r
-\r
-void InitARBVertexBlend()\r
-{\r
-    if (!SupportedExtensions.ARB_vertex_blend)\r
-        return;\r
-    glWeightbvARB = (glWeightbvARBPROC) lglGetProcAddress("glWeightbvARB");\r
-    glWeightsvARB = (glWeightsvARBPROC) lglGetProcAddress("glWeightsvARB");\r
-    glWeightivARB = (glWeightivARBPROC) lglGetProcAddress("glWeightivARB");\r
-    glWeightfvARB = (glWeightfvARBPROC) lglGetProcAddress("glWeightfvARB");\r
-    glWeightdvARB = (glWeightdvARBPROC) lglGetProcAddress("glWeightdvARB");\r
-    glWeightubvARB = (glWeightubvARBPROC) lglGetProcAddress("glWeightubvARB");\r
-    glWeightusvARB = (glWeightusvARBPROC) lglGetProcAddress("glWeightusvARB");\r
-    glWeightuivARB = (glWeightuivARBPROC) lglGetProcAddress("glWeightuivARB");\r
-    glWeightPointerARB = (glWeightPointerARBPROC) lglGetProcAddress("glWeightPointerARB");\r
-    glVertexBlendARB = (glVertexBlendARBPROC) lglGetProcAddress("glVertexBlendARB");\r
-}\r
-\r
-void InitARBPointParameters()\r
-{\r
-    if (!SupportedExtensions.ARB_point_parameters)\r
-        return;\r
-    glPointParameterfARB = (glPointParameterfARBPROC) lglGetProcAddress("glPointParameterfARB");\r
-    glPointParameterfvARB = (glPointParameterfvARBPROC) lglGetProcAddress("glPointParameterfvARB");\r
-}\r
-\r
-void InitATIPNTriangles()\r
-{\r
-    if (!SupportedExtensions.ATI_pn_triangles)\r
-        return;\r
-    glPNTrianglesiATI = (glPNTrianglesiATIPROC) lglGetProcAddress("glPNTrianglesiATI");\r
-    glPNTrianglesfATI = (glPNTrianglesfATIPROC) lglGetProcAddress("glPNTrianglesfATI");\r
-}\r
-\r
-void InitNVEvaluators()\r
-{\r
-    if (!SupportedExtensions.NV_evaluators)\r
-        return;\r
-    glMapControlPointsNV = (glMapControlPointsNVPROC) lglGetProcAddress("glMapControlPointsNV");\r
-    glMapParameterivNV = (glMapParameterivNVPROC) lglGetProcAddress("glMapParameterivNV");\r
-    glMapParameterfvNV = (glMapParameterfvNVPROC) lglGetProcAddress("glMapParameterfvNV");\r
-    glGetMapControlPointsNV = (glGetMapControlPointsNVPROC) lglGetProcAddress("glGetMapControlPointsNV");\r
-    glGetMapParameterivNV = (glGetMapParameterivNVPROC) lglGetProcAddress("glGetMapParameterivNV");\r
-    glGetMapParameterfvNV = (glGetMapParameterfvNVPROC) lglGetProcAddress("glGetMapParameterfvNV");\r
-    glGetMapAttribParameterivNV = (glGetMapAttribParameterivNVPROC) lglGetProcAddress("glGetMapAttribParameterivNV");\r
-    glGetMapAttribParameterfvNV = (glGetMapAttribParameterfvNVPROC) lglGetProcAddress("glGetMapAttribParameterfvNV");\r
-    glEvalMapsNV = (glEvalMapsNVPROC) lglGetProcAddress("glEvalMapsNV");\r
-}\r
-\r
-void InitNVRegisterCombiners2()\r
-{\r
-    if (!SupportedExtensions.NV_register_combiners2)\r
-        return;\r
-    glCombinerStageParameterfvNV = (glCombinerStageParameterfvNVPROC) lglGetProcAddress("glCombinerStageParameterfvNV");\r
-    glGetCombinerStageParameterfvNV = (glGetCombinerStageParameterfvNVPROC) lglGetProcAddress("glGetCombinerStageParameterfvNV");\r
-}\r
-\r
-void InitNVFence()\r
-{\r
-    if (!SupportedExtensions.NV_fence)\r
-        return;\r
-    glGenFencesNV = (glGenFencesNVPROC) lglGetProcAddress("glGenFencesNV");\r
-    glDeleteFencesNV = (glDeleteFencesNVPROC) lglGetProcAddress("glDeleteFencesNV");\r
-    glSetFenceNV = (glSetFenceNVPROC) lglGetProcAddress("glSetFenceNV");\r
-    glTestFenceNV = (glTestFenceNVPROC) lglGetProcAddress("glTestFenceNV");\r
-    glFinishFenceNV = (glFinishFenceNVPROC) lglGetProcAddress("glFinishFenceNV");\r
-    glIsFenceNV = (glIsFenceNVPROC) lglGetProcAddress("glIsFenceNV");\r
-    glGetFenceivNV = (glGetFenceivNVPROC) lglGetProcAddress("glGetFenceivNV");\r
-}\r
-\r
-void InitNVVertexProgram()\r
-{\r
-    if (!SupportedExtensions.NV_vertex_program)\r
-        return;\r
-    glBindProgramNV = (glBindProgramNVPROC) lglGetProcAddress("glBindProgramNV");\r
-    glDeleteProgramsNV = (glDeleteProgramsNVPROC) lglGetProcAddress("glDeleteProgramsNV");\r
-    glExecuteProgramNV = (glExecuteProgramNVPROC) lglGetProcAddress("glExecuteProgramNV");\r
-    glGenProgramsNV = (glGenProgramsNVPROC) lglGetProcAddress("glGenProgramsNV");\r
-    glAreProgramsResidentNV = (glAreProgramsResidentNVPROC) lglGetProcAddress("glAreProgramsResidentNV");\r
-    glRequestResidentProgramsNV = (glRequestResidentProgramsNVPROC) lglGetProcAddress("glRequestResidentProgramsNV");\r
-    glGetProgramParameterfvNV = (glGetProgramParameterfvNVPROC) lglGetProcAddress("glGetProgramParameterfvNV");\r
-    glGetProgramParameterdvNV = (glGetProgramParameterdvNVPROC) lglGetProcAddress("glGetProgramParameterdvNV");\r
-    glGetProgramivNV = (glGetProgramivNVPROC) lglGetProcAddress("glGetProgramivNV");\r
-    glGetProgramStringNV = (glGetProgramStringNVPROC) lglGetProcAddress("glGetProgramStringNV");\r
-    glGetTrackMatrixivNV = (glGetTrackMatrixivNVPROC) lglGetProcAddress("glGetTrackMatrixivNV");\r
-    glGetVertexAttribdvNV = (glGetVertexAttribdvNVPROC) lglGetProcAddress("glGetVertexAttribdvNV");\r
-    glGetVertexAttribfvNV = (glGetVertexAttribfvNVPROC) lglGetProcAddress("glGetVertexAttribfvNV");\r
-    glGetVertexAttribivNV = (glGetVertexAttribivNVPROC) lglGetProcAddress("glGetVertexAttribivNV");\r
-    glGetVertexAttribPointervNV = (glGetVertexAttribPointervNVPROC) lglGetProcAddress("glGetVertexAttribPointervNV");\r
-    glIsProgramNV = (glIsProgramNVPROC) lglGetProcAddress("glIsProgramNV");\r
-    glLoadProgramNV = (glLoadProgramNVPROC) lglGetProcAddress("glLoadProgramNV");\r
-    glProgramParameter4fNV = (glProgramParameter4fNVPROC) lglGetProcAddress("glProgramParameter4fNV");\r
-    glProgramParameter4dNV = (glProgramParameter4dNVPROC) lglGetProcAddress("glProgramParameter4dNV");\r
-    glProgramParameter4dvNV = (glProgramParameter4dvNVPROC) lglGetProcAddress("glProgramParameter4dvNV");\r
-    glProgramParameter4fvNV = (glProgramParameter4fvNVPROC) lglGetProcAddress("glProgramParameter4fvNV");\r
-    glProgramParameters4dvNV = (glProgramParameters4dvNVPROC) lglGetProcAddress("glProgramParameters4dvNV");\r
-    glProgramParameters4fvNV = (glProgramParameters4fvNVPROC) lglGetProcAddress("glProgramParameters4fvNV");\r
-    glTrackMatrixNV = (glTrackMatrixNVPROC) lglGetProcAddress("glTrackMatrixNV");\r
-    glVertexAttribPointerNV = (glVertexAttribPointerNVPROC) lglGetProcAddress("glVertexAttribPointerNV");\r
-    glVertexAttrib1sNV = (glVertexAttrib1sNVPROC) lglGetProcAddress("glVertexAttrib1sNV");\r
-    glVertexAttrib1fNV = (glVertexAttrib1fNVPROC) lglGetProcAddress("glVertexAttrib1fNV");\r
-    glVertexAttrib1dNV = (glVertexAttrib1dNVPROC) lglGetProcAddress("glVertexAttrib1dNV");\r
-    glVertexAttrib2sNV = (glVertexAttrib2sNVPROC) lglGetProcAddress("glVertexAttrib2sNV");\r
-    glVertexAttrib2fNV = (glVertexAttrib2fNVPROC) lglGetProcAddress("glVertexAttrib2fNV");\r
-    glVertexAttrib2dNV = (glVertexAttrib2dNVPROC) lglGetProcAddress("glVertexAttrib2dNV");\r
-    glVertexAttrib3sNV = (glVertexAttrib3sNVPROC) lglGetProcAddress("glVertexAttrib3sNV");\r
-    glVertexAttrib3fNV = (glVertexAttrib3fNVPROC) lglGetProcAddress("glVertexAttrib3fNV");\r
-    glVertexAttrib3dNV = (glVertexAttrib3dNVPROC) lglGetProcAddress("glVertexAttrib3dNV");\r
-    glVertexAttrib4sNV = (glVertexAttrib4sNVPROC) lglGetProcAddress("glVertexAttrib4sNV");\r
-    glVertexAttrib4fNV = (glVertexAttrib4fNVPROC) lglGetProcAddress("glVertexAttrib4fNV");\r
-    glVertexAttrib4dNV = (glVertexAttrib4dNVPROC) lglGetProcAddress("glVertexAttrib4dNV");\r
-    glVertexAttrib4ubNV = (glVertexAttrib4ubNVPROC) lglGetProcAddress("glVertexAttrib4ubNV");\r
-    glVertexAttrib1svNV = (glVertexAttrib1svNVPROC) lglGetProcAddress("glVertexAttrib1svNV");\r
-    glVertexAttrib1fvNV = (glVertexAttrib1fvNVPROC) lglGetProcAddress("glVertexAttrib1fvNV");\r
-    glVertexAttrib1dvNV = (glVertexAttrib1dvNVPROC) lglGetProcAddress("glVertexAttrib1dvNV");\r
-    glVertexAttrib2svNV = (glVertexAttrib2svNVPROC) lglGetProcAddress("glVertexAttrib2svNV");\r
-    glVertexAttrib2fvNV = (glVertexAttrib2fvNVPROC) lglGetProcAddress("glVertexAttrib2fvNV");\r
-    glVertexAttrib2dvNV = (glVertexAttrib2dvNVPROC) lglGetProcAddress("glVertexAttrib2dvNV");\r
-    glVertexAttrib3svNV = (glVertexAttrib3svNVPROC) lglGetProcAddress("glVertexAttrib3svNV");\r
-    glVertexAttrib3fvNV = (glVertexAttrib3fvNVPROC) lglGetProcAddress("glVertexAttrib3fvNV");\r
-    glVertexAttrib3dvNV = (glVertexAttrib3dvNVPROC) lglGetProcAddress("glVertexAttrib3dvNV");\r
-    glVertexAttrib4svNV = (glVertexAttrib4svNVPROC) lglGetProcAddress("glVertexAttrib4svNV");\r
-    glVertexAttrib4fvNV = (glVertexAttrib4fvNVPROC) lglGetProcAddress("glVertexAttrib4fvNV");\r
-    glVertexAttrib4dvNV = (glVertexAttrib4dvNVPROC) lglGetProcAddress("glVertexAttrib4dvNV");\r
-    glVertexAttrib4ubvNV = (glVertexAttrib4ubvNVPROC) lglGetProcAddress("glVertexAttrib4ubvNV");\r
-    glVertexAttribs1svNV = (glVertexAttribs1svNVPROC) lglGetProcAddress("glVertexAttribs1svNV");\r
-    glVertexAttribs1fvNV = (glVertexAttribs1fvNVPROC) lglGetProcAddress("glVertexAttribs1fvNV");\r
-    glVertexAttribs1dvNV = (glVertexAttribs1dvNVPROC) lglGetProcAddress("glVertexAttribs1dvNV");\r
-    glVertexAttribs2svNV = (glVertexAttribs2svNVPROC) lglGetProcAddress("glVertexAttribs2svNV");\r
-    glVertexAttribs2fvNV = (glVertexAttribs2fvNVPROC) lglGetProcAddress("glVertexAttribs2fvNV");\r
-    glVertexAttribs2dvNV = (glVertexAttribs2dvNVPROC) lglGetProcAddress("glVertexAttribs2dvNV");\r
-    glVertexAttribs3svNV = (glVertexAttribs3svNVPROC) lglGetProcAddress("glVertexAttribs3svNV");\r
-    glVertexAttribs3fvNV = (glVertexAttribs3fvNVPROC) lglGetProcAddress("glVertexAttribs3fvNV");\r
-    glVertexAttribs3dvNV = (glVertexAttribs3dvNVPROC) lglGetProcAddress("glVertexAttribs3dvNV");\r
-    glVertexAttribs4svNV = (glVertexAttribs4svNVPROC) lglGetProcAddress("glVertexAttribs4svNV");\r
-    glVertexAttribs4fvNV = (glVertexAttribs4fvNVPROC) lglGetProcAddress("glVertexAttribs4fvNV");\r
-    glVertexAttribs4dvNV = (glVertexAttribs4dvNVPROC) lglGetProcAddress("glVertexAttribs4dvNV");\r
-    glVertexAttribs4ubvNV = (glVertexAttribs4ubvNVPROC) lglGetProcAddress("glVertexAttribs4ubvNV");\r
-}\r
-\r
-void InitEXTVertexWeighting()\r
-{\r
-    if (!SupportedExtensions.EXT_vertex_weighting)\r
-        return;\r
-    glVertexWeightfEXT = (glVertexWeightfEXTPROC) lglGetProcAddress("glVertexWeightfEXT");\r
-    glVertexWeightfvEXT = (glVertexWeightfvEXTPROC) lglGetProcAddress("glVertexWeightfvEXT");\r
-    glVertexWeightPointerEXT = (glVertexWeightPointerEXTPROC) lglGetProcAddress("glVertexWeightPointerEXT");\r
-}\r
-\r
-void InitARBMultisample()\r
-{\r
-    if (!SupportedExtensions.ARB_multisample)\r
-        return;\r
-    glSampleCoverageARB = (glSampleCoveragePROC) lglGetProcAddress("glSampleCoverageARB");\r
-}\r
-\r
-void InitNVRegisterCombiners()\r
-{\r
-    if (!SupportedExtensions.NV_register_combiners)\r
-        return;\r
-    glCombinerParameterfvNV = (glCombinerParameterfvNVPROC) lglGetProcAddress("glCombinerParameterfvNV");\r
-    glCombinerParameterfNV = (glCombinerParameterfNVPROC) lglGetProcAddress("glCombinerParameterfNV");\r
-    glCombinerParameterivNV = (glCombinerParameterivNVPROC) lglGetProcAddress("glCombinerParameterivNV");\r
-    glCombinerParameteriNV = (glCombinerParameteriNVPROC) lglGetProcAddress("glCombinerParameteriNV");\r
-    glCombinerInputNV = (glCombinerInputNVPROC) lglGetProcAddress("glCombinerInputNV");\r
-    glCombinerOutputNV = (glCombinerOutputNVPROC) lglGetProcAddress("glCombinerOutputNV");\r
-    glFinalCombinerInputNV = (glFinalCombinerInputNVPROC) lglGetProcAddress("glFinalCombinerInputNV");\r
-    glGetCombinerInputParameterfvNV = (glGetCombinerInputParameterfvNVPROC) lglGetProcAddress("glGetCombinerInputParameterfvNV");\r
-    glGetCombinerInputParameterivNV = (glGetCombinerInputParameterivNVPROC) lglGetProcAddress("glGetCombinerInputParameterivNV");\r
-    glGetCombinerOutputParameterfvNV = (glGetCombinerOutputParameterfvNVPROC) lglGetProcAddress("glGetCombinerOutputParameterfvNV");\r
-    glGetCombinerOutputParameterivNV = (glGetCombinerOutputParameterivNVPROC) lglGetProcAddress("glGetCombinerOutputParameterivNV");\r
-    glGetFinalCombinerInputParameterfvNV = (glGetFinalCombinerInputParameterfvNVPROC) lglGetProcAddress("glGetFinalCombinerInputParameterfvNV");\r
-    glGetFinalCombinerInputParameterivNV = (glGetFinalCombinerInputParameterivNVPROC) lglGetProcAddress("glGetFinalCombinerInputParameterivNV");\r
-}\r
-\r
-void InitEXTPointParameters()\r
-{\r
-    if (!SupportedExtensions.EXT_point_parameters)\r
-        return;\r
-    glPointParameterfEXT = (glPointParameterfEXTPROC) lglGetProcAddress("glPointParameterfEXT");\r
-    glPointParameterfvEXT = (glPointParameterfvEXTPROC) lglGetProcAddress("glPointParameterfvEXT");\r
-}\r
-\r
-void InitNVVertexArrayRange()\r
-{\r
-    if (!SupportedExtensions.NV_vertex_array_range)\r
-        return;\r
-    glFlushVertexArrayRangeNV = (glFlushVertexArrayRangeNVPROC) lglGetProcAddress("glFlushVertexArrayRangeNV");\r
-    glVertexArrayRangeNV = (glVertexArrayRangeNVPROC) lglGetProcAddress("glVertexArrayRangeNV");\r
-#ifdef WIN32\r
-    wglAllocateMemoryNV = (wglAllocateMemoryNVPROC) lglGetProcAddress("wglAllocateMemoryNV");\r
-    wglFreeMemoryNV = (wglFreeMemoryNVPROC) lglGetProcAddress("wglFreeMemoryNV");\r
-#endif /* WIN32 */\r
-}\r
\r
-void InitEXTFogCoord()\r
-{\r
-    if (!SupportedExtensions.EXT_fog_coord)\r
-        return;\r
-    glFogCoordfEXT = (glFogCoordfEXTPROC) lglGetProcAddress("glFogCoordfEXT");\r
-    glFogCoordfvEXT = (glFogCoordfvEXTPROC) lglGetProcAddress("glFogCoordfvEXT");\r
-    glFogCoorddEXT = (glFogCoorddEXTPROC) lglGetProcAddress("glFogCoorddEXT");\r
-    glFogCoorddvEXT = (glFogCoorddvEXTPROC) lglGetProcAddress("glFogCoorddvEXT");\r
-    glFogCoordPointerEXT = (glFogCoordPointerEXTPROC) lglGetProcAddress("glFogCoordPointerEXT");\r
-}\r
-\r
-void InitEXTSecondaryColor()\r
-{\r
-    if (!SupportedExtensions.EXT_secondary_color)\r
-        return;\r
-    glSecondaryColor3bEXT = (glSecondaryColor3bEXTPROC) lglGetProcAddress("glSecondaryColor3bEXT");\r
-    glSecondaryColor3bvEXT = (glSecondaryColor3bvEXTPROC) lglGetProcAddress("glSecondaryColor3bvEXT");\r
-    glSecondaryColor3dEXT = (glSecondaryColor3dEXTPROC) lglGetProcAddress("glSecondaryColor3dEXT");\r
-    glSecondaryColor3dvEXT = (glSecondaryColor3dvEXTPROC) lglGetProcAddress("glSecondaryColor3dvEXT");\r
-    glSecondaryColor3fEXT = (glSecondaryColor3fEXTPROC) lglGetProcAddress("glSecondaryColor3fEXT");\r
-    glSecondaryColor3fvEXT = (glSecondaryColor3fvEXTPROC) lglGetProcAddress("glSecondaryColor3fvEXT");\r
-    glSecondaryColor3iEXT = (glSecondaryColor3iEXTPROC) lglGetProcAddress("glSecondaryColor3iEXT");\r
-    glSecondaryColor3ivEXT = (glSecondaryColor3ivEXTPROC) lglGetProcAddress("glSecondaryColor3ivEXT");\r
-    glSecondaryColor3sEXT = (glSecondaryColor3sEXTPROC) lglGetProcAddress("glSecondaryColor3sEXT");\r
-    glSecondaryColor3svEXT = (glSecondaryColor3svEXTPROC) lglGetProcAddress("glSecondaryColor3svEXT");\r
-    glSecondaryColor3ubEXT = (glSecondaryColor3ubEXTPROC) lglGetProcAddress("glSecondaryColor3ubEXT");\r
-    glSecondaryColor3ubvEXT = (glSecondaryColor3ubvEXTPROC) lglGetProcAddress("glSecondaryColor3ubvEXT");\r
-    glSecondaryColor3uiEXT = (glSecondaryColor3uiEXTPROC) lglGetProcAddress("glSecondaryColor3uiEXT");\r
-    glSecondaryColor3uivEXT = (glSecondaryColor3uivEXTPROC) lglGetProcAddress("glSecondaryColor3uivEXT");\r
-    glSecondaryColor3usEXT = (glSecondaryColor3usEXTPROC) lglGetProcAddress("glSecondaryColor3usEXT");\r
-    glSecondaryColor3usvEXT = (glSecondaryColor3usvEXTPROC) lglGetProcAddress("glSecondaryColor3usvEXT");\r
-    glSecondaryColorPointerEXT = (glSecondaryColorPointerEXTPROC) lglGetProcAddress("glSecondaryColorPointerEXT");\r
-}\r
-\r
-void InitEXTCompiledVertexArray()\r
-{\r
-    if (!SupportedExtensions.EXT_compiled_vertex_array)\r
-        return;\r
-    glLockArraysEXT = (glLockArraysEXTPROC) lglGetProcAddress("glLockArraysEXT");\r
-    glUnlockArraysEXT = (glUnlockArraysEXTPROC) lglGetProcAddress("glUnlockArraysEXT");\r
-}\r
-\r
-void InitARBTransposeMatrix()\r
-{\r
-    if (!SupportedExtensions.ARB_transpose_matrix)\r
-        return;\r
-    glLoadTransposeMatrixfARB = (glLoadTransposeMatrixfPROC) lglGetProcAddress("glLoadTransposeMatrixfARB");\r
-    glLoadTransposeMatrixdARB = (glLoadTransposeMatrixdPROC) lglGetProcAddress("glLoadTransposeMatrixdARB");\r
-    glMultTransposeMatrixfARB = (glMultTransposeMatrixfPROC) lglGetProcAddress("glMultTransposeMatrixfARB");\r
-    glMultTransposeMatrixdARB = (glMultTransposeMatrixdPROC) lglGetProcAddress("glMultTransposeMatrixdARB");\r
-}\r
-\r
-void InitARBMultitexture()\r
-{\r
-    if (!SupportedExtensions.ARB_multitexture)\r
-        return;\r
-#ifdef WIN32\r
-    glActiveTextureARB = (glActiveTexturePROC) lglGetProcAddress("glActiveTextureARB");\r
-    glClientActiveTextureARB = (glClientActiveTexturePROC) lglGetProcAddress("glClientActiveTextureARB");\r
-\r
-    glMultiTexCoord1dARB = (glMultiTexCoord1dPROC) lglGetProcAddress("glMultiTexCoord1dARB");\r
-    glMultiTexCoord1dvARB = (glMultiTexCoord1dvPROC) lglGetProcAddress("glMultiTexCoord1dvARB");\r
-    glMultiTexCoord1fARB = (glMultiTexCoord1fPROC) lglGetProcAddress("glMultiTexCoord1fARB");\r
-    glMultiTexCoord1fvARB = (glMultiTexCoord1fvPROC) lglGetProcAddress("glMultiTexCoord1fvARB");\r
-    glMultiTexCoord1iARB = (glMultiTexCoord1iPROC) lglGetProcAddress("glMultiTexCoord1iARB");\r
-    glMultiTexCoord1ivARB = (glMultiTexCoord1ivPROC) lglGetProcAddress("glMultiTexCoord1ivARB");\r
-    glMultiTexCoord1sARB = (glMultiTexCoord1sPROC) lglGetProcAddress("glMultiTexCoord1sARB");\r
-    glMultiTexCoord1svARB = (glMultiTexCoord1svPROC) lglGetProcAddress("glMultiTexCoord1svARB");\r
-\r
-    glMultiTexCoord2dARB = (glMultiTexCoord2dPROC) lglGetProcAddress("glMultiTexCoord2dARB");\r
-    glMultiTexCoord2dvARB = (glMultiTexCoord2dvPROC) lglGetProcAddress("glMultiTexCoord2dvARB");\r
-    glMultiTexCoord2fARB = (glMultiTexCoord2fPROC) lglGetProcAddress("glMultiTexCoord2fARB");\r
-    glMultiTexCoord2fvARB = (glMultiTexCoord2fvPROC) lglGetProcAddress("glMultiTexCoord2fvARB");\r
-    glMultiTexCoord2iARB = (glMultiTexCoord2iPROC) lglGetProcAddress("glMultiTexCoord2iARB");\r
-    glMultiTexCoord2ivARB = (glMultiTexCoord2ivPROC) lglGetProcAddress("glMultiTexCoord2ivARB");\r
-    glMultiTexCoord2sARB = (glMultiTexCoord2sPROC) lglGetProcAddress("glMultiTexCoord2sARB");\r
-    glMultiTexCoord2svARB = (glMultiTexCoord2svPROC) lglGetProcAddress("glMultiTexCoord2svARB");\r
-\r
-    glMultiTexCoord3dARB = (glMultiTexCoord3dPROC) lglGetProcAddress("glMultiTexCoord3dARB");\r
-    glMultiTexCoord3dvARB = (glMultiTexCoord3dvPROC) lglGetProcAddress("glMultiTexCoord3dvARB");\r
-    glMultiTexCoord3fARB = (glMultiTexCoord3fPROC) lglGetProcAddress("glMultiTexCoord3fARB");\r
-    glMultiTexCoord3fvARB = (glMultiTexCoord3fvPROC) lglGetProcAddress("glMultiTexCoord3fvARB");\r
-    glMultiTexCoord3iARB = (glMultiTexCoord3iPROC) lglGetProcAddress("glMultiTexCoord3iARB");\r
-    glMultiTexCoord3ivARB = (glMultiTexCoord3ivPROC) lglGetProcAddress("glMultiTexCoord3ivARB");\r
-    glMultiTexCoord3sARB = (glMultiTexCoord3sPROC) lglGetProcAddress("glMultiTexCoord3sARB");\r
-    glMultiTexCoord3svARB = (glMultiTexCoord3svPROC) lglGetProcAddress("glMultiTexCoord3svARB");\r
-\r
-    glMultiTexCoord4dARB = (glMultiTexCoord4dPROC) lglGetProcAddress("glMultiTexCoord4dARB");\r
-    glMultiTexCoord4dvARB = (glMultiTexCoord4dvPROC) lglGetProcAddress("glMultiTexCoord4dvARB");\r
-    glMultiTexCoord4fARB = (glMultiTexCoord4fPROC) lglGetProcAddress("glMultiTexCoord4fARB");\r
-    glMultiTexCoord4fvARB = (glMultiTexCoord4fvPROC) lglGetProcAddress("glMultiTexCoord4fvARB");\r
-    glMultiTexCoord4iARB = (glMultiTexCoord4iPROC) lglGetProcAddress("glMultiTexCoord4iARB");\r
-    glMultiTexCoord4ivARB = (glMultiTexCoord4ivPROC) lglGetProcAddress("glMultiTexCoord4ivARB");\r
-    glMultiTexCoord4sARB = (glMultiTexCoord4sPROC) lglGetProcAddress("glMultiTexCoord4sARB");\r
-    glMultiTexCoord4svARB = (glMultiTexCoord4svPROC) lglGetProcAddress("glMultiTexCoord4svARB");\r
-#endif \r
-}\r
-\r
-void InitOpenGL1_2()\r
-{\r
-    char *s = (char*) glGetString(GL_VERSION);\r
-    if (!s)\r
-        return;\r
-    s = strstr(s, "1.");\r
-    if (s == NULL) return;\r
-    if (s[2] < '2') return;\r
-#ifdef WIN32\r
-    glTexImage3D = (glTexImage3DPROC) lglGetProcAddress("glTexImage3D");\r
-    glTexSubImage3D = (glTexSubImage3DPROC) lglGetProcAddress("glTexSubImage3D");\r
-    glCopyTexSubImage3D = (glCopyTexSubImage3DPROC) lglGetProcAddress("glCopyTexSubImage3D");\r
-    glDrawRangeElements = (glDrawRangeElementsPROC) lglGetProcAddress("glDrawRangeElements");\r
-#endif\r
-}\r
-\r
-void InitARBImaging()\r
-{\r
-    if (!SupportedExtensions.ARB_imaging)\r
-        return;\r
-    glBlendColor = (glBlendColorPROC) lglGetProcAddress("glBlendColor");\r
-    glBlendEquation = (glBlendEquationPROC) lglGetProcAddress("glBlendEquation");\r
-    glColorTable = (glColorTablePROC) lglGetProcAddress("glColorTable");\r
-    glColorTableParameterfv = (glColorTableParameterfvPROC) lglGetProcAddress("glColorTableParameterfv");\r
-    glColorTableParameteriv = (glColorTableParameterivPROC) lglGetProcAddress("glColorTableParameteriv");\r
-    glCopyColorTable = (glCopyColorTablePROC) lglGetProcAddress("glCopyColorTable");\r
-    glGetColorTable = (glGetColorTablePROC) lglGetProcAddress("glGetColorTable");\r
-    glGetColorTableParameterfv = (glGetColorTableParameterfvPROC) lglGetProcAddress("glGetColorTableParameterfv");\r
-    glGetColorTableParameteriv = (glGetColorTableParameterivPROC) lglGetProcAddress("glGetColorTableParameteriv");\r
-    glColorSubTable = (glColorSubTablePROC) lglGetProcAddress("glColorSubTable");\r
-    glCopyColorSubTable = (glCopyColorSubTablePROC) lglGetProcAddress("glCopyColorSubTable");\r
-    glConvolutionFilter1D = (glConvolutionFilter1DPROC) lglGetProcAddress("glConvolutionFilter1D");\r
-    glConvolutionFilter2D = (glConvolutionFilter2DPROC) lglGetProcAddress("glConvolutionFilter2D");\r
-    glConvolutionParameterf = (glConvolutionParameterfPROC) lglGetProcAddress("glConvolutionParameterf");\r
-    glConvolutionParameterfv = (glConvolutionParameterfvPROC) lglGetProcAddress("glConvolutionParameterfv");\r
-    glConvolutionParameteri = (glConvolutionParameteriPROC) lglGetProcAddress("glConvolutionParameteri");\r
-    glConvolutionParameteriv = (glConvolutionParameterivPROC) lglGetProcAddress("glConvolutionParameteriv");\r
-    glCopyConvolutionFilter1D = (glCopyConvolutionFilter1DPROC) lglGetProcAddress("glCopyConvolutionFilter1D");\r
-    glCopyConvolutionFilter2D = (glCopyConvolutionFilter2DPROC) lglGetProcAddress("glCopyConvolutionFilter2D");\r
-    glGetConvolutionFilter = (glGetConvolutionFilterPROC) lglGetProcAddress("glGetConvolutionFilter");\r
-    glGetConvolutionParameterfv = (glGetConvolutionParameterfvPROC) lglGetProcAddress("glGetConvolutionParameterfv");\r
-    glGetConvolutionParameteriv = (glGetConvolutionParameterivPROC) lglGetProcAddress("glGetConvolutionParameteriv");\r
-    glGetSeparableFilter = (glGetSeparableFilterPROC) lglGetProcAddress("glGetSeparableFilter");\r
-    glSeparableFilter2D = (glSeparableFilter2DPROC) lglGetProcAddress("glSeparableFilter2D");\r
-    glGetHistogram = (glGetHistogramPROC) lglGetProcAddress("glGetHistogram");\r
-    glGetHistogramParameterfv = (glGetHistogramParameterfvPROC) lglGetProcAddress("glGetHistogramParameterfv");\r
-    glGetHistogramParameteriv = (glGetHistogramParameterivPROC) lglGetProcAddress("glGetHistogramParameteriv");\r
-    glGetMinmax = (glGetMinmaxPROC) lglGetProcAddress("glGetMinmax");\r
-    glGetMinmaxParameterfv = (glGetMinmaxParameterfvPROC) lglGetProcAddress("glGetMinmaxParameterfv");\r
-    glGetMinmaxParameteriv = (glGetMinmaxParameterivPROC) lglGetProcAddress("glGetMinmaxParameteriv");\r
-    glHistogram = (glHistogramPROC) lglGetProcAddress("glHistogram");\r
-    glMinmax = (glMinmaxPROC) lglGetProcAddress("glMinmax");\r
-    glResetHistogram = (glResetHistogramPROC) lglGetProcAddress("glResetHistogram");\r
-    glResetMinmax = (glResetMinmaxPROC) lglGetProcAddress("glResetMinmax");\r
-}\r
-\r
-void InitOpenGL1_3()\r
-{\r
-    char *s = (char*) glGetString(GL_VERSION);\r
-    if (!s) return;\r
-    s = strstr(s, "1.");\r
-    if (s == NULL) return;\r
-    if (s[2] < '3') return;\r
-#ifdef WIN32    \r
-    glActiveTexture = (glActiveTexturePROC) lglGetProcAddress("glActiveTexture");\r
-    glClientActiveTexture = (glClientActiveTexturePROC) lglGetProcAddress("glClientActiveTexture");\r
-\r
-    glMultiTexCoord1d = (glMultiTexCoord1dPROC) lglGetProcAddress("glMultiTexCoord1d");\r
-    glMultiTexCoord1dv = (glMultiTexCoord1dvPROC) lglGetProcAddress("glMultiTexCoord1dv");\r
-    glMultiTexCoord1f = (glMultiTexCoord1fPROC) lglGetProcAddress("glMultiTexCoord1f");\r
-    glMultiTexCoord1fv = (glMultiTexCoord1fvPROC) lglGetProcAddress("glMultiTexCoord1fv");\r
-    glMultiTexCoord1i = (glMultiTexCoord1iPROC) lglGetProcAddress("glMultiTexCoord1i");\r
-    glMultiTexCoord1iv = (glMultiTexCoord1ivPROC) lglGetProcAddress("glMultiTexCoord1iv");\r
-    glMultiTexCoord1s = (glMultiTexCoord1sPROC) lglGetProcAddress("glMultiTexCoord1s");\r
-    glMultiTexCoord1sv = (glMultiTexCoord1svPROC) lglGetProcAddress("glMultiTexCoord1sv");\r
-\r
-    glMultiTexCoord2d = (glMultiTexCoord2dPROC) lglGetProcAddress("glMultiTexCoord2d");\r
-    glMultiTexCoord2dv = (glMultiTexCoord2dvPROC) lglGetProcAddress("glMultiTexCoord2dv");\r
-    glMultiTexCoord2f = (glMultiTexCoord2fPROC) lglGetProcAddress("glMultiTexCoord2f");\r
-    glMultiTexCoord2fv = (glMultiTexCoord2fvPROC) lglGetProcAddress("glMultiTexCoord2fv");\r
-    glMultiTexCoord2i = (glMultiTexCoord2iPROC) lglGetProcAddress("glMultiTexCoord2i");\r
-    glMultiTexCoord2iv = (glMultiTexCoord2ivPROC) lglGetProcAddress("glMultiTexCoord2iv");\r
-    glMultiTexCoord2s = (glMultiTexCoord2sPROC) lglGetProcAddress("glMultiTexCoord2s");\r
-    glMultiTexCoord2sv = (glMultiTexCoord2svPROC) lglGetProcAddress("glMultiTexCoord2sv");\r
-\r
-    glMultiTexCoord3d = (glMultiTexCoord3dPROC) lglGetProcAddress("glMultiTexCoord3d");\r
-    glMultiTexCoord3dv = (glMultiTexCoord3dvPROC) lglGetProcAddress("glMultiTexCoord3dv");\r
-    glMultiTexCoord3f = (glMultiTexCoord3fPROC) lglGetProcAddress("glMultiTexCoord3f");\r
-    glMultiTexCoord3fv = (glMultiTexCoord3fvPROC) lglGetProcAddress("glMultiTexCoord3fv");\r
-    glMultiTexCoord3i = (glMultiTexCoord3iPROC) lglGetProcAddress("glMultiTexCoord3i");\r
-    glMultiTexCoord3iv = (glMultiTexCoord3ivPROC) lglGetProcAddress("glMultiTexCoord3iv");\r
-    glMultiTexCoord3s = (glMultiTexCoord3sPROC) lglGetProcAddress("glMultiTexCoord3s");\r
-    glMultiTexCoord3sv = (glMultiTexCoord3svPROC) lglGetProcAddress("glMultiTexCoord3sv");\r
-\r
-    glMultiTexCoord4d = (glMultiTexCoord4dPROC) lglGetProcAddress("glMultiTexCoord4d");\r
-    glMultiTexCoord4dv = (glMultiTexCoord4dvPROC) lglGetProcAddress("glMultiTexCoord4dv");\r
-    glMultiTexCoord4f = (glMultiTexCoord4fPROC) lglGetProcAddress("glMultiTexCoord4f");\r
-    glMultiTexCoord4fv = (glMultiTexCoord4fvPROC) lglGetProcAddress("glMultiTexCoord4fv");\r
-    glMultiTexCoord4i = (glMultiTexCoord4iPROC) lglGetProcAddress("glMultiTexCoord4i");\r
-    glMultiTexCoord4iv = (glMultiTexCoord4ivPROC) lglGetProcAddress("glMultiTexCoord4iv");\r
-    glMultiTexCoord4s = (glMultiTexCoord4sPROC) lglGetProcAddress("glMultiTexCoord4s");\r
-    glMultiTexCoord4sv = (glMultiTexCoord4svPROC) lglGetProcAddress("glMultiTexCoord4sv");\r
-\r
-    glLoadTransposeMatrixf = (glLoadTransposeMatrixfPROC) lglGetProcAddress("glLoadTransposeMatrixf");\r
-    glLoadTransposeMatrixd = (glLoadTransposeMatrixdPROC) lglGetProcAddress("glLoadTransposeMatrixd");\r
-    glMultTransposeMatrixf = (glMultTransposeMatrixfPROC) lglGetProcAddress("glMultTransposeMatrixf");\r
-    glMultTransposeMatrixd = (glMultTransposeMatrixdPROC) lglGetProcAddress("glMultTransposeMatrixd");\r
-    glCompressedTexImage3D = (glCompressedTexImage3DPROC) lglGetProcAddress("glCompressedTexImage3D");\r
-    glCompressedTexImage2D = (glCompressedTexImage2DPROC) lglGetProcAddress("glCompressedTexImage2D");\r
-    glCompressedTexImage1D = (glCompressedTexImage1DPROC) lglGetProcAddress("glCompressedTexImage1D");\r
-    glCompressedTexSubImage3D = (glCompressedTexSubImage3DPROC) lglGetProcAddress("glCompressedTexSubImage3D");\r
-    glCompressedTexSubImage2D = (glCompressedTexSubImage2DPROC) lglGetProcAddress("glCompressedTexSubImage2D");\r
-    glCompressedTexSubImage1D = (glCompressedTexSubImage1DPROC) lglGetProcAddress("glCompressedTexSubImage1D");\r
-    glGetCompressedTexImage = (glGetCompressedTexImagePROC) lglGetProcAddress("glGetCompressedTexImage");\r
-\r
-    glSampleCoverage = (glSampleCoveragePROC) lglGetProcAddress("glSampleCoverage");\r
-#endif\r
-}\r
-\r
-#endif /* __PROTOTYPE__ */\r
-\r
-void InitSupportedExtensions()\r
-{\r
-    char *s = (char*) glGetString(GL_VERSION);\r
-    if (!s)\r
-        return;\r
-    s = strstr(s, "1.");\r
-    if (s == NULL)\r
-    {\r
-        SupportedExtensions.OpenGL12 = 0;    \r
-        SupportedExtensions.OpenGL13 = 0;    \r
-    }\r
-    if (s[2] < '2')\r
-    {\r
-        SupportedExtensions.OpenGL12 = 0;    \r
-        SupportedExtensions.OpenGL13 = 0;    \r
-    }\r
-    if (s[2] <= '2')\r
-    {\r
-        SupportedExtensions.OpenGL12 = 1;    \r
-        SupportedExtensions.OpenGL13 = 0;    \r
-    }\r
-    if (s[2] <= '3')\r
-    {\r
-        SupportedExtensions.OpenGL12 = 1;    \r
-        SupportedExtensions.OpenGL13 = 1;    \r
-    }\r
-    SupportedExtensions.ARB_imaging = QueryExtension("GL_ARB_imaging");\r
-    SupportedExtensions.ARB_matrix_palette = QueryExtension("GL_ARB_matrix_palette");\r
-    SupportedExtensions.ARB_multisample = QueryExtension("GL_ARB_multisample");\r
-    SupportedExtensions.ARB_multitexture = QueryExtension("GL_ARB_multitexture");\r
-    SupportedExtensions.ARB_point_parameters = QueryExtension("GL_ARB_point_parameters");\r
-    SupportedExtensions.ARB_texture_border_clamp = QueryExtension("GL_ARB_texture_border_clamp");\r
-    SupportedExtensions.ARB_texture_compression = QueryExtension("GL_ARB_texture_compression");\r
-    SupportedExtensions.ARB_texture_cube_map = QueryExtension("GL_ARB_texture_cube_map");\r
-    SupportedExtensions.ARB_texture_env_add = QueryExtension("GL_ARB_texture_env_add");\r
-    SupportedExtensions.ARB_texture_env_combine = QueryExtension("GL_ARB_texture_env_combine");\r
-    SupportedExtensions.ARB_texture_env_crossbar = QueryExtension("GL_ARB_texture_env_crossbar");\r
-    SupportedExtensions.ARB_texture_env_dot3 = QueryExtension("GL_ARB_texture_env_dot3");\r
-    SupportedExtensions.ARB_transpose_matrix = QueryExtension("GL_ARB_transpose_matrix");\r
-    SupportedExtensions.ARB_vertex_blend = QueryExtension("GL_ARB_vertex_blend");\r
-    SupportedExtensions.ATI_element_array = QueryExtension("GL_ATI_element_array");\r
-    SupportedExtensions.ATI_envmap_bumpmap = QueryExtension("GL_ATI_envmap_bumpmap");\r
-    SupportedExtensions.ATI_fragment_shader = QueryExtension("GL_ATI_fragment_shader");\r
-    SupportedExtensions.ATI_pn_triangles = QueryExtension("GL_ATI_pn_triangles");\r
-    SupportedExtensions.ATI_texture_mirror_once = QueryExtension("GL_ATI_texture_mirror_once");\r
-    SupportedExtensions.ATI_vertex_array_object = QueryExtension("GL_ATI_vertex_array_object");\r
-    SupportedExtensions.ATI_vertex_streams = QueryExtension("GL_ATI_vertex_streams");\r
-    SupportedExtensions.ATIX_point_sprites = QueryExtension("GL_ATIX_point_sprites");\r
-    SupportedExtensions.ATIX_texture_env_route = QueryExtension("GL_ATIX_texture_env_route");\r
-    SupportedExtensions.EXT_abgr = QueryExtension("GL_EXT_abgr");\r
-    SupportedExtensions.EXT_compiled_vertex_array = QueryExtension("GL_EXT_compiled_vertex_array");\r
-    SupportedExtensions.EXT_fog_coord = QueryExtension("GL_EXT_fog_coord");\r
-    SupportedExtensions.EXT_multi_draw_arrays = QueryExtension("GL_EXT_multi_draw_arrays");\r
-    SupportedExtensions.EXT_point_parameters = QueryExtension("GL_EXT_point_parameters");\r
-    SupportedExtensions.EXT_secondary_color = QueryExtension("GL_EXT_secondary_color");\r
-    SupportedExtensions.EXT_stencil_wrap = QueryExtension("GL_EXT_stencil_wrap");\r
-    SupportedExtensions.EXT_texture_filter_anisotropic = QueryExtension("GL_EXT_texture_filter_anisotropic");\r
-    SupportedExtensions.EXT_texture_lod_bias = QueryExtension("GL_EXT_texture_lod_bias");\r
-    SupportedExtensions.EXT_vertex_shader = QueryExtension("GL_EXT_vertex_shader");\r
-    SupportedExtensions.EXT_vertex_weighting = QueryExtension("GL_EXT_vertex_weighting");\r
-    SupportedExtensions.HP_occlusion_test = QueryExtension("GL_HP_occlusion_test");\r
-    SupportedExtensions.NV_blend_square = QueryExtension("GL_NV_blend_square");\r
-    SupportedExtensions.NV_copy_depth_to_color = QueryExtension("GL_NV_copy_depth_to_color");\r
-    SupportedExtensions.NV_depth_clamp = QueryExtension("GL_NV_depth_clamp");\r
-    SupportedExtensions.NV_evaluators = QueryExtension("GL_NV_evaluators");\r
-    SupportedExtensions.NV_fence = QueryExtension("GL_NV_fence");\r
-    SupportedExtensions.NV_fog_distance = QueryExtension("GL_NV_fog_distance");\r
-    SupportedExtensions.NV_light_max_exponent = QueryExtension("GL_NV_light_max_exponent");\r
-    SupportedExtensions.NV_occlusion_query = QueryExtension("GL_NV_occlusion_query");\r
-    SupportedExtensions.NV_packed_depth_stencil = QueryExtension("GL_NV_packed_depth_stencil");\r
-    SupportedExtensions.NV_point_sprite = QueryExtension("GL_NV_point_sprite");\r
-    SupportedExtensions.NV_register_combiners = QueryExtension("GL_NV_register_combiners");\r
-    SupportedExtensions.NV_register_combiners2 = QueryExtension("GL_NV_register_combiners2");\r
-    SupportedExtensions.NV_texgen_reflection = QueryExtension("GL_NV_texgen_reflection");\r
-    SupportedExtensions.NV_texture_env_combine4 = QueryExtension("GL_NV_texture_env_combine4");\r
-    SupportedExtensions.NV_texture_rectangle = QueryExtension("GL_NV_texture_rectangle");\r
-    SupportedExtensions.NV_texture_shader = QueryExtension("GL_NV_texture_shader");\r
-    SupportedExtensions.NV_texture_shader2 = QueryExtension("GL_NV_texture_shader2");\r
-    SupportedExtensions.NV_texture_shader3 = QueryExtension("GL_NV_texture_shader3");\r
-    SupportedExtensions.NV_vertex_array_range = QueryExtension("GL_NV_vertex_array_range");\r
-    SupportedExtensions.NV_vertex_array_range2 = QueryExtension("GL_NV_vertex_array_range2");\r
-    SupportedExtensions.NV_vertex_program = QueryExtension("GL_NV_vertex_program");\r
-    SupportedExtensions.NV_vertex_program1_1 = QueryExtension("GL_NV_vertex_program1_1");\r
-    SupportedExtensions.SGIS_generate_mipmap = QueryExtension("GL_SGIS_generate_mipmap");\r
-    SupportedExtensions.SGIX_depth_texture = QueryExtension("GL_SGIX_depth_texture");\r
-    SupportedExtensions.SGIX_shadow = QueryExtension("GL_SGIX_shadow");\r
-    SupportedExtensions.ARB_texture_mirrored_repeat = QueryExtension("GL_ARB_texture_mirrored_repeat");\r
-    SupportedExtensions.ARB_depth_texture = QueryExtension("GL_ARB_depth_texture");\r
-    SupportedExtensions.ARB_shadow = QueryExtension("GL_ARB_shadow");\r
-    SupportedExtensions.ARB_shadow_ambient = QueryExtension("GL_ARB_shadow_ambient");\r
-    SupportedExtensions.ARB_window_pos = QueryExtension("GL_ARB_window_pos");\r
-    SupportedExtensions.EXT_shadow_funcs = QueryExtension("GL_EXT_shadow_funcs");\r
-}\r
-\r
-/* init the extensions and load all the functions */\r
-int glInitialize()\r
-{\r
-    error = 0;\r
-    InitSupportedExtensions();\r
-    \r
-    /* first load the etensions */\r
-    InitARBImaging();\r
-    InitARBTransposeMatrix();\r
-    InitARBMultisample();\r
-    InitEXTCompiledVertexArray();\r
-    InitEXTSecondaryColor();\r
-    InitEXTFogCoord();\r
-    InitNVVertexArrayRange();\r
-    InitEXTPointParameters();\r
-    InitNVRegisterCombiners();\r
-    InitEXTVertexWeighting();\r
-    InitNVVertexProgram();\r
-    InitNVFence();\r
-    InitNVRegisterCombiners2();\r
-    InitATIPNTriangles();\r
-    InitARBPointParameters();\r
-    InitARBVertexBlend();\r
-    InitEXTMultiDrawArrays();\r
-    InitARBMatrixPalette();\r
-    InitEXTVertexShader();\r
-    InitATIEnvmapBumpmap();\r
-    InitATIFragmentShader();\r
-    InitATIElementArray();\r
-    InitATIVertexStreams();\r
-    InitATIVertexArrayObject();\r
-    InitNVOcclusionQuery();\r
-    InitNVPointSprite();\r
-    InitARBWindowPos();\r
-\r
-#ifdef WIN32\r
-    InitARBMultitexture();\r
-    /* now load core opengl */\r
-    InitOpenGL1_2();\r
-    InitOpenGL1_3();\r
-    wglInitialize(_dc);\r
-#endif\r
-    return error;\r
-}\r
-\r
+/* Copyright (c) 2001-2002 Lev Povalahev
+
+   levp@gmx.net
+  
+   http://www.uni-karlsruhe.de/~uli2/
+
+*/                         
+
+/* following extensions are supported:
+
+GL_ARB_imaging
+GL_ARB_depth_texture
+GL_ARB_matrix_palette
+GL_ARB_multisample
+GL_ARB_multitexture
+GL_ARB_point_parameters
+GL_ARB_shadow
+GL_ARB_shadow_ambient
+GL_ARB_texture_compression
+GL_ARB_texture_env_add
+GL_ARB_texture_env_dot3
+GL_ARB_texture_env_combine
+GL_ARB_texture_env_crossbar
+GL_ARB_texture_border_clamp
+GL_ARB_texture_cube_map
+GL_ARB_texture_mirrored_repeat
+GL_ARB_transpose_matrix
+GL_ARB_vertex_blend
+GL_EXT_abgr
+GL_EXT_compiled_vertex_array
+GL_EXT_fog_coord
+GL_EXT_multi_draw_arrays
+GL_EXT_point_parameters
+GL_EXT_secondary_color
+GL_EXT_stencil_wrap
+GL_EXT_texture_filter_anisotropic
+GL_EXT_texture_lod_bias
+GL_EXT_vertex_shader
+GL_EXT_vertex_weighting
+GL_ATI_element_array
+GL_ATI_envmap_bumpmap
+GL_ATI_fragment_shader
+GL_ATI_pn_triangles
+GL_ATI_texture_mirror_once
+GL_ATI_vertex_array_object;
+GL_ATI_vertex_streams
+GL_ATIX_point_sprites
+GL_ATIX_texture_env_route
+GL_HP_occlusion_test
+GL_NV_blend_square
+GL_NV_copy_depth_to_color
+GL_NV_depth_clamp
+GL_NV_evaluators
+GL_NV_fence
+GL_NV_fog_distance
+GL_NV_light_max_exponent
+GL_NV_occlusion_query
+GL_NV_packed_depth_stencil
+GL_NV_point_sprite
+GL_NV_register_combiners
+GL_NV_register_combiners2
+GL_NV_texgen_reflection
+GL_NV_texture_env_combine4
+GL_NV_texture_rectangle
+GL_NV_texture_shader
+GL_NV_texture_shader2
+GL_NV_texture_shader3
+GL_NV_vertex_array_range
+GL_NV_vertex_array_range2
+GL_NV_vertex_program
+GL_NV_vertex_program1_1
+GL_SGIS_generate_mipmap
+GL_SGIX_shadow
+GL_SGIX_depth_texture
+WGL_ARB_buffer_region
+WGL_ARB_extensions_string
+WGL_ARB_pbuffer
+WGL_ARB_pixel_format
+WGL_ARB_render_texture 
+WGL_EXT_extensions_string
+
+*/  
+     
+       
+#include "extgl.h"
+#include <stdio.h>
+
+/* function variables */
+
+/*-------------------------------------*/
+/* WGL stuff */
+/*-------------------------------------*/
+
+#ifdef WIN32
+
+/* WGL_EXT_etxension_string */
+
+wglGetExtensionsStringEXTPROC wglGetExtensionsStringEXT = NULL;
+
+/* WGL_ARB_buffer_region */
+
+wglCreateBufferRegionARBPROC wglCreateBufferRegionARB = NULL;
+wglDeleteBufferRegionARBPROC wglDeleteBufferRegionARB = NULL;
+wglSaveBufferRegionARBPROC wglSaveBufferRegionARB = NULL;
+wglRestoreBufferRegionARBPROC wglRestoreBufferRegionARB = NULL;
+
+/* WGL_ARB_extension_string */
+
+wglGetExtensionsStringARBPROC wglGetExtensionsStringARB = NULL;
+
+/* WGL_ARB_pbuffer */
+
+wglCreatePbufferARBPROC wglCreatePbufferARB = NULL;
+wglGetPbufferDCARBPROC wglGetPbufferDCARB = NULL;
+wglReleasePbufferDCARBPROC wglReleasePbufferDCARB = NULL;
+wglDestroyPbufferARBPROC wglDestroyPbufferARB = NULL;
+wglQueryPbufferARBPROC wglQueryPbufferARB = NULL;
+
+/* WGL_ARB_pixel_format */
+
+wglGetPixelFormatAttribivARBPROC wglGetPixelFormatAttribivARB = NULL;
+wglGetPixelFormatAttribfvARBPROC wglGetPixelFormatAttribfvARB = NULL;
+wglChoosePixelFormatARBPROC wglChoosePixelFormatARB = NULL;
+
+/* WGL_ARB_render_texture */
+
+wglBindTexImageARBPROC wglBindTexImageARB = NULL;
+wglReleaseTexImageARBPROC wglReleaseTexImageARB = NULL;
+wglSetPbufferAttribARBPROC wglSetPbufferAttribARB = NULL;
+
+/* WGL_EXT_swap_control */
+
+wglSwapIntervalEXTPROC wglSwapIntervalEXT = NULL;
+wglGetSwapIntervalEXTPROC wglGetSwapIntervalEXT = NULL;
+
+/* WGL_ARB_make_current_read */
+
+wglMakeContextCurrentARBPROC wglMakeContextCurrentARB = NULL;
+wglGetCurrentReadDCARBPROC wglGetCurrentReadDCARB = NULL;
+
+/* VAR */
+
+wglAllocateMemoryNVPROC wglAllocateMemoryNV = NULL;
+wglFreeMemoryNVPROC wglFreeMemoryNV = NULL;
+
+
+
+#endif /* WIN32 */
+
+/*-------------------------------------*/
+/*---WGL STUFF END---------------------*/
+/*-------------------------------------*/
+
+glBlendColorPROC glBlendColor = NULL;
+glBlendEquationPROC glBlendEquation = NULL;
+glDrawRangeElementsPROC glDrawRangeElements = NULL;
+glColorTablePROC glColorTable = NULL;
+glColorTableParameterfvPROC glColorTableParameterfv = NULL;
+glColorTableParameterivPROC glColorTableParameteriv = NULL;
+glCopyColorTablePROC glCopyColorTable = NULL;
+glGetColorTablePROC glGetColorTable = NULL;
+glGetColorTableParameterfvPROC glGetColorTableParameterfv = NULL;
+glGetColorTableParameterivPROC glGetColorTableParameteriv = NULL;
+glColorSubTablePROC glColorSubTable = NULL;
+glCopyColorSubTablePROC glCopyColorSubTable = NULL;
+glConvolutionFilter1DPROC glConvolutionFilter1D = NULL;
+glConvolutionFilter2DPROC glConvolutionFilter2D = NULL;
+glConvolutionParameterfPROC glConvolutionParameterf = NULL;
+glConvolutionParameterfvPROC glConvolutionParameterfv = NULL;
+glConvolutionParameteriPROC glConvolutionParameteri = NULL;
+glConvolutionParameterivPROC glConvolutionParameteriv = NULL;
+glCopyConvolutionFilter1DPROC glCopyConvolutionFilter1D = NULL;
+glCopyConvolutionFilter2DPROC glCopyConvolutionFilter2D = NULL;
+glGetConvolutionFilterPROC glGetConvolutionFilter = NULL;
+glGetConvolutionParameterfvPROC glGetConvolutionParameterfv = NULL;
+glGetConvolutionParameterivPROC glGetConvolutionParameteriv = NULL;
+glGetSeparableFilterPROC glGetSeparableFilter = NULL;
+glSeparableFilter2DPROC glSeparableFilter2D = NULL;
+glGetHistogramPROC glGetHistogram = NULL;
+glGetHistogramParameterfvPROC glGetHistogramParameterfv = NULL;
+glGetHistogramParameterivPROC glGetHistogramParameteriv = NULL;
+glGetMinmaxPROC glGetMinmax = NULL;
+glGetMinmaxParameterfvPROC glGetMinmaxParameterfv = NULL;
+glGetMinmaxParameterivPROC glGetMinmaxParameteriv = NULL;
+glHistogramPROC glHistogram = NULL;
+glMinmaxPROC glMinmax = NULL;
+glResetHistogramPROC glResetHistogram = NULL;
+glResetMinmaxPROC glResetMinmax = NULL;
+glTexImage3DPROC glTexImage3D = NULL;
+glTexSubImage3DPROC glTexSubImage3D = NULL;
+glCopyTexSubImage3DPROC glCopyTexSubImage3D = NULL;
+
+/* 1.3 */
+
+glActiveTexturePROC glActiveTexture = NULL;
+glClientActiveTexturePROC glClientActiveTexture = NULL;
+glMultiTexCoord1dPROC glMultiTexCoord1d = NULL;
+glMultiTexCoord1dvPROC glMultiTexCoord1dv = NULL;
+glMultiTexCoord1fPROC glMultiTexCoord1f = NULL;
+glMultiTexCoord1fvPROC glMultiTexCoord1fv = NULL;
+glMultiTexCoord1iPROC glMultiTexCoord1i = NULL;
+glMultiTexCoord1ivPROC glMultiTexCoord1iv = NULL;
+glMultiTexCoord1sPROC glMultiTexCoord1s = NULL;
+glMultiTexCoord1svPROC glMultiTexCoord1sv = NULL;
+glMultiTexCoord2dPROC glMultiTexCoord2d = NULL;
+glMultiTexCoord2dvPROC glMultiTexCoord2dv = NULL;
+glMultiTexCoord2fPROC glMultiTexCoord2f = NULL;
+glMultiTexCoord2fvPROC glMultiTexCoord2fv = NULL;
+glMultiTexCoord2iPROC glMultiTexCoord2i = NULL;
+glMultiTexCoord2ivPROC glMultiTexCoord2iv = NULL;
+glMultiTexCoord2sPROC glMultiTexCoord2s = NULL;
+glMultiTexCoord2svPROC glMultiTexCoord2sv = NULL;
+glMultiTexCoord3dPROC glMultiTexCoord3d = NULL;
+glMultiTexCoord3dvPROC glMultiTexCoord3dv = NULL;
+glMultiTexCoord3fPROC glMultiTexCoord3f = NULL;
+glMultiTexCoord3fvPROC glMultiTexCoord3fv = NULL;
+glMultiTexCoord3iPROC glMultiTexCoord3i = NULL;
+glMultiTexCoord3ivPROC glMultiTexCoord3iv = NULL;
+glMultiTexCoord3sPROC glMultiTexCoord3s = NULL;
+glMultiTexCoord3svPROC glMultiTexCoord3sv = NULL;
+glMultiTexCoord4dPROC glMultiTexCoord4d = NULL;
+glMultiTexCoord4dvPROC glMultiTexCoord4dv = NULL;
+glMultiTexCoord4fPROC glMultiTexCoord4f = NULL;
+glMultiTexCoord4fvPROC glMultiTexCoord4fv = NULL;
+glMultiTexCoord4iPROC glMultiTexCoord4i = NULL;
+glMultiTexCoord4ivPROC glMultiTexCoord4iv = NULL;
+glMultiTexCoord4sPROC glMultiTexCoord4s = NULL;
+glMultiTexCoord4svPROC glMultiTexCoord4sv = NULL;
+glLoadTransposeMatrixfPROC glLoadTransposeMatrixf = NULL;
+glLoadTransposeMatrixdPROC glLoadTransposeMatrixd = NULL;
+glMultTransposeMatrixfPROC glMultTransposeMatrixf = NULL;
+glMultTransposeMatrixdPROC glMultTransposeMatrixd = NULL;
+glCompressedTexImage3DPROC glCompressedTexImage3D = NULL;
+glCompressedTexImage2DPROC glCompressedTexImage2D = NULL;
+glCompressedTexImage1DPROC glCompressedTexImage1D = NULL;
+glCompressedTexSubImage3DPROC glCompressedTexSubImage3D = NULL;
+glCompressedTexSubImage2DPROC glCompressedTexSubImage2D = NULL;
+glCompressedTexSubImage1DPROC glCompressedTexSubImage1D = NULL;
+glGetCompressedTexImagePROC glGetCompressedTexImage = NULL;
+glSampleCoveragePROC glSampleCoverage = NULL;
+
+/* ARB_multitexture */
+
+glActiveTexturePROC glActiveTextureARB = NULL;
+glClientActiveTexturePROC glClientActiveTextureARB = NULL;
+glMultiTexCoord1dPROC glMultiTexCoord1dARB = NULL;
+glMultiTexCoord1dvPROC glMultiTexCoord1dvARB = NULL;
+glMultiTexCoord1fPROC glMultiTexCoord1fARB = NULL;
+glMultiTexCoord1fvPROC glMultiTexCoord1fvARB = NULL;
+glMultiTexCoord1iPROC glMultiTexCoord1iARB = NULL;
+glMultiTexCoord1ivPROC glMultiTexCoord1ivARB = NULL;
+glMultiTexCoord1sPROC glMultiTexCoord1sARB = NULL;
+glMultiTexCoord1svPROC glMultiTexCoord1svARB = NULL;
+glMultiTexCoord2dPROC glMultiTexCoord2dARB = NULL;
+glMultiTexCoord2dvPROC glMultiTexCoord2dvARB = NULL;
+glMultiTexCoord2fPROC glMultiTexCoord2fARB = NULL;
+glMultiTexCoord2fvPROC glMultiTexCoord2fvARB = NULL;
+glMultiTexCoord2iPROC glMultiTexCoord2iARB = NULL;
+glMultiTexCoord2ivPROC glMultiTexCoord2ivARB = NULL;
+glMultiTexCoord2sPROC glMultiTexCoord2sARB = NULL;
+glMultiTexCoord2svPROC glMultiTexCoord2svARB = NULL;
+glMultiTexCoord3dPROC glMultiTexCoord3dARB = NULL;
+glMultiTexCoord3dvPROC glMultiTexCoord3dvARB = NULL;
+glMultiTexCoord3fPROC glMultiTexCoord3fARB = NULL;
+glMultiTexCoord3fvPROC glMultiTexCoord3fvARB = NULL;
+glMultiTexCoord3iPROC glMultiTexCoord3iARB = NULL;
+glMultiTexCoord3ivPROC glMultiTexCoord3ivARB = NULL;
+glMultiTexCoord3sPROC glMultiTexCoord3sARB = NULL;
+glMultiTexCoord3svPROC glMultiTexCoord3svARB = NULL;
+glMultiTexCoord4dPROC glMultiTexCoord4dARB = NULL;
+glMultiTexCoord4dvPROC glMultiTexCoord4dvARB = NULL;
+glMultiTexCoord4fPROC glMultiTexCoord4fARB = NULL;
+glMultiTexCoord4fvPROC glMultiTexCoord4fvARB = NULL;
+glMultiTexCoord4iPROC glMultiTexCoord4iARB = NULL;
+glMultiTexCoord4ivPROC glMultiTexCoord4ivARB = NULL;
+glMultiTexCoord4sPROC glMultiTexCoord4sARB = NULL;
+glMultiTexCoord4svPROC glMultiTexCoord4svARB = NULL;
+
+/* ARB_transpose_matrix */
+
+glLoadTransposeMatrixfPROC glLoadTransposeMatrixfARB = NULL;
+glLoadTransposeMatrixdPROC glLoadTransposeMatrixdARB = NULL;
+glMultTransposeMatrixfPROC glMultTransposeMatrixfARB = NULL;
+glMultTransposeMatrixdPROC glMultTransposeMatrixdARB = NULL;
+
+/* ARB_texture_compression */
+
+glCompressedTexImage3DPROC glCompressedTexImage3DARB = NULL;
+glCompressedTexImage2DPROC glCompressedTexImage2DARB = NULL;
+glCompressedTexImage1DPROC glCompressedTexImage1DARB = NULL; 
+glCompressedTexSubImage3DPROC glCompressedTexSubImage3DARB = NULL;
+glCompressedTexSubImage2DPROC glCompressedTexSubImage2DARB = NULL;
+glCompressedTexSubImage1DPROC glCompressedTexSubImage1DARB = NULL;
+glGetCompressedTexImagePROC glGetCompressedTexImageARB = NULL;
+
+glSecondaryColor3bEXTPROC glSecondaryColor3bEXT = NULL;
+glSecondaryColor3bvEXTPROC glSecondaryColor3bvEXT = NULL;
+glSecondaryColor3dEXTPROC glSecondaryColor3dEXT = NULL;
+glSecondaryColor3dvEXTPROC glSecondaryColor3dvEXT = NULL;
+glSecondaryColor3fEXTPROC glSecondaryColor3fEXT = NULL;
+glSecondaryColor3fvEXTPROC glSecondaryColor3fvEXT = NULL;
+glSecondaryColor3iEXTPROC glSecondaryColor3iEXT = NULL;
+glSecondaryColor3ivEXTPROC glSecondaryColor3ivEXT = NULL;
+glSecondaryColor3sEXTPROC glSecondaryColor3sEXT = NULL;
+glSecondaryColor3svEXTPROC glSecondaryColor3svEXT = NULL;
+glSecondaryColor3ubEXTPROC glSecondaryColor3ubEXT = NULL;
+glSecondaryColor3ubvEXTPROC glSecondaryColor3ubvEXT = NULL;
+glSecondaryColor3uiEXTPROC glSecondaryColor3uiEXT = NULL;
+glSecondaryColor3uivEXTPROC glSecondaryColor3uivEXT = NULL;
+glSecondaryColor3usEXTPROC glSecondaryColor3usEXT = NULL;
+glSecondaryColor3usvEXTPROC glSecondaryColor3usvEXT = NULL;
+glSecondaryColorPointerEXTPROC glSecondaryColorPointerEXT = NULL;
+
+/* ETX_compiled_vertex_array */
+
+glLockArraysEXTPROC glLockArraysEXT = NULL;
+glUnlockArraysEXTPROC glUnlockArraysEXT = NULL;
+
+
+/* EXT_fog_color */
+
+glFogCoordfEXTPROC glFogCoordfEXT = NULL;
+glFogCoordfvEXTPROC glFogCoordfvEXT = NULL;
+glFogCoorddEXTPROC glFogCoorddEXT = NULL;
+glFogCoorddvEXTPROC glFogCoorddvEXT = NULL;
+glFogCoordPointerEXTPROC glFogCoordPointerEXT = NULL;
+
+/* NV_vertex_array_range */
+
+glFlushVertexArrayRangeNVPROC glFlushVertexArrayRangeNV = NULL;
+glVertexArrayRangeNVPROC glVertexArrayRangeNV = NULL;
+
+/* EXT_point_parameters */
+
+glPointParameterfEXTPROC glPointParameterfEXT = NULL;
+glPointParameterfvEXTPROC glPointParameterfvEXT = NULL;
+
+/* NV_register_combiners */
+
+glCombinerParameterfvNVPROC glCombinerParameterfvNV = NULL;
+glCombinerParameterfNVPROC  glCombinerParameterfNV = NULL;
+glCombinerParameterivNVPROC glCombinerParameterivNV = NULL;
+glCombinerParameteriNVPROC glCombinerParameteriNV = NULL;
+glCombinerInputNVPROC glCombinerInputNV = NULL;
+glCombinerOutputNVPROC glCombinerOutputNV = NULL;
+glFinalCombinerInputNVPROC glFinalCombinerInputNV = NULL;
+glGetCombinerInputParameterfvNVPROC glGetCombinerInputParameterfvNV = NULL;
+glGetCombinerInputParameterivNVPROC glGetCombinerInputParameterivNV = NULL;
+glGetCombinerOutputParameterfvNVPROC glGetCombinerOutputParameterfvNV = NULL;
+glGetCombinerOutputParameterivNVPROC glGetCombinerOutputParameterivNV = NULL;
+glGetFinalCombinerInputParameterfvNVPROC glGetFinalCombinerInputParameterfvNV = NULL;
+glGetFinalCombinerInputParameterivNVPROC glGetFinalCombinerInputParameterivNV = NULL;
+
+/* ARB_multisample */
+
+glSampleCoveragePROC glSampleCoverageARB = NULL;
+
+/* EXT_vertex_weighting */
+
+glVertexWeightfEXTPROC glVertexWeightfEXT = NULL;
+glVertexWeightfvEXTPROC glVertexWeightfvEXT = NULL;
+glVertexWeightPointerEXTPROC glVertexWeightPointerEXT = NULL;
+
+/* NV_vertex_program */
+
+glBindProgramNVPROC glBindProgramNV = NULL;
+glDeleteProgramsNVPROC glDeleteProgramsNV = NULL;
+glExecuteProgramNVPROC glExecuteProgramNV = NULL;
+glGenProgramsNVPROC glGenProgramsNV = NULL;
+glAreProgramsResidentNVPROC glAreProgramsResidentNV = NULL;
+glRequestResidentProgramsNVPROC glRequestResidentProgramsNV = NULL;
+glGetProgramParameterfvNVPROC glGetProgramParameterfvNV = NULL;
+glGetProgramParameterdvNVPROC glGetProgramParameterdvNV = NULL;
+glGetProgramivNVPROC glGetProgramivNV = NULL;
+glGetProgramStringNVPROC glGetProgramStringNV = NULL;
+glGetTrackMatrixivNVPROC glGetTrackMatrixivNV = NULL;
+glGetVertexAttribdvNVPROC glGetVertexAttribdvNV = NULL;
+glGetVertexAttribfvNVPROC glGetVertexAttribfvNV = NULL;
+glGetVertexAttribivNVPROC glGetVertexAttribivNV = NULL;
+glGetVertexAttribPointervNVPROC glGetVertexAttribPointervNV = NULL;
+glIsProgramNVPROC glIsProgramNV = NULL;
+glLoadProgramNVPROC glLoadProgramNV = NULL;
+glProgramParameter4fNVPROC glProgramParameter4fNV = NULL;
+glProgramParameter4dNVPROC glProgramParameter4dNV = NULL;
+glProgramParameter4dvNVPROC glProgramParameter4dvNV = NULL;
+glProgramParameter4fvNVPROC glProgramParameter4fvNV = NULL;
+glProgramParameters4dvNVPROC glProgramParameters4dvNV = NULL;
+glProgramParameters4fvNVPROC glProgramParameters4fvNV = NULL;
+glTrackMatrixNVPROC glTrackMatrixNV = NULL;
+glVertexAttribPointerNVPROC glVertexAttribPointerNV = NULL;
+glVertexAttrib1sNVPROC glVertexAttrib1sNV = NULL;
+glVertexAttrib1fNVPROC glVertexAttrib1fNV = NULL;
+glVertexAttrib1dNVPROC glVertexAttrib1dNV = NULL;
+glVertexAttrib2sNVPROC glVertexAttrib2sNV = NULL;
+glVertexAttrib2fNVPROC glVertexAttrib2fNV = NULL;
+glVertexAttrib2dNVPROC glVertexAttrib2dNV = NULL;
+glVertexAttrib3sNVPROC glVertexAttrib3sNV = NULL;
+glVertexAttrib3fNVPROC glVertexAttrib3fNV = NULL;
+glVertexAttrib3dNVPROC glVertexAttrib3dNV = NULL;
+glVertexAttrib4sNVPROC glVertexAttrib4sNV = NULL;
+glVertexAttrib4fNVPROC glVertexAttrib4fNV = NULL;
+glVertexAttrib4dNVPROC glVertexAttrib4dNV = NULL;
+glVertexAttrib4ubNVPROC glVertexAttrib4ubNV = NULL;
+glVertexAttrib1svNVPROC glVertexAttrib1svNV = NULL;
+glVertexAttrib1fvNVPROC glVertexAttrib1fvNV = NULL;
+glVertexAttrib1dvNVPROC glVertexAttrib1dvNV = NULL;
+glVertexAttrib2svNVPROC glVertexAttrib2svNV = NULL;
+glVertexAttrib2fvNVPROC glVertexAttrib2fvNV = NULL;
+glVertexAttrib2dvNVPROC glVertexAttrib2dvNV = NULL;
+glVertexAttrib3svNVPROC glVertexAttrib3svNV = NULL;
+glVertexAttrib3fvNVPROC glVertexAttrib3fvNV = NULL;
+glVertexAttrib3dvNVPROC glVertexAttrib3dvNV = NULL;
+glVertexAttrib4svNVPROC glVertexAttrib4svNV = NULL;
+glVertexAttrib4fvNVPROC glVertexAttrib4fvNV = NULL;
+glVertexAttrib4dvNVPROC glVertexAttrib4dvNV = NULL;
+glVertexAttrib4ubvNVPROC glVertexAttrib4ubvNV = NULL;
+glVertexAttribs1svNVPROC glVertexAttribs1svNV = NULL;
+glVertexAttribs1fvNVPROC glVertexAttribs1fvNV = NULL;
+glVertexAttribs1dvNVPROC glVertexAttribs1dvNV = NULL;
+glVertexAttribs2svNVPROC glVertexAttribs2svNV = NULL;
+glVertexAttribs2fvNVPROC glVertexAttribs2fvNV = NULL;
+glVertexAttribs2dvNVPROC glVertexAttribs2dvNV = NULL;
+glVertexAttribs3svNVPROC glVertexAttribs3svNV = NULL;
+glVertexAttribs3fvNVPROC glVertexAttribs3fvNV = NULL;
+glVertexAttribs3dvNVPROC glVertexAttribs3dvNV = NULL;
+glVertexAttribs4svNVPROC glVertexAttribs4svNV = NULL;
+glVertexAttribs4fvNVPROC glVertexAttribs4fvNV = NULL;
+glVertexAttribs4dvNVPROC glVertexAttribs4dvNV = NULL;
+glVertexAttribs4ubvNVPROC glVertexAttribs4ubvNV = NULL;
+
+/* NV_fence */
+
+glGenFencesNVPROC glGenFencesNV = NULL;
+glDeleteFencesNVPROC glDeleteFencesNV = NULL;
+glSetFenceNVPROC glSetFenceNV = NULL;
+glTestFenceNVPROC glTestFenceNV = NULL;
+glFinishFenceNVPROC glFinishFenceNV = NULL;
+glIsFenceNVPROC glIsFenceNV = NULL;
+glGetFenceivNVPROC glGetFenceivNV = NULL;
+
+/* NV_register_combiners2 */
+
+glCombinerStageParameterfvNVPROC glCombinerStageParameterfvNV = NULL;
+glGetCombinerStageParameterfvNVPROC glGetCombinerStageParameterfvNV = NULL;
+
+/* NV_evaluators */
+
+glMapControlPointsNVPROC glMapControlPointsNV = NULL;
+glMapParameterivNVPROC glMapParameterivNV = NULL;
+glMapParameterfvNVPROC glMapParameterfvNV = NULL;
+glGetMapControlPointsNVPROC glGetMapControlPointsNV = NULL;
+glGetMapParameterivNVPROC glGetMapParameterivNV = NULL;
+glGetMapParameterfvNVPROC glGetMapParameterfvNV = NULL;
+glGetMapAttribParameterivNVPROC glGetMapAttribParameterivNV = NULL;
+glGetMapAttribParameterfvNVPROC glGetMapAttribParameterfvNV = NULL;
+glEvalMapsNVPROC glEvalMapsNV = NULL;
+
+/* ATI_pn_triangles */
+
+glPNTrianglesiATIPROC glPNTrianglesiATI = NULL;
+glPNTrianglesfATIPROC glPNTrianglesfATI = NULL;
+
+/* ARB_point_parameters */
+
+glPointParameterfARBPROC glPointParameterfARB = NULL;
+glPointParameterfvARBPROC glPointParameterfvARB = NULL;
+
+/* ARB_vertex_blend */
+
+glWeightbvARBPROC glWeightbvARB = NULL;
+glWeightsvARBPROC glWeightsvARB = NULL;
+glWeightivARBPROC glWeightivARB = NULL;
+glWeightfvARBPROC glWeightfvARB = NULL;
+glWeightdvARBPROC glWeightdvARB = NULL;
+glWeightubvARBPROC glWeightubvARB = NULL;
+glWeightusvARBPROC glWeightusvARB = NULL;
+glWeightuivARBPROC glWeightuivARB = NULL;
+glWeightPointerARBPROC glWeightPointerARB = NULL;
+glVertexBlendARBPROC glVertexBlendARB = NULL;
+
+/* EXT_multi_draw_arrays */
+
+glMultiDrawArraysEXTPROC glMultiDrawArraysEXT = NULL;
+glMultiDrawElementsEXTPROC glMultiDrawElementsEXT = NULL;
+
+/* ARB_matrix_palette */
+
+glCurrentPaletteMatrixARBPROC glCurrentPaletteMatrixARB = NULL;
+glMatrixIndexubvARBPROC glMatrixIndexubvARB = NULL;
+glMatrixIndexusvARBPROC glMatrixIndexusvARB = NULL;
+glMatrixIndexuivARBPROC glMatrixIndexuivARB = NULL;
+glMatrixIndexPointerARBPROC glMatrixIndexPointerARB = NULL;
+
+/* EXT_vertex_shader */
+
+glBeginVertexShaderEXTPROC glBeginVertexShaderEXT = NULL;
+glEndVertexShaderEXTPROC glEndVertexShaderEXT = NULL;
+glBindVertexShaderEXTPROC glBindVertexShaderEXT = NULL;
+glGenVertexShadersEXTPROC glGenVertexShadersEXT = NULL;
+glDeleteVertexShaderEXTPROC glDeleteVertexShaderEXT = NULL;
+glShaderOp1EXTPROC glShaderOp1EXT = NULL;
+glShaderOp2EXTPROC glShaderOp2EXT = NULL;
+glShaderOp3EXTPROC glShaderOp3EXT = NULL;
+glSwizzleEXTPROC glSwizzleEXT = NULL;
+glWriteMaskEXTPROC glWriteMaskEXT = NULL;
+glInsertComponentEXTPROC glInsertComponentEXT = NULL;
+glExtractComponentEXTPROC glExtractComponentEXT = NULL;
+glGenSymbolsEXTPROC glGenSymbolsEXT = NULL;
+glSetInvariantEXTPROC glSetInvariantEXT = NULL;
+glSetLocalConstantEXTPROC glSetLocalConstantEXT = NULL;
+glVariantbvEXTPROC glVariantbvEXT = NULL;
+glVariantsvEXTPROC glVariantsvEXT = NULL;
+glVariantivEXTPROC glVariantivEXT = NULL;
+glVariantfvEXTPROC glVariantfvEXT = NULL;
+glVariantdvEXTPROC glVariantdvEXT = NULL;
+glVariantubvEXTPROC glVariantubvEXT = NULL;
+glVariantusvEXTPROC glVariantusvEXT = NULL;
+glVariantuivEXTPROC glVariantuivEXT = NULL;
+glVariantPointerEXTPROC glVariantPointerEXT = NULL;
+glEnableVariantClientStateEXTPROC glEnableVariantClientStateEXT = NULL;
+glDisableVariantClientStateEXTPROC glDisableVariantClientStateEXT = NULL;
+glBindLightParameterEXTPROC glBindLightParameterEXT = NULL;
+glBindMaterialParameterEXTPROC glBindMaterialParameterEXT = NULL;
+glBindTexGenParameterEXTPROC glBindTexGenParameterEXT = NULL;
+glBindTextureUnitParameterEXTPROC glBindTextureUnitParameterEXT = NULL;
+glBindParameterEXTPROC glBindParameterEXT = NULL;
+glIsVariantEnabledEXTPROC glIsVariantEnabledEXT = NULL;
+glGetVariantBooleanvEXTPROC glGetVariantBooleanvEXT = NULL;
+glGetVariantIntegervEXTPROC glGetVariantIntegervEXT = NULL;
+glGetVariantFloatvEXTPROC glGetVariantFloatvEXT = NULL;
+glGetVariantPointervEXTPROC glGetVariantPointervEXT = NULL;
+glGetInvariantBooleanvEXTPROC glGetInvariantBooleanvEXT = NULL;
+glGetInvariantIntegervEXTPROC glGetInvariantIntegervEXT = NULL;
+glGetInvariantFloatvEXTPROC glGetInvariantFloatvEXT = NULL;
+glGetLocalConstantBooleanvEXTPROC glGetLocalConstantBooleanvEXT = NULL;
+glGetLocalConstantIntegervEXTPROC glGetLocalConstantIntegervEXT = NULL;
+glGetLocalConstantFloatvEXTPROC glGetLocalConstantFloatvEXT = NULL;
+
+/* ATI_envmap_bumpmap */
+
+glTexBumpParameterivATIPROC glTexBumpParameterivATI = NULL;
+glTexBumpParameterfvATIPROC glTexBumpParameterfvATI = NULL;
+glGetTexBumpParameterivATIPROC glGetTexBumpParameterivATI = NULL;
+glGetTexBumpParameterfvATIPROC glGetTexBumpParameterfvATI = NULL;
+
+/* ATI_fragment_shader */
+
+glGenFragmentShadersATIPROC glGenFragmentShadersATI = NULL;
+glBindFragmentShaderATIPROC glBindFragmentShaderATI = NULL;
+glDeleteFragmentShaderATIPROC glDeleteFragmentShaderATI = NULL;
+glBeginFragmentShaderATIPROC glBeginFragmentShaderATI = NULL;
+glEndFragmentShaderATIPROC glEndFragmentShaderATI = NULL;
+glPassTexCoordATIPROC glPassTexCoordATI = NULL;
+glSampleMapATIPROC glSampleMapATI = NULL;
+glColorFragmentOp1ATIPROC glColorFragmentOp1ATI = NULL;
+glColorFragmentOp2ATIPROC glColorFragmentOp2ATI = NULL;
+glColorFragmentOp3ATIPROC glColorFragmentOp3ATI = NULL;
+glAlphaFragmentOp1ATIPROC glAlphaFragmentOp1ATI = NULL;
+glAlphaFragmentOp2ATIPROC glAlphaFragmentOp2ATI = NULL;
+glAlphaFragmentOp3ATIPROC glAlphaFragmentOp3ATI = NULL;
+glSetFragmentShaderConstantATIPROC glSetFragmentShaderConstantATI = NULL;
+
+/* ATI_element_array */
+
+glElementPointerATIPROC glElementPointerATI = NULL;
+glDrawElementArrayATIPROC glDrawElementArrayATI = NULL;
+glDrawRangeElementArrayATIPROC glDrawRangeElementArrayATI = NULL;
+
+/* ATI_vertex_streams */
+
+glClientActiveVertexStreamATIPROC glClientActiveVertexStreamATI = NULL;
+glVertexBlendEnviATIPROC glVertexBlendEnviATI = NULL;
+glVertexBlendEnvfATIPROC glVertexBlendEnvfATI = NULL;
+glVertexStream2sATIPROC glVertexStream2sATI = NULL;
+glVertexStream2svATIPROC glVertexStream2svATI = NULL;
+glVertexStream2iATIPROC glVertexStream2iATI = NULL;
+glVertexStream2ivATIPROC glVertexStream2ivATI = NULL;
+glVertexStream2fATIPROC glVertexStream2fATI = NULL;
+glVertexStream2fvATIPROC glVertexStream2fvATI = NULL;
+glVertexStream2dATIPROC glVertexStream2dATI = NULL;
+glVertexStream2dvATIPROC glVertexStream2dvATI = NULL;
+glVertexStream3sATIPROC glVertexStream3sATI = NULL;
+glVertexStream3svATIPROC glVertexStream3svATI = NULL;
+glVertexStream3iATIPROC glVertexStream3iATI = NULL;
+glVertexStream3ivATIPROC glVertexStream3ivATI = NULL;
+glVertexStream3fATIPROC glVertexStream3fATI = NULL;
+glVertexStream3fvATIPROC glVertexStream3fvATI = NULL;
+glVertexStream3dATIPROC glVertexStream3dATI = NULL;
+glVertexStream3dvATIPROC glVertexStream3dvATI = NULL;
+glVertexStream4sATIPROC glVertexStream4sATI = NULL;
+glVertexStream4svATIPROC glVertexStream4svATI = NULL;
+glVertexStream4iATIPROC glVertexStream4iATI = NULL;
+glVertexStream4ivATIPROC glVertexStream4ivATI = NULL;
+glVertexStream4fATIPROC glVertexStream4fATI = NULL;
+glVertexStream4fvATIPROC glVertexStream4fvATI = NULL;
+glVertexStream4dATIPROC glVertexStream4dATI = NULL;
+glVertexStream4dvATIPROC glVertexStream4dvATI = NULL;
+glNormalStream3bATIPROC glNormalStream3bATI = NULL;
+glNormalStream3bvATIPROC glNormalStream3bvATI = NULL;
+glNormalStream3sATIPROC glNormalStream3sATI = NULL;
+glNormalStream3svATIPROC glNormalStream3svATI = NULL;
+glNormalStream3iATIPROC glNormalStream3iATI = NULL;
+glNormalStream3ivATIPROC glNormalStream3ivATI = NULL;
+glNormalStream3fATIPROC glNormalStream3fATI = NULL;
+glNormalStream3fvATIPROC glNormalStream3fvATI = NULL;
+glNormalStream3dATIPROC glNormalStream3dATI = NULL;
+glNormalStream3dvATIPROC glNormalStream3dvATI = NULL;
+
+/* ATI_vertex_array_object */
+
+glNewObjectBufferATIPROC glNewObjectBufferATI = NULL;
+glIsObjectBufferATIPROC glIsObjectBufferATI = NULL;
+glUpdateObjectBufferATIPROC glUpdateObjectBufferATI = NULL;
+glGetObjectBufferfvATIPROC glGetObjectBufferfvATI = NULL;
+glGetObjectBufferivATIPROC glGetObjectBufferivATI = NULL;
+glFreeObjectBufferATIPROC glFreeObjectBufferATI = NULL;
+glArrayObjectATIPROC glArrayObjectATI = NULL;
+glGetArrayObjectfvATIPROC glGetArrayObjectfvATI = NULL;
+glGetArrayObjectivATIPROC glGetArrayObjectivATI = NULL;
+glVariantArrayObjectATIPROC glVariantArrayObjectATI = NULL;
+glGetVariantArrayObjectfvATIPROC glGetVariantArrayObjectfvATI = NULL;
+glGetVariantArrayObjectivATIPROC glGetVariantArrayObjectivATI = NULL;
+
+/* NV_occlusion_query */
+
+glGenOcclusionQueriesNVPROC glGenOcclusionQueriesNV = NULL;
+glDeleteOcclusionQueriesNVPROC glDeleteOcclusionQueriesNV = NULL;
+glIsOcclusionQueryNVPROC glIsOcclusionQueryNV = NULL;
+glBeginOcclusionQueryNVPROC glBeginOcclusionQueryNV = NULL;
+glEndOcclusionQueryNVPROC glEndOcclusionQueryNV = NULL;
+glGetOcclusionQueryivNVPROC glGetOcclusionQueryivNV = NULL;
+glGetOcclusionQueryuivNVPROC glGetOcclusionQueryuivNV = NULL;
+
+/* NV_point_sprite */
+
+glPointParameteriNVPROC glPointParameteriNV = NULL;
+glPointParameterivNVPROC glPointParameterivNV = NULL;
+
+/* ARB_window_pos */
+
+glWindowPos2dARBPROC glWindowPos2dARB = NULL;
+glWindowPos2fARBPROC glWindowPos2fARB = NULL;
+glWindowPos2iARBPROC glWindowPos2iARB = NULL;
+glWindowPos2sARBPROC glWindowPos2sARB = NULL;
+glWindowPos2dvARBPROC glWindowPos2dvARB = NULL;
+glWindowPos2fvARBPROC glWindowPos2fvARB = NULL;
+glWindowPos2ivARBPROC glWindowPos2ivARB = NULL;
+glWindowPos2svARBPROC glWindowPos2svARB = NULL;
+glWindowPos3dARBPROC glWindowPos3dARB = NULL;
+glWindowPos3fARBPROC glWindowPos3fARB = NULL;
+glWindowPos3iARBPROC glWindowPos3iARB = NULL;
+glWindowPos3sARBPROC glWindowPos3sARB = NULL;
+glWindowPos3dvARBPROC glWindowPos3dvARB = NULL;
+glWindowPos3fvARBPROC glWindowPos3fvARB = NULL;
+glWindowPos3ivARBPROC glWindowPos3ivARB = NULL;
+glWindowPos3svARBPROC glWindowPos3svARB = NULL;
+
+/* misc  */
+
+static int error = 0;
+
+struct ExtensionTypes SupportedExtensions;
+
+/* getProcAddress */
+
+void *lglGetProcAddress(char *name)
+{
+#ifdef WIN32
+    void *t = wglGetProcAddress(name);
+/*    char err[1000];*/
+    if (t == NULL)
+    {
+        /*sprintf(err, "wglGetProcAddress on %s failed", name);*/
+        error = 1;  /*      MessageBox(0, err, "Error", MB_OK | MB_ICONHAND);*/
+    }
+    return t;
+#else
+    void *t = glXGetProcAddressARB((byte*)name);
+    if (t == NULL)
+    {
+        error = 1:
+    }
+    return t;
+#endif
+}
+
+/*-----------------------------------------------------*/
+/* WGL stuff */
+/*-----------------------------------------------------*/
+
+#ifdef WIN32
+
+static HDC _dc = 0;
+
+#endif /* WIN32 */
+
+#ifdef WIN32
+
+/* set the DC you will be working with */
+
+/** returns true if the extention is available */
+int QueryWGLExtension(const char *name)
+{
+    const GLubyte *extensions = NULL;
+    const GLubyte *start;
+    GLubyte *where, *terminator;
+
+    /* Extension names should not have spaces. */
+    where = (GLubyte *) strchr(name, ' ');
+    if (where || *name == '\0')
+        return 0;
+    if ((wglGetExtensionsStringARB == NULL) || (_dc == 0))
+        if (wglGetExtensionsStringEXT == NULL)
+            return 0;
+        else
+            extensions = wglGetExtensionsStringEXT();
+    else
+        extensions = wglGetExtensionsStringARB(_dc);
+    /* It takes a bit of care to be fool-proof about parsing the
+         OpenGL extensions string. Don't be fooled by sub-strings,
+        etc. */
+    start = extensions;
+    for (;;) 
+    {
+        where = (GLubyte *) strstr((const char *) start, name);
+        if (!where)
+            break;
+        terminator = where + strlen(name);
+        if (where == start || *(where - 1) == ' ')
+            if (*terminator == ' ' || *terminator == '\0')
+                return 1;
+        start = terminator;
+    }
+    return 0;
+}
+
+void InitWGLARBBufferRegion()
+{
+    if (!SupportedExtensions.wgl.ARB_buffer_region)
+        return;
+    wglCreateBufferRegionARB = (wglCreateBufferRegionARBPROC) lglGetProcAddress("wglCreateBufferRegionARB");
+    wglDeleteBufferRegionARB = (wglDeleteBufferRegionARBPROC) lglGetProcAddress("wglDeleteBufferRegionARB");
+    wglSaveBufferRegionARB = (wglSaveBufferRegionARBPROC) lglGetProcAddress("wglSaveBufferRegionARB");
+    wglRestoreBufferRegionARB = (wglRestoreBufferRegionARBPROC) lglGetProcAddress("wglRestoreBufferRegionARB");
+
+}
+
+void InitWGLARBPbuffer()
+{
+    if (!SupportedExtensions.wgl.ARB_pbuffer)
+        return;
+    wglCreatePbufferARB = (wglCreatePbufferARBPROC) lglGetProcAddress("wglCreatePbufferARB");
+    wglGetPbufferDCARB = (wglGetPbufferDCARBPROC) lglGetProcAddress("wglGetPbufferDCARB");
+    wglReleasePbufferDCARB = (wglReleasePbufferDCARBPROC) lglGetProcAddress("wglReleasePbufferDCARB");
+    wglDestroyPbufferARB = (wglDestroyPbufferARBPROC) lglGetProcAddress("wglDestroyPbufferARB");
+    wglQueryPbufferARB = (wglQueryPbufferARBPROC) lglGetProcAddress("wglQueryPbufferARB");
+}
+
+void InitWGLARBPixelFormat()
+{
+    if (!SupportedExtensions.wgl.ARB_pixel_format)
+        return;
+    wglGetPixelFormatAttribivARB = (wglGetPixelFormatAttribivARBPROC) lglGetProcAddress("wglGetPixelFormatAttribivARB");
+    wglGetPixelFormatAttribfvARB = (wglGetPixelFormatAttribfvARBPROC) lglGetProcAddress("wglGetPixelFormatAttribfvARB");
+    wglChoosePixelFormatARB = (wglChoosePixelFormatARBPROC) lglGetProcAddress("wglChoosePixelFormatARB");
+}
+
+void InitWGLARBRenderTexture()
+{
+    if (!SupportedExtensions.wgl.ARB_render_texture)
+        return;
+    wglBindTexImageARB = (wglBindTexImageARBPROC) lglGetProcAddress("wglBindTexImageARB");
+    wglReleaseTexImageARB = (wglReleaseTexImageARBPROC) lglGetProcAddress("wglReleaseTexImageARB");
+    wglSetPbufferAttribARB = (wglSetPbufferAttribARBPROC) lglGetProcAddress("wglSetPbufferAttribARB");
+}
+
+void InitWGLEXTSwapControl()
+{
+    if (!SupportedExtensions.wgl.EXT_swap_control)
+        return;
+    wglSwapIntervalEXT = (wglSwapIntervalEXTPROC) lglGetProcAddress("wglSwapIntervalEXT");
+    wglGetSwapIntervalEXT = (wglGetSwapIntervalEXTPROC) lglGetProcAddress("wglGetSwapIntervalEXT");
+}
+
+void InitWGLARBMakeCurrentRead()
+{
+    if (!SupportedExtensions.wgl.ARB_make_current_read)
+        return;
+    wglMakeContextCurrentARB = (wglMakeContextCurrentARBPROC) lglGetProcAddress("wglMakeContextCurrentARB");
+    wglGetCurrentReadDCARB = (wglGetCurrentReadDCARBPROC) lglGetProcAddress("wglGetCurrentReadDCARB");
+}
+
+void InitSupportedWGLExtensions()
+{
+    SupportedExtensions.wgl.ARB_buffer_region = QueryWGLExtension("WGL_ARB_buffer_region");
+    SupportedExtensions.wgl.ARB_pbuffer = QueryWGLExtension("WGL_ARB_pbuffer");
+    SupportedExtensions.wgl.ARB_pixel_format = QueryWGLExtension("WGL_ARB_pixel_format");
+    SupportedExtensions.wgl.ARB_render_texture = QueryWGLExtension("WGL_ARB_render_texture");
+    SupportedExtensions.wgl.EXT_swap_control = QueryWGLExtension("WGL_EXT_swap_control");
+    SupportedExtensions.wgl.ARB_make_current_read = QueryWGLExtension("WGL_ARB_make_current_read");
+    SupportedExtensions.wgl.ARB_multisample = QueryWGLExtension("WGL_ARB_multisample");
+}
+
+void _wglSetDC(HDC dc)
+{
+    _dc = dc;
+}
+
+int wglInitialize(HDC dc)
+{
+    _dc = dc;    
+    error = 0;
+    wglGetExtensionsStringARB = (wglGetExtensionsStringARBPROC) lglGetProcAddress("wglGetExtensionsStringARB");
+    wglGetExtensionsStringEXT = (wglGetExtensionsStringEXTPROC) lglGetProcAddress("wglGetExtensionsStringEXT");
+    SupportedExtensions.wgl.ARB_extensions_string = wglGetExtensionsStringARB != NULL;
+    SupportedExtensions.wgl.EXT_extensions_string = wglGetExtensionsStringEXT != NULL;
+    error = 0;
+
+    InitSupportedWGLExtensions();
+   
+
+    InitWGLARBMakeCurrentRead();
+    InitWGLEXTSwapControl();
+    InitWGLARBRenderTexture();
+    InitWGLARBPixelFormat();
+    InitWGLARBPbuffer();
+    InitWGLARBBufferRegion();
+    
+    return error;
+}
+
+#endif /* WIN32 */
+
+/*-----------------------------------------------------*/
+/* WGL stuff END*/
+/*-----------------------------------------------------*/
+
+/** returns true if the extention is available */
+int QueryExtension(const char *name)
+{
+    const GLubyte *extensions = NULL;
+    const GLubyte *start;
+    GLubyte *where, *terminator;
+
+    /* Extension names should not have spaces. */
+    where = (GLubyte *) strchr(name, ' ');
+    if (where || *name == '\0')
+        return 0;
+    extensions = glGetString(GL_EXTENSIONS);
+    /* It takes a bit of care to be fool-proof about parsing the
+         OpenGL extensions string. Don't be fooled by sub-strings,
+        etc. */
+    start = extensions;
+    for (;;) 
+    {
+        where = (GLubyte *) strstr((const char *) start, name);
+        if (!where)
+            break;
+        terminator = where + strlen(name);
+        if (where == start || *(where - 1) == ' ')
+            if (*terminator == ' ' || *terminator == '\0')
+                return 1;
+        start = terminator;
+    }
+    return 0;
+    
+/*    char *s = (char*)glGetString(GL_EXTENSIONS);
+    char *temp = strstr(s, name);
+    return temp!=NULL;*/
+}
+void InitARBWindowPos()
+{
+    if (!SupportedExtensions.ARB_window_pos)
+        return;
+    glWindowPos2dARB = (glWindowPos2dARBPROC) lglGetProcAddress("glWindowPos2dARB");
+    glWindowPos2fARB = (glWindowPos2fARBPROC) lglGetProcAddress("glWindowPos2fARB");
+    glWindowPos2iARB = (glWindowPos2iARBPROC) lglGetProcAddress("glWindowPos2iARB");
+    glWindowPos2sARB = (glWindowPos2sARBPROC) lglGetProcAddress("glWindowPos2sARB");
+    glWindowPos2dvARB = (glWindowPos2dvARBPROC) lglGetProcAddress("glWindowPos2dvARB");
+    glWindowPos2fvARB = (glWindowPos2fvARBPROC) lglGetProcAddress("glWindowPos2fvARB");
+    glWindowPos2ivARB = (glWindowPos2ivARBPROC) lglGetProcAddress("glWindowPos2ivARB");
+    glWindowPos2svARB = (glWindowPos2svARBPROC) lglGetProcAddress("glWindowPos2svARB");
+    glWindowPos3dARB = (glWindowPos3dARBPROC) lglGetProcAddress("glWindowPos3dARB");
+    glWindowPos3fARB = (glWindowPos3fARBPROC) lglGetProcAddress("glWindowPos3fARB");
+    glWindowPos3iARB = (glWindowPos3iARBPROC) lglGetProcAddress("glWindowPos3iARB");
+    glWindowPos3sARB = (glWindowPos3sARBPROC) lglGetProcAddress("glWindowPos3sARB");
+    glWindowPos3dvARB = (glWindowPos3dvARBPROC) lglGetProcAddress("glWindowPos3dvARB");
+    glWindowPos3fvARB = (glWindowPos3fvARBPROC) lglGetProcAddress("glWindowPos3fvARB");
+    glWindowPos3ivARB = (glWindowPos3ivARBPROC) lglGetProcAddress("glWindowPos3ivARB");
+    glWindowPos3svARB = (glWindowPos3svARBPROC) lglGetProcAddress("glWindowPos3svARB");
+}
+
+void InitARBTextureCompression()
+{
+    if (!SupportedExtensions.ARB_texture_compression)
+        return;
+    glCompressedTexImage3DARB = (glCompressedTexImage3DPROC) lglGetProcAddress("glCompressedTexImage3DARB");
+    glCompressedTexImage2DARB = (glCompressedTexImage2DPROC) lglGetProcAddress("glCompressedTexImage2DARB");
+    glCompressedTexImage1DARB = (glCompressedTexImage1DPROC) lglGetProcAddress("glCompressedTexImage1DARB");
+    glCompressedTexSubImage3DARB = (glCompressedTexSubImage3DPROC) lglGetProcAddress("glCompressedTexSubImage3DARB");
+    glCompressedTexSubImage2DARB = (glCompressedTexSubImage2DPROC) lglGetProcAddress("glCompressedTexSubImage2DARB");
+    glCompressedTexSubImage1DARB = (glCompressedTexSubImage1DPROC) lglGetProcAddress("glCompressedTexSubImage1DARB");
+    glGetCompressedTexImageARB = (glGetCompressedTexImagePROC) lglGetProcAddress("glGetCompressedTexImageARB");
+}
+
+void InitNVPointSprite()
+{
+    if (!SupportedExtensions.NV_point_sprite)
+        return;
+    glPointParameteriNV = (glPointParameteriNVPROC) lglGetProcAddress("glPointParameteriNV");
+    glPointParameterivNV = (glPointParameterivNVPROC) lglGetProcAddress("glPointParameterivNV");
+}
+
+void InitNVOcclusionQuery()
+{
+    if (!SupportedExtensions.NV_occlusion_query)
+        return;
+    glGenOcclusionQueriesNV = (glGenOcclusionQueriesNVPROC) lglGetProcAddress("glGenOcclusionQueriesNV");
+    glDeleteOcclusionQueriesNV = (glDeleteOcclusionQueriesNVPROC) lglGetProcAddress("glDeleteOcclusionQueriesNV");
+    glIsOcclusionQueryNV = (glIsOcclusionQueryNVPROC) lglGetProcAddress("glIsOcclusionQueryNV");
+    glBeginOcclusionQueryNV = (glBeginOcclusionQueryNVPROC) lglGetProcAddress("glBeginOcclusionQueryNV");
+    glEndOcclusionQueryNV = (glEndOcclusionQueryNVPROC) lglGetProcAddress("glEndOcclusionQueryNV");
+    glGetOcclusionQueryivNV = (glGetOcclusionQueryivNVPROC) lglGetProcAddress("glGetOcclusionQueryivNV");
+    glGetOcclusionQueryuivNV = (glGetOcclusionQueryuivNVPROC) lglGetProcAddress("glGetOcclusionQueryuivNV");
+}
+
+#ifndef __PROTOTYPE__
+void InitATIVertexArrayObject()
+{
+    if (!SupportedExtensions.ATI_vertex_array_object)
+        return;
+    glNewObjectBufferATI = (glNewObjectBufferATIPROC) lglGetProcAddress("glNewObjectBufferATI");
+    glIsObjectBufferATI = (glIsObjectBufferATIPROC) lglGetProcAddress("glIsObjectBufferATI");
+    glUpdateObjectBufferATI = (glUpdateObjectBufferATIPROC) lglGetProcAddress("glUpdateObjectBufferATI");
+    glGetObjectBufferfvATI = (glGetObjectBufferfvATIPROC) lglGetProcAddress("glGetObjectBufferfvATI");
+    glGetObjectBufferivATI = (glGetObjectBufferivATIPROC) lglGetProcAddress("glGetObjectBufferivATI");
+    glFreeObjectBufferATI = (glFreeObjectBufferATIPROC) lglGetProcAddress("glFreeObjectBufferATI");
+    glArrayObjectATI = (glArrayObjectATIPROC) lglGetProcAddress("glArrayObjectATI");
+    glGetArrayObjectfvATI = (glGetArrayObjectfvATIPROC) lglGetProcAddress("glGetArrayObjectfvATI");
+    glGetArrayObjectivATI = (glGetArrayObjectivATIPROC) lglGetProcAddress("glGetArrayObjectivATI");
+    glVariantArrayObjectATI = (glVariantArrayObjectATIPROC) lglGetProcAddress("glVariantArrayObjectATI");
+    glGetVariantArrayObjectfvATI = (glGetVariantArrayObjectfvATIPROC) lglGetProcAddress("glGetVariantArrayObjectfvATI");
+    glGetVariantArrayObjectivATI = (glGetVariantArrayObjectivATIPROC) lglGetProcAddress("glGetVariantArrayObjectivATI");
+}
+
+void InitATIVertexStreams()
+{
+    if (!SupportedExtensions.ATI_vertex_streams)
+        return;
+    glClientActiveVertexStreamATI = (glClientActiveVertexStreamATIPROC) lglGetProcAddress("glClientActiveVertexStreamATI");
+    glVertexBlendEnviATI = (glVertexBlendEnviATIPROC) lglGetProcAddress("glVertexBlendEnviATI");
+    glVertexBlendEnvfATI = (glVertexBlendEnvfATIPROC) lglGetProcAddress("glVertexBlendEnvfATI");
+    glVertexStream2sATI = (glVertexStream2sATIPROC) lglGetProcAddress("glVertexStream2sATI");
+    glVertexStream2svATI = (glVertexStream2svATIPROC) lglGetProcAddress("glVertexStream2svATI");
+    glVertexStream2iATI = (glVertexStream2iATIPROC) lglGetProcAddress("glVertexStream2iATI");
+    glVertexStream2ivATI = (glVertexStream2ivATIPROC) lglGetProcAddress("glVertexStream2ivATI");
+    glVertexStream2fATI = (glVertexStream2fATIPROC) lglGetProcAddress("glVertexStream2fATI");
+    glVertexStream2fvATI = (glVertexStream2fvATIPROC) lglGetProcAddress("glVertexStream2fvATI");
+    glVertexStream2dATI = (glVertexStream2dATIPROC) lglGetProcAddress("glVertexStream2dATI");
+    glVertexStream2dvATI = (glVertexStream2dvATIPROC) lglGetProcAddress("glVertexStream2dvATI");
+    glVertexStream3sATI = (glVertexStream3sATIPROC) lglGetProcAddress("glVertexStream3sATI");
+    glVertexStream3svATI = (glVertexStream3svATIPROC) lglGetProcAddress("glVertexStream3svATI");
+    glVertexStream3iATI = (glVertexStream3iATIPROC) lglGetProcAddress("glVertexStream3iATI");
+    glVertexStream3ivATI = (glVertexStream3ivATIPROC) lglGetProcAddress("glVertexStream3ivATI");
+    glVertexStream3fATI = (glVertexStream3fATIPROC) lglGetProcAddress("glVertexStream3fATI");
+    glVertexStream3fvATI = (glVertexStream3fvATIPROC) lglGetProcAddress("glVertexStream3fvATI");
+    glVertexStream3dATI = (glVertexStream3dATIPROC) lglGetProcAddress("glVertexStream3dATI");
+    glVertexStream3dvATI = (glVertexStream3dvATIPROC) lglGetProcAddress("glVertexStream3dvATI");
+    glVertexStream4sATI = (glVertexStream4sATIPROC) lglGetProcAddress("glVertexStream4sATI");
+    glVertexStream4svATI = (glVertexStream4svATIPROC) lglGetProcAddress("glVertexStream4svATI");
+    glVertexStream4iATI = (glVertexStream4iATIPROC) lglGetProcAddress("glVertexStream4iATI");
+    glVertexStream4ivATI = (glVertexStream4ivATIPROC) lglGetProcAddress("glVertexStream4ivATI");
+    glVertexStream4fATI = (glVertexStream4fATIPROC) lglGetProcAddress("glVertexStream4fATI");
+    glVertexStream4fvATI = (glVertexStream4fvATIPROC) lglGetProcAddress("glVertexStream4fvATI");
+    glVertexStream4dATI = (glVertexStream4dATIPROC) lglGetProcAddress("glVertexStream4dATI");
+    glVertexStream4dvATI = (glVertexStream4dvATIPROC) lglGetProcAddress("glVertexStream4dvATI");
+    glNormalStream3bATI = (glNormalStream3bATIPROC) lglGetProcAddress("glNormalStream3bATI");
+    glNormalStream3bvATI = (glNormalStream3bvATIPROC) lglGetProcAddress("glNormalStream3bvATI");
+    glNormalStream3sATI = (glNormalStream3sATIPROC) lglGetProcAddress("glNormalStream3sATI");
+    glNormalStream3svATI = (glNormalStream3svATIPROC) lglGetProcAddress("glNormalStream3svATI");
+    glNormalStream3iATI = (glNormalStream3iATIPROC) lglGetProcAddress("glNormalStream3iATI");
+    glNormalStream3ivATI = (glNormalStream3ivATIPROC) lglGetProcAddress("glNormalStream3ivATI");
+    glNormalStream3fATI = (glNormalStream3fATIPROC) lglGetProcAddress("glNormalStream3fATI");
+    glNormalStream3fvATI = (glNormalStream3fvATIPROC) lglGetProcAddress("glNormalStream3fvATI");
+    glNormalStream3dATI = (glNormalStream3dATIPROC) lglGetProcAddress("glNormalStream3dATI");
+    glNormalStream3dvATI = (glNormalStream3dvATIPROC) lglGetProcAddress("glNormalStream3dvATI");
+}
+
+void InitATIElementArray()
+{
+    if (!SupportedExtensions.ATI_element_array)
+        return;
+    glElementPointerATI = (glElementPointerATIPROC) lglGetProcAddress("glElementPointerATI");
+    glDrawElementArrayATI = (glDrawElementArrayATIPROC) lglGetProcAddress("glDrawElementArrayATI");
+    glDrawRangeElementArrayATI = (glDrawRangeElementArrayATIPROC) lglGetProcAddress("glDrawRangeElementArrayATI");
+}
+
+void InitATIFragmentShader()
+{
+    if (!SupportedExtensions.ATI_fragment_shader)
+        return;
+    glGenFragmentShadersATI = (glGenFragmentShadersATIPROC) lglGetProcAddress("glGenFragmentShadersATI");
+    glBindFragmentShaderATI = (glBindFragmentShaderATIPROC) lglGetProcAddress("glBindFragmentShaderATI");
+    glDeleteFragmentShaderATI = (glDeleteFragmentShaderATIPROC) lglGetProcAddress("glDeleteFragmentShaderATI");
+    glBeginFragmentShaderATI = (glBeginFragmentShaderATIPROC) lglGetProcAddress("glBeginFragmentShaderATI");
+    glEndFragmentShaderATI = (glEndFragmentShaderATIPROC) lglGetProcAddress("glEndFragmentShaderATI");
+    glPassTexCoordATI = (glPassTexCoordATIPROC) lglGetProcAddress("glPassTexCoordATI");
+    glSampleMapATI = (glSampleMapATIPROC) lglGetProcAddress("glSampleMapATI");
+    glColorFragmentOp1ATI = (glColorFragmentOp1ATIPROC) lglGetProcAddress("glColorFragmentOp1ATI");
+    glColorFragmentOp2ATI = (glColorFragmentOp2ATIPROC) lglGetProcAddress("glColorFragmentOp2ATI");
+    glColorFragmentOp3ATI = (glColorFragmentOp3ATIPROC) lglGetProcAddress("glColorFragmentOp3ATI");
+    glAlphaFragmentOp1ATI = (glAlphaFragmentOp1ATIPROC) lglGetProcAddress("glAlphaFragmentOp1ATI");
+    glAlphaFragmentOp2ATI = (glAlphaFragmentOp2ATIPROC) lglGetProcAddress("glAlphaFragmentOp2ATI");
+    glAlphaFragmentOp3ATI = (glAlphaFragmentOp3ATIPROC) lglGetProcAddress("glAlphaFragmentOp3ATI");
+    glSetFragmentShaderConstantATI = (glSetFragmentShaderConstantATIPROC) lglGetProcAddress("glSetFragmentShaderConstantATI");
+}
+
+void InitATIEnvmapBumpmap()
+{
+    if (!SupportedExtensions.ATI_envmap_bumpmap)
+        return;
+    glTexBumpParameterivATI = (glTexBumpParameterivATIPROC) lglGetProcAddress("glTexBumpParameterivATI");
+    glTexBumpParameterfvATI = (glTexBumpParameterfvATIPROC) lglGetProcAddress("glTexBumpParameterfvATI");
+    glGetTexBumpParameterivATI = (glGetTexBumpParameterivATIPROC) lglGetProcAddress("glGetTexBumpParameterivATI");
+    glGetTexBumpParameterfvATI = (glGetTexBumpParameterfvATIPROC) lglGetProcAddress("glGetTexBumpParameterfvATI");
+}
+
+void InitEXTVertexShader()
+{
+    if (!SupportedExtensions.EXT_vertex_shader)
+        return;
+    glBeginVertexShaderEXT = (glBeginVertexShaderEXTPROC) lglGetProcAddress("glBeginVertexShaderEXT");
+    glEndVertexShaderEXT = (glEndVertexShaderEXTPROC) lglGetProcAddress("glEndVertexShaderEXT");
+    glBindVertexShaderEXT = (glBindVertexShaderEXTPROC) lglGetProcAddress("glBindVertexShaderEXT");
+    glGenVertexShadersEXT = (glGenVertexShadersEXTPROC) lglGetProcAddress("glGenVertexShadersEXT");
+    glDeleteVertexShaderEXT = (glDeleteVertexShaderEXTPROC) lglGetProcAddress("glDeleteVertexShaderEXT");
+    glShaderOp1EXT = (glShaderOp1EXTPROC) lglGetProcAddress("glShaderOp1EXT");
+    glShaderOp2EXT = (glShaderOp2EXTPROC) lglGetProcAddress("glShaderOp2EXT");
+    glShaderOp3EXT = (glShaderOp3EXTPROC) lglGetProcAddress("glShaderOp3EXT");
+    glSwizzleEXT = (glSwizzleEXTPROC) lglGetProcAddress("glSwizzleEXT");
+    glWriteMaskEXT = (glWriteMaskEXTPROC) lglGetProcAddress("glWriteMaskEXT");
+    glInsertComponentEXT = (glInsertComponentEXTPROC) lglGetProcAddress("glInsertComponentEXT");
+    glExtractComponentEXT = (glExtractComponentEXTPROC) lglGetProcAddress("glExtractComponentEXT");
+    glGenSymbolsEXT = (glGenSymbolsEXTPROC) lglGetProcAddress("glGenSymbolsEXT");
+    glSetInvariantEXT = (glSetInvariantEXTPROC) lglGetProcAddress("glSetInvarianceEXT");
+    glSetLocalConstantEXT = (glSetLocalConstantEXTPROC) lglGetProcAddress("glSetLocalConstantEXT");
+    glVariantbvEXT = (glVariantbvEXTPROC) lglGetProcAddress("glVariantbvEXT");
+    glVariantsvEXT = (glVariantsvEXTPROC) lglGetProcAddress("glVariantsvEXT");
+    glVariantivEXT = (glVariantivEXTPROC) lglGetProcAddress("glVariantivEXT");
+    glVariantfvEXT = (glVariantfvEXTPROC) lglGetProcAddress("glVariantfvEXT");
+    glVariantdvEXT = (glVariantdvEXTPROC) lglGetProcAddress("glVariantdvEXT");
+    glVariantubvEXT = (glVariantubvEXTPROC) lglGetProcAddress("glVariantubvEXT");
+    glVariantusvEXT = (glVariantusvEXTPROC) lglGetProcAddress("glVariantusvEXT");
+    glVariantuivEXT = (glVariantuivEXTPROC) lglGetProcAddress("glVariantuivEXT");
+    glVariantPointerEXT = (glVariantPointerEXTPROC) lglGetProcAddress("glVariantPointerEXT");
+    glEnableVariantClientStateEXT = (glEnableVariantClientStateEXTPROC) lglGetProcAddress("glEnableVariantClientStateEXT");
+    glDisableVariantClientStateEXT = (glDisableVariantClientStateEXTPROC) lglGetProcAddress("glDisableVariantClientStateEXT");
+    glBindLightParameterEXT = (glBindLightParameterEXTPROC) lglGetProcAddress("glBindLightParameterEXT");
+    glBindMaterialParameterEXT = (glBindMaterialParameterEXTPROC) lglGetProcAddress("glBindMaterialParameterEXT");
+    glBindTexGenParameterEXT = (glBindTexGenParameterEXTPROC) lglGetProcAddress("glBindTexGenParameterEXT");
+    glBindTextureUnitParameterEXT = (glBindTextureUnitParameterEXTPROC) lglGetProcAddress("glBindTextureUnitParameterEXT");
+    glBindParameterEXT = (glBindParameterEXTPROC) lglGetProcAddress("glBindParameterEXT");
+    glIsVariantEnabledEXT = (glIsVariantEnabledEXTPROC) lglGetProcAddress("glIsVariantEnabledEXT");
+    glGetVariantBooleanvEXT = (glGetVariantBooleanvEXTPROC) lglGetProcAddress("glGetVariantBooleanvEXT");
+    glGetVariantIntegervEXT = (glGetVariantIntegervEXTPROC) lglGetProcAddress("glGetVariantIntegervEXT");
+    glGetVariantFloatvEXT = (glGetVariantFloatvEXTPROC) lglGetProcAddress("glGetVariantFloatvEXT");
+    glGetVariantPointervEXT = (glGetVariantPointervEXTPROC) lglGetProcAddress("glGetVariantPointervEXT");
+    glGetInvariantBooleanvEXT = (glGetInvariantBooleanvEXTPROC) lglGetProcAddress("glGetInvariantBooleanvEXT");
+    glGetInvariantIntegervEXT = (glGetInvariantIntegervEXTPROC) lglGetProcAddress("glGetInvariantIntegervEXT");
+    glGetInvariantFloatvEXT = (glGetInvariantFloatvEXTPROC) lglGetProcAddress("glGetInvariantFloatvEXT");
+    glGetLocalConstantBooleanvEXT = (glGetLocalConstantBooleanvEXTPROC) lglGetProcAddress("glGetLocalConstantBooleanvEXT");
+    glGetLocalConstantIntegervEXT = (glGetLocalConstantIntegervEXTPROC) lglGetProcAddress("glGetLocalConstantIntegervEXT");
+    glGetLocalConstantFloatvEXT = (glGetLocalConstantFloatvEXTPROC) lglGetProcAddress("glGetLocalConstantFloatvEXT");
+}
+
+void InitARBMatrixPalette()
+{
+    if (!SupportedExtensions.ARB_matrix_palette)
+        return;
+    glCurrentPaletteMatrixARB = (glCurrentPaletteMatrixARBPROC) lglGetProcAddress("glCurrentPaletteMatrixARB");
+    glMatrixIndexubvARB = (glMatrixIndexubvARBPROC) lglGetProcAddress("glMatrixIndexubvARB");
+    glMatrixIndexusvARB = (glMatrixIndexusvARBPROC) lglGetProcAddress("glMatrixIndexusvARB");
+    glMatrixIndexuivARB = (glMatrixIndexuivARBPROC) lglGetProcAddress("glMatrixIndexuivARB");
+    glMatrixIndexPointerARB = (glMatrixIndexPointerARBPROC) lglGetProcAddress("glMatrixIndexPointerARB");
+}
+
+void InitEXTMultiDrawArrays()
+{
+    if (!SupportedExtensions.EXT_multi_draw_arrays)
+        return;
+    glMultiDrawArraysEXT = (glMultiDrawArraysEXTPROC) lglGetProcAddress("glMultiDrawArraysEXT");
+    glMultiDrawElementsEXT = (glMultiDrawElementsEXTPROC) lglGetProcAddress("glMultiDrawElementsEXT");
+}
+
+void InitARBVertexBlend()
+{
+    if (!SupportedExtensions.ARB_vertex_blend)
+        return;
+    glWeightbvARB = (glWeightbvARBPROC) lglGetProcAddress("glWeightbvARB");
+    glWeightsvARB = (glWeightsvARBPROC) lglGetProcAddress("glWeightsvARB");
+    glWeightivARB = (glWeightivARBPROC) lglGetProcAddress("glWeightivARB");
+    glWeightfvARB = (glWeightfvARBPROC) lglGetProcAddress("glWeightfvARB");
+    glWeightdvARB = (glWeightdvARBPROC) lglGetProcAddress("glWeightdvARB");
+    glWeightubvARB = (glWeightubvARBPROC) lglGetProcAddress("glWeightubvARB");
+    glWeightusvARB = (glWeightusvARBPROC) lglGetProcAddress("glWeightusvARB");
+    glWeightuivARB = (glWeightuivARBPROC) lglGetProcAddress("glWeightuivARB");
+    glWeightPointerARB = (glWeightPointerARBPROC) lglGetProcAddress("glWeightPointerARB");
+    glVertexBlendARB = (glVertexBlendARBPROC) lglGetProcAddress("glVertexBlendARB");
+}
+
+void InitARBPointParameters()
+{
+    if (!SupportedExtensions.ARB_point_parameters)
+        return;
+    glPointParameterfARB = (glPointParameterfARBPROC) lglGetProcAddress("glPointParameterfARB");
+    glPointParameterfvARB = (glPointParameterfvARBPROC) lglGetProcAddress("glPointParameterfvARB");
+}
+
+void InitATIPNTriangles()
+{
+    if (!SupportedExtensions.ATI_pn_triangles)
+        return;
+    glPNTrianglesiATI = (glPNTrianglesiATIPROC) lglGetProcAddress("glPNTrianglesiATI");
+    glPNTrianglesfATI = (glPNTrianglesfATIPROC) lglGetProcAddress("glPNTrianglesfATI");
+}
+
+void InitNVEvaluators()
+{
+    if (!SupportedExtensions.NV_evaluators)
+        return;
+    glMapControlPointsNV = (glMapControlPointsNVPROC) lglGetProcAddress("glMapControlPointsNV");
+    glMapParameterivNV = (glMapParameterivNVPROC) lglGetProcAddress("glMapParameterivNV");
+    glMapParameterfvNV = (glMapParameterfvNVPROC) lglGetProcAddress("glMapParameterfvNV");
+    glGetMapControlPointsNV = (glGetMapControlPointsNVPROC) lglGetProcAddress("glGetMapControlPointsNV");
+    glGetMapParameterivNV = (glGetMapParameterivNVPROC) lglGetProcAddress("glGetMapParameterivNV");
+    glGetMapParameterfvNV = (glGetMapParameterfvNVPROC) lglGetProcAddress("glGetMapParameterfvNV");
+    glGetMapAttribParameterivNV = (glGetMapAttribParameterivNVPROC) lglGetProcAddress("glGetMapAttribParameterivNV");
+    glGetMapAttribParameterfvNV = (glGetMapAttribParameterfvNVPROC) lglGetProcAddress("glGetMapAttribParameterfvNV");
+    glEvalMapsNV = (glEvalMapsNVPROC) lglGetProcAddress("glEvalMapsNV");
+}
+
+void InitNVRegisterCombiners2()
+{
+    if (!SupportedExtensions.NV_register_combiners2)
+        return;
+    glCombinerStageParameterfvNV = (glCombinerStageParameterfvNVPROC) lglGetProcAddress("glCombinerStageParameterfvNV");
+    glGetCombinerStageParameterfvNV = (glGetCombinerStageParameterfvNVPROC) lglGetProcAddress("glGetCombinerStageParameterfvNV");
+}
+
+void InitNVFence()
+{
+    if (!SupportedExtensions.NV_fence)
+        return;
+    glGenFencesNV = (glGenFencesNVPROC) lglGetProcAddress("glGenFencesNV");
+    glDeleteFencesNV = (glDeleteFencesNVPROC) lglGetProcAddress("glDeleteFencesNV");
+    glSetFenceNV = (glSetFenceNVPROC) lglGetProcAddress("glSetFenceNV");
+    glTestFenceNV = (glTestFenceNVPROC) lglGetProcAddress("glTestFenceNV");
+    glFinishFenceNV = (glFinishFenceNVPROC) lglGetProcAddress("glFinishFenceNV");
+    glIsFenceNV = (glIsFenceNVPROC) lglGetProcAddress("glIsFenceNV");
+    glGetFenceivNV = (glGetFenceivNVPROC) lglGetProcAddress("glGetFenceivNV");
+}
+
+void InitNVVertexProgram()
+{
+    if (!SupportedExtensions.NV_vertex_program)
+        return;
+    glBindProgramNV = (glBindProgramNVPROC) lglGetProcAddress("glBindProgramNV");
+    glDeleteProgramsNV = (glDeleteProgramsNVPROC) lglGetProcAddress("glDeleteProgramsNV");
+    glExecuteProgramNV = (glExecuteProgramNVPROC) lglGetProcAddress("glExecuteProgramNV");
+    glGenProgramsNV = (glGenProgramsNVPROC) lglGetProcAddress("glGenProgramsNV");
+    glAreProgramsResidentNV = (glAreProgramsResidentNVPROC) lglGetProcAddress("glAreProgramsResidentNV");
+    glRequestResidentProgramsNV = (glRequestResidentProgramsNVPROC) lglGetProcAddress("glRequestResidentProgramsNV");
+    glGetProgramParameterfvNV = (glGetProgramParameterfvNVPROC) lglGetProcAddress("glGetProgramParameterfvNV");
+    glGetProgramParameterdvNV = (glGetProgramParameterdvNVPROC) lglGetProcAddress("glGetProgramParameterdvNV");
+    glGetProgramivNV = (glGetProgramivNVPROC) lglGetProcAddress("glGetProgramivNV");
+    glGetProgramStringNV = (glGetProgramStringNVPROC) lglGetProcAddress("glGetProgramStringNV");
+    glGetTrackMatrixivNV = (glGetTrackMatrixivNVPROC) lglGetProcAddress("glGetTrackMatrixivNV");
+    glGetVertexAttribdvNV = (glGetVertexAttribdvNVPROC) lglGetProcAddress("glGetVertexAttribdvNV");
+    glGetVertexAttribfvNV = (glGetVertexAttribfvNVPROC) lglGetProcAddress("glGetVertexAttribfvNV");
+    glGetVertexAttribivNV = (glGetVertexAttribivNVPROC) lglGetProcAddress("glGetVertexAttribivNV");
+    glGetVertexAttribPointervNV = (glGetVertexAttribPointervNVPROC) lglGetProcAddress("glGetVertexAttribPointervNV");
+    glIsProgramNV = (glIsProgramNVPROC) lglGetProcAddress("glIsProgramNV");
+    glLoadProgramNV = (glLoadProgramNVPROC) lglGetProcAddress("glLoadProgramNV");
+    glProgramParameter4fNV = (glProgramParameter4fNVPROC) lglGetProcAddress("glProgramParameter4fNV");
+    glProgramParameter4dNV = (glProgramParameter4dNVPROC) lglGetProcAddress("glProgramParameter4dNV");
+    glProgramParameter4dvNV = (glProgramParameter4dvNVPROC) lglGetProcAddress("glProgramParameter4dvNV");
+    glProgramParameter4fvNV = (glProgramParameter4fvNVPROC) lglGetProcAddress("glProgramParameter4fvNV");
+    glProgramParameters4dvNV = (glProgramParameters4dvNVPROC) lglGetProcAddress("glProgramParameters4dvNV");
+    glProgramParameters4fvNV = (glProgramParameters4fvNVPROC) lglGetProcAddress("glProgramParameters4fvNV");
+    glTrackMatrixNV = (glTrackMatrixNVPROC) lglGetProcAddress("glTrackMatrixNV");
+    glVertexAttribPointerNV = (glVertexAttribPointerNVPROC) lglGetProcAddress("glVertexAttribPointerNV");
+    glVertexAttrib1sNV = (glVertexAttrib1sNVPROC) lglGetProcAddress("glVertexAttrib1sNV");
+    glVertexAttrib1fNV = (glVertexAttrib1fNVPROC) lglGetProcAddress("glVertexAttrib1fNV");
+    glVertexAttrib1dNV = (glVertexAttrib1dNVPROC) lglGetProcAddress("glVertexAttrib1dNV");
+    glVertexAttrib2sNV = (glVertexAttrib2sNVPROC) lglGetProcAddress("glVertexAttrib2sNV");
+    glVertexAttrib2fNV = (glVertexAttrib2fNVPROC) lglGetProcAddress("glVertexAttrib2fNV");
+    glVertexAttrib2dNV = (glVertexAttrib2dNVPROC) lglGetProcAddress("glVertexAttrib2dNV");
+    glVertexAttrib3sNV = (glVertexAttrib3sNVPROC) lglGetProcAddress("glVertexAttrib3sNV");
+    glVertexAttrib3fNV = (glVertexAttrib3fNVPROC) lglGetProcAddress("glVertexAttrib3fNV");
+    glVertexAttrib3dNV = (glVertexAttrib3dNVPROC) lglGetProcAddress("glVertexAttrib3dNV");
+    glVertexAttrib4sNV = (glVertexAttrib4sNVPROC) lglGetProcAddress("glVertexAttrib4sNV");
+    glVertexAttrib4fNV = (glVertexAttrib4fNVPROC) lglGetProcAddress("glVertexAttrib4fNV");
+    glVertexAttrib4dNV = (glVertexAttrib4dNVPROC) lglGetProcAddress("glVertexAttrib4dNV");
+    glVertexAttrib4ubNV = (glVertexAttrib4ubNVPROC) lglGetProcAddress("glVertexAttrib4ubNV");
+    glVertexAttrib1svNV = (glVertexAttrib1svNVPROC) lglGetProcAddress("glVertexAttrib1svNV");
+    glVertexAttrib1fvNV = (glVertexAttrib1fvNVPROC) lglGetProcAddress("glVertexAttrib1fvNV");
+    glVertexAttrib1dvNV = (glVertexAttrib1dvNVPROC) lglGetProcAddress("glVertexAttrib1dvNV");
+    glVertexAttrib2svNV = (glVertexAttrib2svNVPROC) lglGetProcAddress("glVertexAttrib2svNV");
+    glVertexAttrib2fvNV = (glVertexAttrib2fvNVPROC) lglGetProcAddress("glVertexAttrib2fvNV");
+    glVertexAttrib2dvNV = (glVertexAttrib2dvNVPROC) lglGetProcAddress("glVertexAttrib2dvNV");
+    glVertexAttrib3svNV = (glVertexAttrib3svNVPROC) lglGetProcAddress("glVertexAttrib3svNV");
+    glVertexAttrib3fvNV = (glVertexAttrib3fvNVPROC) lglGetProcAddress("glVertexAttrib3fvNV");
+    glVertexAttrib3dvNV = (glVertexAttrib3dvNVPROC) lglGetProcAddress("glVertexAttrib3dvNV");
+    glVertexAttrib4svNV = (glVertexAttrib4svNVPROC) lglGetProcAddress("glVertexAttrib4svNV");
+    glVertexAttrib4fvNV = (glVertexAttrib4fvNVPROC) lglGetProcAddress("glVertexAttrib4fvNV");
+    glVertexAttrib4dvNV = (glVertexAttrib4dvNVPROC) lglGetProcAddress("glVertexAttrib4dvNV");
+    glVertexAttrib4ubvNV = (glVertexAttrib4ubvNVPROC) lglGetProcAddress("glVertexAttrib4ubvNV");
+    glVertexAttribs1svNV = (glVertexAttribs1svNVPROC) lglGetProcAddress("glVertexAttribs1svNV");
+    glVertexAttribs1fvNV = (glVertexAttribs1fvNVPROC) lglGetProcAddress("glVertexAttribs1fvNV");
+    glVertexAttribs1dvNV = (glVertexAttribs1dvNVPROC) lglGetProcAddress("glVertexAttribs1dvNV");
+    glVertexAttribs2svNV = (glVertexAttribs2svNVPROC) lglGetProcAddress("glVertexAttribs2svNV");
+    glVertexAttribs2fvNV = (glVertexAttribs2fvNVPROC) lglGetProcAddress("glVertexAttribs2fvNV");
+    glVertexAttribs2dvNV = (glVertexAttribs2dvNVPROC) lglGetProcAddress("glVertexAttribs2dvNV");
+    glVertexAttribs3svNV = (glVertexAttribs3svNVPROC) lglGetProcAddress("glVertexAttribs3svNV");
+    glVertexAttribs3fvNV = (glVertexAttribs3fvNVPROC) lglGetProcAddress("glVertexAttribs3fvNV");
+    glVertexAttribs3dvNV = (glVertexAttribs3dvNVPROC) lglGetProcAddress("glVertexAttribs3dvNV");
+    glVertexAttribs4svNV = (glVertexAttribs4svNVPROC) lglGetProcAddress("glVertexAttribs4svNV");
+    glVertexAttribs4fvNV = (glVertexAttribs4fvNVPROC) lglGetProcAddress("glVertexAttribs4fvNV");
+    glVertexAttribs4dvNV = (glVertexAttribs4dvNVPROC) lglGetProcAddress("glVertexAttribs4dvNV");
+    glVertexAttribs4ubvNV = (glVertexAttribs4ubvNVPROC) lglGetProcAddress("glVertexAttribs4ubvNV");
+}
+
+void InitEXTVertexWeighting()
+{
+    if (!SupportedExtensions.EXT_vertex_weighting)
+        return;
+    glVertexWeightfEXT = (glVertexWeightfEXTPROC) lglGetProcAddress("glVertexWeightfEXT");
+    glVertexWeightfvEXT = (glVertexWeightfvEXTPROC) lglGetProcAddress("glVertexWeightfvEXT");
+    glVertexWeightPointerEXT = (glVertexWeightPointerEXTPROC) lglGetProcAddress("glVertexWeightPointerEXT");
+}
+
+void InitARBMultisample()
+{
+    if (!SupportedExtensions.ARB_multisample)
+        return;
+    glSampleCoverageARB = (glSampleCoveragePROC) lglGetProcAddress("glSampleCoverageARB");
+}
+
+void InitNVRegisterCombiners()
+{
+    if (!SupportedExtensions.NV_register_combiners)
+        return;
+    glCombinerParameterfvNV = (glCombinerParameterfvNVPROC) lglGetProcAddress("glCombinerParameterfvNV");
+    glCombinerParameterfNV = (glCombinerParameterfNVPROC) lglGetProcAddress("glCombinerParameterfNV");
+    glCombinerParameterivNV = (glCombinerParameterivNVPROC) lglGetProcAddress("glCombinerParameterivNV");
+    glCombinerParameteriNV = (glCombinerParameteriNVPROC) lglGetProcAddress("glCombinerParameteriNV");
+    glCombinerInputNV = (glCombinerInputNVPROC) lglGetProcAddress("glCombinerInputNV");
+    glCombinerOutputNV = (glCombinerOutputNVPROC) lglGetProcAddress("glCombinerOutputNV");
+    glFinalCombinerInputNV = (glFinalCombinerInputNVPROC) lglGetProcAddress("glFinalCombinerInputNV");
+    glGetCombinerInputParameterfvNV = (glGetCombinerInputParameterfvNVPROC) lglGetProcAddress("glGetCombinerInputParameterfvNV");
+    glGetCombinerInputParameterivNV = (glGetCombinerInputParameterivNVPROC) lglGetProcAddress("glGetCombinerInputParameterivNV");
+    glGetCombinerOutputParameterfvNV = (glGetCombinerOutputParameterfvNVPROC) lglGetProcAddress("glGetCombinerOutputParameterfvNV");
+    glGetCombinerOutputParameterivNV = (glGetCombinerOutputParameterivNVPROC) lglGetProcAddress("glGetCombinerOutputParameterivNV");
+    glGetFinalCombinerInputParameterfvNV = (glGetFinalCombinerInputParameterfvNVPROC) lglGetProcAddress("glGetFinalCombinerInputParameterfvNV");
+    glGetFinalCombinerInputParameterivNV = (glGetFinalCombinerInputParameterivNVPROC) lglGetProcAddress("glGetFinalCombinerInputParameterivNV");
+}
+
+void InitEXTPointParameters()
+{
+    if (!SupportedExtensions.EXT_point_parameters)
+        return;
+    glPointParameterfEXT = (glPointParameterfEXTPROC) lglGetProcAddress("glPointParameterfEXT");
+    glPointParameterfvEXT = (glPointParameterfvEXTPROC) lglGetProcAddress("glPointParameterfvEXT");
+}
+
+void InitNVVertexArrayRange()
+{
+    if (!SupportedExtensions.NV_vertex_array_range)
+        return;
+    glFlushVertexArrayRangeNV = (glFlushVertexArrayRangeNVPROC) lglGetProcAddress("glFlushVertexArrayRangeNV");
+    glVertexArrayRangeNV = (glVertexArrayRangeNVPROC) lglGetProcAddress("glVertexArrayRangeNV");
+#ifdef WIN32
+    wglAllocateMemoryNV = (wglAllocateMemoryNVPROC) lglGetProcAddress("wglAllocateMemoryNV");
+    wglFreeMemoryNV = (wglFreeMemoryNVPROC) lglGetProcAddress("wglFreeMemoryNV");
+#endif /* WIN32 */
+}
+void InitEXTFogCoord()
+{
+    if (!SupportedExtensions.EXT_fog_coord)
+        return;
+    glFogCoordfEXT = (glFogCoordfEXTPROC) lglGetProcAddress("glFogCoordfEXT");
+    glFogCoordfvEXT = (glFogCoordfvEXTPROC) lglGetProcAddress("glFogCoordfvEXT");
+    glFogCoorddEXT = (glFogCoorddEXTPROC) lglGetProcAddress("glFogCoorddEXT");
+    glFogCoorddvEXT = (glFogCoorddvEXTPROC) lglGetProcAddress("glFogCoorddvEXT");
+    glFogCoordPointerEXT = (glFogCoordPointerEXTPROC) lglGetProcAddress("glFogCoordPointerEXT");
+}
+
+void InitEXTSecondaryColor()
+{
+    if (!SupportedExtensions.EXT_secondary_color)
+        return;
+    glSecondaryColor3bEXT = (glSecondaryColor3bEXTPROC) lglGetProcAddress("glSecondaryColor3bEXT");
+    glSecondaryColor3bvEXT = (glSecondaryColor3bvEXTPROC) lglGetProcAddress("glSecondaryColor3bvEXT");
+    glSecondaryColor3dEXT = (glSecondaryColor3dEXTPROC) lglGetProcAddress("glSecondaryColor3dEXT");
+    glSecondaryColor3dvEXT = (glSecondaryColor3dvEXTPROC) lglGetProcAddress("glSecondaryColor3dvEXT");
+    glSecondaryColor3fEXT = (glSecondaryColor3fEXTPROC) lglGetProcAddress("glSecondaryColor3fEXT");
+    glSecondaryColor3fvEXT = (glSecondaryColor3fvEXTPROC) lglGetProcAddress("glSecondaryColor3fvEXT");
+    glSecondaryColor3iEXT = (glSecondaryColor3iEXTPROC) lglGetProcAddress("glSecondaryColor3iEXT");
+    glSecondaryColor3ivEXT = (glSecondaryColor3ivEXTPROC) lglGetProcAddress("glSecondaryColor3ivEXT");
+    glSecondaryColor3sEXT = (glSecondaryColor3sEXTPROC) lglGetProcAddress("glSecondaryColor3sEXT");
+    glSecondaryColor3svEXT = (glSecondaryColor3svEXTPROC) lglGetProcAddress("glSecondaryColor3svEXT");
+    glSecondaryColor3ubEXT = (glSecondaryColor3ubEXTPROC) lglGetProcAddress("glSecondaryColor3ubEXT");
+    glSecondaryColor3ubvEXT = (glSecondaryColor3ubvEXTPROC) lglGetProcAddress("glSecondaryColor3ubvEXT");
+    glSecondaryColor3uiEXT = (glSecondaryColor3uiEXTPROC) lglGetProcAddress("glSecondaryColor3uiEXT");
+    glSecondaryColor3uivEXT = (glSecondaryColor3uivEXTPROC) lglGetProcAddress("glSecondaryColor3uivEXT");
+    glSecondaryColor3usEXT = (glSecondaryColor3usEXTPROC) lglGetProcAddress("glSecondaryColor3usEXT");
+    glSecondaryColor3usvEXT = (glSecondaryColor3usvEXTPROC) lglGetProcAddress("glSecondaryColor3usvEXT");
+    glSecondaryColorPointerEXT = (glSecondaryColorPointerEXTPROC) lglGetProcAddress("glSecondaryColorPointerEXT");
+}
+
+void InitEXTCompiledVertexArray()
+{
+    if (!SupportedExtensions.EXT_compiled_vertex_array)
+        return;
+    glLockArraysEXT = (glLockArraysEXTPROC) lglGetProcAddress("glLockArraysEXT");
+    glUnlockArraysEXT = (glUnlockArraysEXTPROC) lglGetProcAddress("glUnlockArraysEXT");
+}
+
+void InitARBTransposeMatrix()
+{
+    if (!SupportedExtensions.ARB_transpose_matrix)
+        return;
+    glLoadTransposeMatrixfARB = (glLoadTransposeMatrixfPROC) lglGetProcAddress("glLoadTransposeMatrixfARB");
+    glLoadTransposeMatrixdARB = (glLoadTransposeMatrixdPROC) lglGetProcAddress("glLoadTransposeMatrixdARB");
+    glMultTransposeMatrixfARB = (glMultTransposeMatrixfPROC) lglGetProcAddress("glMultTransposeMatrixfARB");
+    glMultTransposeMatrixdARB = (glMultTransposeMatrixdPROC) lglGetProcAddress("glMultTransposeMatrixdARB");
+}
+
+void InitARBMultitexture()
+{
+    if (!SupportedExtensions.ARB_multitexture)
+        return;
+#ifdef WIN32
+    glActiveTextureARB = (glActiveTexturePROC) lglGetProcAddress("glActiveTextureARB");
+    glClientActiveTextureARB = (glClientActiveTexturePROC) lglGetProcAddress("glClientActiveTextureARB");
+
+    glMultiTexCoord1dARB = (glMultiTexCoord1dPROC) lglGetProcAddress("glMultiTexCoord1dARB");
+    glMultiTexCoord1dvARB = (glMultiTexCoord1dvPROC) lglGetProcAddress("glMultiTexCoord1dvARB");
+    glMultiTexCoord1fARB = (glMultiTexCoord1fPROC) lglGetProcAddress("glMultiTexCoord1fARB");
+    glMultiTexCoord1fvARB = (glMultiTexCoord1fvPROC) lglGetProcAddress("glMultiTexCoord1fvARB");
+    glMultiTexCoord1iARB = (glMultiTexCoord1iPROC) lglGetProcAddress("glMultiTexCoord1iARB");
+    glMultiTexCoord1ivARB = (glMultiTexCoord1ivPROC) lglGetProcAddress("glMultiTexCoord1ivARB");
+    glMultiTexCoord1sARB = (glMultiTexCoord1sPROC) lglGetProcAddress("glMultiTexCoord1sARB");
+    glMultiTexCoord1svARB = (glMultiTexCoord1svPROC) lglGetProcAddress("glMultiTexCoord1svARB");
+
+    glMultiTexCoord2dARB = (glMultiTexCoord2dPROC) lglGetProcAddress("glMultiTexCoord2dARB");
+    glMultiTexCoord2dvARB = (glMultiTexCoord2dvPROC) lglGetProcAddress("glMultiTexCoord2dvARB");
+    glMultiTexCoord2fARB = (glMultiTexCoord2fPROC) lglGetProcAddress("glMultiTexCoord2fARB");
+    glMultiTexCoord2fvARB = (glMultiTexCoord2fvPROC) lglGetProcAddress("glMultiTexCoord2fvARB");
+    glMultiTexCoord2iARB = (glMultiTexCoord2iPROC) lglGetProcAddress("glMultiTexCoord2iARB");
+    glMultiTexCoord2ivARB = (glMultiTexCoord2ivPROC) lglGetProcAddress("glMultiTexCoord2ivARB");
+    glMultiTexCoord2sARB = (glMultiTexCoord2sPROC) lglGetProcAddress("glMultiTexCoord2sARB");
+    glMultiTexCoord2svARB = (glMultiTexCoord2svPROC) lglGetProcAddress("glMultiTexCoord2svARB");
+
+    glMultiTexCoord3dARB = (glMultiTexCoord3dPROC) lglGetProcAddress("glMultiTexCoord3dARB");
+    glMultiTexCoord3dvARB = (glMultiTexCoord3dvPROC) lglGetProcAddress("glMultiTexCoord3dvARB");
+    glMultiTexCoord3fARB = (glMultiTexCoord3fPROC) lglGetProcAddress("glMultiTexCoord3fARB");
+    glMultiTexCoord3fvARB = (glMultiTexCoord3fvPROC) lglGetProcAddress("glMultiTexCoord3fvARB");
+    glMultiTexCoord3iARB = (glMultiTexCoord3iPROC) lglGetProcAddress("glMultiTexCoord3iARB");
+    glMultiTexCoord3ivARB = (glMultiTexCoord3ivPROC) lglGetProcAddress("glMultiTexCoord3ivARB");
+    glMultiTexCoord3sARB = (glMultiTexCoord3sPROC) lglGetProcAddress("glMultiTexCoord3sARB");
+    glMultiTexCoord3svARB = (glMultiTexCoord3svPROC) lglGetProcAddress("glMultiTexCoord3svARB");
+
+    glMultiTexCoord4dARB = (glMultiTexCoord4dPROC) lglGetProcAddress("glMultiTexCoord4dARB");
+    glMultiTexCoord4dvARB = (glMultiTexCoord4dvPROC) lglGetProcAddress("glMultiTexCoord4dvARB");
+    glMultiTexCoord4fARB = (glMultiTexCoord4fPROC) lglGetProcAddress("glMultiTexCoord4fARB");
+    glMultiTexCoord4fvARB = (glMultiTexCoord4fvPROC) lglGetProcAddress("glMultiTexCoord4fvARB");
+    glMultiTexCoord4iARB = (glMultiTexCoord4iPROC) lglGetProcAddress("glMultiTexCoord4iARB");
+    glMultiTexCoord4ivARB = (glMultiTexCoord4ivPROC) lglGetProcAddress("glMultiTexCoord4ivARB");
+    glMultiTexCoord4sARB = (glMultiTexCoord4sPROC) lglGetProcAddress("glMultiTexCoord4sARB");
+    glMultiTexCoord4svARB = (glMultiTexCoord4svPROC) lglGetProcAddress("glMultiTexCoord4svARB");
+#endif 
+}
+
+void InitOpenGL1_2()
+{
+    char *s = (char*) glGetString(GL_VERSION);
+    if (!s)
+        return;
+    s = strstr(s, "1.");
+    if (s == NULL) return;
+    if (s[2] < '2') return;
+#ifdef WIN32
+    glTexImage3D = (glTexImage3DPROC) lglGetProcAddress("glTexImage3D");
+    glTexSubImage3D = (glTexSubImage3DPROC) lglGetProcAddress("glTexSubImage3D");
+    glCopyTexSubImage3D = (glCopyTexSubImage3DPROC) lglGetProcAddress("glCopyTexSubImage3D");
+    glDrawRangeElements = (glDrawRangeElementsPROC) lglGetProcAddress("glDrawRangeElements");
+#endif
+}
+
+void InitARBImaging()
+{
+    if (!SupportedExtensions.ARB_imaging)
+        return;
+    glBlendColor = (glBlendColorPROC) lglGetProcAddress("glBlendColor");
+    glBlendEquation = (glBlendEquationPROC) lglGetProcAddress("glBlendEquation");
+    glColorTable = (glColorTablePROC) lglGetProcAddress("glColorTable");
+    glColorTableParameterfv = (glColorTableParameterfvPROC) lglGetProcAddress("glColorTableParameterfv");
+    glColorTableParameteriv = (glColorTableParameterivPROC) lglGetProcAddress("glColorTableParameteriv");
+    glCopyColorTable = (glCopyColorTablePROC) lglGetProcAddress("glCopyColorTable");
+    glGetColorTable = (glGetColorTablePROC) lglGetProcAddress("glGetColorTable");
+    glGetColorTableParameterfv = (glGetColorTableParameterfvPROC) lglGetProcAddress("glGetColorTableParameterfv");
+    glGetColorTableParameteriv = (glGetColorTableParameterivPROC) lglGetProcAddress("glGetColorTableParameteriv");
+    glColorSubTable = (glColorSubTablePROC) lglGetProcAddress("glColorSubTable");
+    glCopyColorSubTable = (glCopyColorSubTablePROC) lglGetProcAddress("glCopyColorSubTable");
+    glConvolutionFilter1D = (glConvolutionFilter1DPROC) lglGetProcAddress("glConvolutionFilter1D");
+    glConvolutionFilter2D = (glConvolutionFilter2DPROC) lglGetProcAddress("glConvolutionFilter2D");
+    glConvolutionParameterf = (glConvolutionParameterfPROC) lglGetProcAddress("glConvolutionParameterf");
+    glConvolutionParameterfv = (glConvolutionParameterfvPROC) lglGetProcAddress("glConvolutionParameterfv");
+    glConvolutionParameteri = (glConvolutionParameteriPROC) lglGetProcAddress("glConvolutionParameteri");
+    glConvolutionParameteriv = (glConvolutionParameterivPROC) lglGetProcAddress("glConvolutionParameteriv");
+    glCopyConvolutionFilter1D = (glCopyConvolutionFilter1DPROC) lglGetProcAddress("glCopyConvolutionFilter1D");
+    glCopyConvolutionFilter2D = (glCopyConvolutionFilter2DPROC) lglGetProcAddress("glCopyConvolutionFilter2D");
+    glGetConvolutionFilter = (glGetConvolutionFilterPROC) lglGetProcAddress("glGetConvolutionFilter");
+    glGetConvolutionParameterfv = (glGetConvolutionParameterfvPROC) lglGetProcAddress("glGetConvolutionParameterfv");
+    glGetConvolutionParameteriv = (glGetConvolutionParameterivPROC) lglGetProcAddress("glGetConvolutionParameteriv");
+    glGetSeparableFilter = (glGetSeparableFilterPROC) lglGetProcAddress("glGetSeparableFilter");
+    glSeparableFilter2D = (glSeparableFilter2DPROC) lglGetProcAddress("glSeparableFilter2D");
+    glGetHistogram = (glGetHistogramPROC) lglGetProcAddress("glGetHistogram");
+    glGetHistogramParameterfv = (glGetHistogramParameterfvPROC) lglGetProcAddress("glGetHistogramParameterfv");
+    glGetHistogramParameteriv = (glGetHistogramParameterivPROC) lglGetProcAddress("glGetHistogramParameteriv");
+    glGetMinmax = (glGetMinmaxPROC) lglGetProcAddress("glGetMinmax");
+    glGetMinmaxParameterfv = (glGetMinmaxParameterfvPROC) lglGetProcAddress("glGetMinmaxParameterfv");
+    glGetMinmaxParameteriv = (glGetMinmaxParameterivPROC) lglGetProcAddress("glGetMinmaxParameteriv");
+    glHistogram = (glHistogramPROC) lglGetProcAddress("glHistogram");
+    glMinmax = (glMinmaxPROC) lglGetProcAddress("glMinmax");
+    glResetHistogram = (glResetHistogramPROC) lglGetProcAddress("glResetHistogram");
+    glResetMinmax = (glResetMinmaxPROC) lglGetProcAddress("glResetMinmax");
+}
+
+void InitOpenGL1_3()
+{
+    char *s = (char*) glGetString(GL_VERSION);
+    if (!s) return;
+    s = strstr(s, "1.");
+    if (s == NULL) return;
+    if (s[2] < '3') return;
+#ifdef WIN32    
+    glActiveTexture = (glActiveTexturePROC) lglGetProcAddress("glActiveTexture");
+    glClientActiveTexture = (glClientActiveTexturePROC) lglGetProcAddress("glClientActiveTexture");
+
+    glMultiTexCoord1d = (glMultiTexCoord1dPROC) lglGetProcAddress("glMultiTexCoord1d");
+    glMultiTexCoord1dv = (glMultiTexCoord1dvPROC) lglGetProcAddress("glMultiTexCoord1dv");
+    glMultiTexCoord1f = (glMultiTexCoord1fPROC) lglGetProcAddress("glMultiTexCoord1f");
+    glMultiTexCoord1fv = (glMultiTexCoord1fvPROC) lglGetProcAddress("glMultiTexCoord1fv");
+    glMultiTexCoord1i = (glMultiTexCoord1iPROC) lglGetProcAddress("glMultiTexCoord1i");
+    glMultiTexCoord1iv = (glMultiTexCoord1ivPROC) lglGetProcAddress("glMultiTexCoord1iv");
+    glMultiTexCoord1s = (glMultiTexCoord1sPROC) lglGetProcAddress("glMultiTexCoord1s");
+    glMultiTexCoord1sv = (glMultiTexCoord1svPROC) lglGetProcAddress("glMultiTexCoord1sv");
+
+    glMultiTexCoord2d = (glMultiTexCoord2dPROC) lglGetProcAddress("glMultiTexCoord2d");
+    glMultiTexCoord2dv = (glMultiTexCoord2dvPROC) lglGetProcAddress("glMultiTexCoord2dv");
+    glMultiTexCoord2f = (glMultiTexCoord2fPROC) lglGetProcAddress("glMultiTexCoord2f");
+    glMultiTexCoord2fv = (glMultiTexCoord2fvPROC) lglGetProcAddress("glMultiTexCoord2fv");
+    glMultiTexCoord2i = (glMultiTexCoord2iPROC) lglGetProcAddress("glMultiTexCoord2i");
+    glMultiTexCoord2iv = (glMultiTexCoord2ivPROC) lglGetProcAddress("glMultiTexCoord2iv");
+    glMultiTexCoord2s = (glMultiTexCoord2sPROC) lglGetProcAddress("glMultiTexCoord2s");
+    glMultiTexCoord2sv = (glMultiTexCoord2svPROC) lglGetProcAddress("glMultiTexCoord2sv");
+
+    glMultiTexCoord3d = (glMultiTexCoord3dPROC) lglGetProcAddress("glMultiTexCoord3d");
+    glMultiTexCoord3dv = (glMultiTexCoord3dvPROC) lglGetProcAddress("glMultiTexCoord3dv");
+    glMultiTexCoord3f = (glMultiTexCoord3fPROC) lglGetProcAddress("glMultiTexCoord3f");
+    glMultiTexCoord3fv = (glMultiTexCoord3fvPROC) lglGetProcAddress("glMultiTexCoord3fv");
+    glMultiTexCoord3i = (glMultiTexCoord3iPROC) lglGetProcAddress("glMultiTexCoord3i");
+    glMultiTexCoord3iv = (glMultiTexCoord3ivPROC) lglGetProcAddress("glMultiTexCoord3iv");
+    glMultiTexCoord3s = (glMultiTexCoord3sPROC) lglGetProcAddress("glMultiTexCoord3s");
+    glMultiTexCoord3sv = (glMultiTexCoord3svPROC) lglGetProcAddress("glMultiTexCoord3sv");
+
+    glMultiTexCoord4d = (glMultiTexCoord4dPROC) lglGetProcAddress("glMultiTexCoord4d");
+    glMultiTexCoord4dv = (glMultiTexCoord4dvPROC) lglGetProcAddress("glMultiTexCoord4dv");
+    glMultiTexCoord4f = (glMultiTexCoord4fPROC) lglGetProcAddress("glMultiTexCoord4f");
+    glMultiTexCoord4fv = (glMultiTexCoord4fvPROC) lglGetProcAddress("glMultiTexCoord4fv");
+    glMultiTexCoord4i = (glMultiTexCoord4iPROC) lglGetProcAddress("glMultiTexCoord4i");
+    glMultiTexCoord4iv = (glMultiTexCoord4ivPROC) lglGetProcAddress("glMultiTexCoord4iv");
+    glMultiTexCoord4s = (glMultiTexCoord4sPROC) lglGetProcAddress("glMultiTexCoord4s");
+    glMultiTexCoord4sv = (glMultiTexCoord4svPROC) lglGetProcAddress("glMultiTexCoord4sv");
+
+    glLoadTransposeMatrixf = (glLoadTransposeMatrixfPROC) lglGetProcAddress("glLoadTransposeMatrixf");
+    glLoadTransposeMatrixd = (glLoadTransposeMatrixdPROC) lglGetProcAddress("glLoadTransposeMatrixd");
+    glMultTransposeMatrixf = (glMultTransposeMatrixfPROC) lglGetProcAddress("glMultTransposeMatrixf");
+    glMultTransposeMatrixd = (glMultTransposeMatrixdPROC) lglGetProcAddress("glMultTransposeMatrixd");
+    glCompressedTexImage3D = (glCompressedTexImage3DPROC) lglGetProcAddress("glCompressedTexImage3D");
+    glCompressedTexImage2D = (glCompressedTexImage2DPROC) lglGetProcAddress("glCompressedTexImage2D");
+    glCompressedTexImage1D = (glCompressedTexImage1DPROC) lglGetProcAddress("glCompressedTexImage1D");
+    glCompressedTexSubImage3D = (glCompressedTexSubImage3DPROC) lglGetProcAddress("glCompressedTexSubImage3D");
+    glCompressedTexSubImage2D = (glCompressedTexSubImage2DPROC) lglGetProcAddress("glCompressedTexSubImage2D");
+    glCompressedTexSubImage1D = (glCompressedTexSubImage1DPROC) lglGetProcAddress("glCompressedTexSubImage1D");
+    glGetCompressedTexImage = (glGetCompressedTexImagePROC) lglGetProcAddress("glGetCompressedTexImage");
+
+    glSampleCoverage = (glSampleCoveragePROC) lglGetProcAddress("glSampleCoverage");
+#endif
+}
+
+#endif /* __PROTOTYPE__ */
+
+void InitSupportedExtensions()
+{
+    char *s = (char*) glGetString(GL_VERSION);
+    if (!s)
+        return;
+    s = strstr(s, "1.");
+    if (s == NULL)
+    {
+        SupportedExtensions.OpenGL12 = 0;    
+        SupportedExtensions.OpenGL13 = 0;    
+    }
+    if (s[2] < '2')
+    {
+        SupportedExtensions.OpenGL12 = 0;    
+        SupportedExtensions.OpenGL13 = 0;    
+    }
+    if (s[2] <= '2')
+    {
+        SupportedExtensions.OpenGL12 = 1;    
+        SupportedExtensions.OpenGL13 = 0;    
+    }
+    if (s[2] <= '3')
+    {
+        SupportedExtensions.OpenGL12 = 1;    
+        SupportedExtensions.OpenGL13 = 1;    
+    }
+    SupportedExtensions.ARB_imaging = QueryExtension("GL_ARB_imaging");
+    SupportedExtensions.ARB_matrix_palette = QueryExtension("GL_ARB_matrix_palette");
+    SupportedExtensions.ARB_multisample = QueryExtension("GL_ARB_multisample");
+    SupportedExtensions.ARB_multitexture = QueryExtension("GL_ARB_multitexture");
+    SupportedExtensions.ARB_point_parameters = QueryExtension("GL_ARB_point_parameters");
+    SupportedExtensions.ARB_texture_border_clamp = QueryExtension("GL_ARB_texture_border_clamp");
+    SupportedExtensions.ARB_texture_compression = QueryExtension("GL_ARB_texture_compression");
+    SupportedExtensions.ARB_texture_cube_map = QueryExtension("GL_ARB_texture_cube_map");
+    SupportedExtensions.ARB_texture_env_add = QueryExtension("GL_ARB_texture_env_add");
+    SupportedExtensions.ARB_texture_env_combine = QueryExtension("GL_ARB_texture_env_combine");
+    SupportedExtensions.ARB_texture_env_crossbar = QueryExtension("GL_ARB_texture_env_crossbar");
+    SupportedExtensions.ARB_texture_env_dot3 = QueryExtension("GL_ARB_texture_env_dot3");
+    SupportedExtensions.ARB_transpose_matrix = QueryExtension("GL_ARB_transpose_matrix");
+    SupportedExtensions.ARB_vertex_blend = QueryExtension("GL_ARB_vertex_blend");
+    SupportedExtensions.ATI_element_array = QueryExtension("GL_ATI_element_array");
+    SupportedExtensions.ATI_envmap_bumpmap = QueryExtension("GL_ATI_envmap_bumpmap");
+    SupportedExtensions.ATI_fragment_shader = QueryExtension("GL_ATI_fragment_shader");
+    SupportedExtensions.ATI_pn_triangles = QueryExtension("GL_ATI_pn_triangles");
+    SupportedExtensions.ATI_texture_mirror_once = QueryExtension("GL_ATI_texture_mirror_once");
+    SupportedExtensions.ATI_vertex_array_object = QueryExtension("GL_ATI_vertex_array_object");
+    SupportedExtensions.ATI_vertex_streams = QueryExtension("GL_ATI_vertex_streams");
+    SupportedExtensions.ATIX_point_sprites = QueryExtension("GL_ATIX_point_sprites");
+    SupportedExtensions.ATIX_texture_env_route = QueryExtension("GL_ATIX_texture_env_route");
+    SupportedExtensions.EXT_abgr = QueryExtension("GL_EXT_abgr");
+    SupportedExtensions.EXT_compiled_vertex_array = QueryExtension("GL_EXT_compiled_vertex_array");
+    SupportedExtensions.EXT_fog_coord = QueryExtension("GL_EXT_fog_coord");
+    SupportedExtensions.EXT_multi_draw_arrays = QueryExtension("GL_EXT_multi_draw_arrays");
+    SupportedExtensions.EXT_point_parameters = QueryExtension("GL_EXT_point_parameters");
+    SupportedExtensions.EXT_secondary_color = QueryExtension("GL_EXT_secondary_color");
+    SupportedExtensions.EXT_stencil_wrap = QueryExtension("GL_EXT_stencil_wrap");
+    SupportedExtensions.EXT_texture_filter_anisotropic = QueryExtension("GL_EXT_texture_filter_anisotropic");
+    SupportedExtensions.EXT_texture_lod_bias = QueryExtension("GL_EXT_texture_lod_bias");
+    SupportedExtensions.EXT_vertex_shader = QueryExtension("GL_EXT_vertex_shader");
+    SupportedExtensions.EXT_vertex_weighting = QueryExtension("GL_EXT_vertex_weighting");
+    SupportedExtensions.HP_occlusion_test = QueryExtension("GL_HP_occlusion_test");
+    SupportedExtensions.NV_blend_square = QueryExtension("GL_NV_blend_square");
+    SupportedExtensions.NV_copy_depth_to_color = QueryExtension("GL_NV_copy_depth_to_color");
+    SupportedExtensions.NV_depth_clamp = QueryExtension("GL_NV_depth_clamp");
+    SupportedExtensions.NV_evaluators = QueryExtension("GL_NV_evaluators");
+    SupportedExtensions.NV_fence = QueryExtension("GL_NV_fence");
+    SupportedExtensions.NV_fog_distance = QueryExtension("GL_NV_fog_distance");
+    SupportedExtensions.NV_light_max_exponent = QueryExtension("GL_NV_light_max_exponent");
+    SupportedExtensions.NV_occlusion_query = QueryExtension("GL_NV_occlusion_query");
+    SupportedExtensions.NV_packed_depth_stencil = QueryExtension("GL_NV_packed_depth_stencil");
+    SupportedExtensions.NV_point_sprite = QueryExtension("GL_NV_point_sprite");
+    SupportedExtensions.NV_register_combiners = QueryExtension("GL_NV_register_combiners");
+    SupportedExtensions.NV_register_combiners2 = QueryExtension("GL_NV_register_combiners2");
+    SupportedExtensions.NV_texgen_reflection = QueryExtension("GL_NV_texgen_reflection");
+    SupportedExtensions.NV_texture_env_combine4 = QueryExtension("GL_NV_texture_env_combine4");
+    SupportedExtensions.NV_texture_rectangle = QueryExtension("GL_NV_texture_rectangle");
+    SupportedExtensions.NV_texture_shader = QueryExtension("GL_NV_texture_shader");
+    SupportedExtensions.NV_texture_shader2 = QueryExtension("GL_NV_texture_shader2");
+    SupportedExtensions.NV_texture_shader3 = QueryExtension("GL_NV_texture_shader3");
+    SupportedExtensions.NV_vertex_array_range = QueryExtension("GL_NV_vertex_array_range");
+    SupportedExtensions.NV_vertex_array_range2 = QueryExtension("GL_NV_vertex_array_range2");
+    SupportedExtensions.NV_vertex_program = QueryExtension("GL_NV_vertex_program");
+    SupportedExtensions.NV_vertex_program1_1 = QueryExtension("GL_NV_vertex_program1_1");
+    SupportedExtensions.SGIS_generate_mipmap = QueryExtension("GL_SGIS_generate_mipmap");
+    SupportedExtensions.SGIX_depth_texture = QueryExtension("GL_SGIX_depth_texture");
+    SupportedExtensions.SGIX_shadow = QueryExtension("GL_SGIX_shadow");
+    SupportedExtensions.ARB_texture_mirrored_repeat = QueryExtension("GL_ARB_texture_mirrored_repeat");
+    SupportedExtensions.ARB_depth_texture = QueryExtension("GL_ARB_depth_texture");
+    SupportedExtensions.ARB_shadow = QueryExtension("GL_ARB_shadow");
+    SupportedExtensions.ARB_shadow_ambient = QueryExtension("GL_ARB_shadow_ambient");
+    SupportedExtensions.ARB_window_pos = QueryExtension("GL_ARB_window_pos");
+    SupportedExtensions.EXT_shadow_funcs = QueryExtension("GL_EXT_shadow_funcs");
+}
+
+/* init the extensions and load all the functions */
+int glInitialize()
+{
+    error = 0;
+    InitSupportedExtensions();
+    
+    /* first load the etensions */
+    InitARBImaging();
+    InitARBTransposeMatrix();
+    InitARBMultisample();
+    InitEXTCompiledVertexArray();
+    InitEXTSecondaryColor();
+    InitEXTFogCoord();
+    InitNVVertexArrayRange();
+    InitEXTPointParameters();
+    InitNVRegisterCombiners();
+    InitEXTVertexWeighting();
+    InitNVVertexProgram();
+    InitNVFence();
+    InitNVRegisterCombiners2();
+    InitATIPNTriangles();
+    InitARBPointParameters();
+    InitARBVertexBlend();
+    InitEXTMultiDrawArrays();
+    InitARBMatrixPalette();
+    InitEXTVertexShader();
+    InitATIEnvmapBumpmap();
+    InitATIFragmentShader();
+    InitATIElementArray();
+    InitATIVertexStreams();
+    InitATIVertexArrayObject();
+    InitNVOcclusionQuery();
+    InitNVPointSprite();
+    InitARBWindowPos();
+
+#ifdef WIN32
+    InitARBMultitexture();
+    /* now load core opengl */
+    InitOpenGL1_2();
+    InitOpenGL1_3();
+    wglInitialize(_dc);
+#endif
+    return error;
+}
+
index b285a35671b34e290458f21512669b9afa191b92..665f670962109770deb6fc3dd27ca2a9fbfe489b 100755 (executable)
-/* \r
-    Copyright (c) 2001-2002 Lev Povalahev\r
-  \r
-    levp@gmx.net\r
-\r
-    http://www.uni-karlsruhe.de/~uli2/\r
-*/\r
-                \r
-#ifndef __EXTGL_H__\r
-#define __EXTGL_H__\r
-\r
-/*-----------------------------------------*/\r
-/*-----------------------------------------*/\r
-\r
-//#if defined(WIN32) && !defined(APIENTRY)\r
-//#define WIN32_LEAN_AND_MEAN 1\r
-#ifdef WIN32\r
-#include <windows.h>\r
-#endif\r
-\r
-#include <GL/gl.h>\r
-\r
-#ifndef APIENTRY\r
-#define APIENTRY\r
-#endif\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-#define GL_VERSION_1_2                              1\r
-#define GL_VERSION_1_3                              1\r
-#define GL_ARB_imaging                              1\r
-\r
-/* 1.2 and 1.3 enumerants */\r
-\r
-#define GL_RESCALE_NORMAL                                       0x803A\r
-#define GL_CLAMP_TO_EDGE                                        0x812F\r
-#define GL_MAX_ELEMENTS_VERTICES                                0x80E8\r
-#define GL_MAX_ELEMENTS_INDICES                                 0x80E9\r
-#define GL_BGR                                                  0x80E0\r
-#define GL_BGRA                                                 0x80E1\r
-#define GL_UNSIGNED_BYTE_3_3_2                                  0x8032\r
-#define GL_UNSIGNED_BYTE_2_3_3_REV                              0x8362\r
-#define GL_UNSIGNED_SHORT_5_6_5                                 0x8363\r
-#define GL_UNSIGNED_SHORT_5_6_5_REV                             0x8364\r
-#define GL_UNSIGNED_SHORT_4_4_4_4                               0x8033\r
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV                           0x8365\r
-#define GL_UNSIGNED_SHORT_5_5_5_1                               0x8034\r
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV                           0x8366\r
-#define GL_UNSIGNED_INT_8_8_8_8                                 0x8035\r
-#define GL_UNSIGNED_INT_8_8_8_8_REV                             0x8367\r
-#define GL_UNSIGNED_INT_10_10_10_2                              0x8036\r
-#define GL_UNSIGNED_INT_2_10_10_10_REV                          0x8368\r
-#define GL_LIGHT_MODEL_COLOR_CONTROL                            0x81F8\r
-#define GL_SINGLE_COLOR                                         0x81F9\r
-#define GL_SEPARATE_SPECULAR_COLOR                              0x81FA\r
-#define GL_TEXTURE_MIN_LOD                                      0x813A\r
-#define GL_TEXTURE_MAX_LOD                                      0x813B\r
-#define GL_TEXTURE_BASE_LEVEL                                   0x813C\r
-#define GL_TEXTURE_MAX_LEVEL                                    0x813D\r
-#define GL_SMOOTH_POINT_SIZE_RANGE                              0x0B12\r
-#define GL_SMOOTH_POINT_SIZE_GRANULARITY                        0x0B13\r
-#define GL_SMOOTH_LINE_WIDTH_RANGE                              0x0B22\r
-#define GL_SMOOTH_LINE_WIDTH_GRANULARITY                        0x0B23\r
-#define GL_ALIASED_POINT_SIZE_RANGE                             0x846D\r
-#define GL_ALIASED_LINE_WIDTH_RANGE                             0x846E\r
-#define GL_PACK_SKIP_IMAGES                                     0x806B\r
-#define GL_PACK_IMAGE_HEIGHT                                    0x806C\r
-#define GL_UNPACK_SKIP_IMAGES                                   0x806D\r
-#define GL_UNPACK_IMAGE_HEIGHT                                  0x806E\r
-#define GL_TEXTURE_3D                                           0x806F\r
-#define GL_PROXY_TEXTURE_3D                                     0x8070\r
-#define GL_TEXTURE_DEPTH                                        0x8071\r
-#define GL_TEXTURE_WRAP_R                                       0x8072\r
-#define GL_MAX_3D_TEXTURE_SIZE                                  0x8073\r
-#define GL_TEXTURE_BINDING_3D                                   0x806A\r
-\r
-#define GL_COLOR_TABLE                                          0x80D0\r
-#define GL_POST_CONVOLUTION_COLOR_TABLE                         0x80D1\r
-#define GL_POST_COLOR_MATRIX_COLOR_TABLE                        0x80D2\r
-#define GL_PROXY_COLOR_TABLE                                    0x80D3\r
-#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE                   0x80D4\r
-#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE                  0x80D5\r
-#define GL_COLOR_TABLE_SCALE                                    0x80D6\r
-#define GL_COLOR_TABLE_BIAS                                     0x80D7\r
-#define GL_COLOR_TABLE_FORMAT                                   0x80D8\r
-#define GL_COLOR_TABLE_WIDTH                                    0x80D9\r
-#define GL_COLOR_TABLE_RED_SIZE                                 0x80DA\r
-#define GL_COLOR_TABLE_GREEN_SIZE                               0x80DB\r
-#define GL_COLOR_TABLE_BLUE_SIZE                                0x80DC\r
-#define GL_COLOR_TABLE_ALPHA_SIZE                               0x80DD\r
-#define GL_COLOR_TABLE_LUMINANCE_SIZE                           0x80DE\r
-#define GL_COLOR_TABLE_INTENSITY_SIZE                           0x80DF\r
-\r
-#define GL_CONVOLUTION_1D                                       0x8010\r
-#define GL_CONVOLUTION_2D                                       0x8011\r
-#define GL_SEPARABLE_2D                                         0x8012\r
-#define GL_CONVOLUTION_BORDER_MODE                              0x8013\r
-#define GL_CONVOLUTION_FILTER_SCALE                             0x8014\r
-#define GL_CONVOLUTION_FILTER_BIAS                              0x8015\r
-#define GL_REDUCE                                               0x8016\r
-#define GL_CONVOLUTION_FORMAT                                   0x8017\r
-#define GL_CONVOLUTION_WIDTH                                    0x8018\r
-#define GL_CONVOLUTION_HEIGHT                                   0x8019\r
-#define GL_MAX_CONVOLUTION_WIDTH                                0x801A\r
-#define GL_MAX_CONVOLUTION_HEIGHT                               0x801B\r
-#define GL_POST_CONVOLUTION_RED_SCALE                           0x801C\r
-#define GL_POST_CONVOLUTION_GREEN_SCALE                         0x801D\r
-#define GL_POST_CONVOLUTION_BLUE_SCALE                          0x801E\r
-#define GL_POST_CONVOLUTION_ALPHA_SCALE                         0x801F\r
-#define GL_POST_CONVOLUTION_RED_BIAS                            0x8020\r
-#define GL_POST_CONVOLUTION_GREEN_BIAS                          0x8021\r
-#define GL_POST_CONVOLUTION_BLUE_BIAS                           0x8022\r
-#define GL_POST_CONVOLUTION_ALPHA_BIAS                          0x8023\r
-#define GL_CONSTANT_BORDER                                      0x8151\r
-#define GL_REPLICATE_BORDER                                     0x8153\r
-#define GL_CONVOLUTION_BORDER_COLOR                             0x8154\r
-#define GL_COLOR_MATRIX                                         0x80B1\r
-#define GL_COLOR_MATRIX_STACK_DEPTH                             0x80B2\r
-#define GL_MAX_COLOR_MATRIX_STACK_DEPTH                         0x80B3\r
-#define GL_POST_COLOR_MATRIX_RED_SCALE                          0x80B4\r
-#define GL_POST_COLOR_MATRIX_GREEN_SCALE                        0x80B5\r
-#define GL_POST_COLOR_MATRIX_BLUE_SCALE                         0x80B6\r
-#define GL_POST_COLOR_MATRIX_ALPHA_SCALE                        0x80B7\r
-#define GL_POST_COLOR_MATRIX_RED_BIAS                           0x80B8\r
-#define GL_POST_COLOR_MATRIX_GREEN_BIAS                         0x80B9\r
-#define GL_POST_COLOR_MATRIX_BLUE_BIAS                          0x80BA\r
-#define GL_POST_COLOR_MATRIX_ALPHA_BIAS                         0x80BB\r
-#define GL_HISTOGRAM                                            0x8024\r
-#define GL_PROXY_HISTOGRAM                                      0x8025\r
-#define GL_HISTOGRAM_WIDTH                                      0x8026\r
-#define GL_HISTOGRAM_FORMAT                                     0x8027\r
-#define GL_HISTOGRAM_RED_SIZE                                   0x8028\r
-#define GL_HISTOGRAM_GREEN_SIZE                                 0x8029\r
-#define GL_HISTOGRAM_BLUE_SIZE                                  0x802A\r
-#define GL_HISTOGRAM_ALPHA_SIZE                                 0x802B\r
-#define GL_HISTOGRAM_LUMINANCE_SIZE                             0x802C\r
-#define GL_HISTOGRAM_SINK                                       0x802D\r
-#define GL_MINMAX                                               0x802E\r
-#define GL_MINMAX_FORMAT                                        0x802F\r
-#define GL_MINMAX_SINK                                          0x8030\r
-#define GL_TABLE_TOO_LARGE                                      0x8031\r
-#define GL_BLEND_EQUATION                                       0x8009\r
-#define GL_MIN                                                  0x8007\r
-#define GL_MAX                                                  0x8008\r
-#define GL_FUNC_ADD                                             0x8006\r
-#define GL_FUNC_SUBTRACT                                        0x800A\r
-#define GL_FUNC_REVERSE_SUBTRACT                                0x800B\r
-#define GL_BLEND_COLOR                                          0x8005\r
-#define GL_CONSTANT_COLOR                                       0x8001\r
-#define GL_ONE_MINUS_CONSTANT_COLOR                             0x8002\r
-#define GL_CONSTANT_ALPHA                                       0x8003\r
-#define GL_ONE_MINUS_CONSTANT_ALPHA                             0x8004\r
-\r
-#define GL_TEXTURE0                                             0x84C0\r
-#define GL_TEXTURE1                                             0x84C1\r
-#define GL_TEXTURE2                                             0x84C2\r
-#define GL_TEXTURE3                                             0x84C3\r
-#define GL_TEXTURE4                                             0x84C4\r
-#define GL_TEXTURE5                                             0x84C5\r
-#define GL_TEXTURE6                                             0x84C6\r
-#define GL_TEXTURE7                                             0x84C7\r
-#define GL_TEXTURE8                                             0x84C8\r
-#define GL_TEXTURE9                                             0x84C9\r
-#define GL_TEXTURE10                                            0x84CA\r
-#define GL_TEXTURE11                                            0x84CB\r
-#define GL_TEXTURE12                                            0x84CC\r
-#define GL_TEXTURE13                                            0x84CD\r
-#define GL_TEXTURE14                                            0x84CE\r
-#define GL_TEXTURE15                                            0x84CF\r
-#define GL_TEXTURE16                                            0x84D0\r
-#define GL_TEXTURE17                                            0x84D1\r
-#define GL_TEXTURE18                                            0x84D2\r
-#define GL_TEXTURE19                                            0x84D3\r
-#define GL_TEXTURE20                                            0x84D4\r
-#define GL_TEXTURE21                                            0x84D5\r
-#define GL_TEXTURE22                                            0x84D6\r
-#define GL_TEXTURE23                                            0x84D7\r
-#define GL_TEXTURE24                                            0x84D8\r
-#define GL_TEXTURE25                                            0x84D9\r
-#define GL_TEXTURE26                                            0x84DA\r
-#define GL_TEXTURE27                                            0x84DB\r
-#define GL_TEXTURE28                                            0x84DC\r
-#define GL_TEXTURE29                                            0x84DD\r
-#define GL_TEXTURE30                                            0x84DE\r
-#define GL_TEXTURE31                                            0x84DF\r
-#define GL_ACTIVE_TEXTURE                                       0x84E0\r
-#define GL_CLIENT_ACTIVE_TEXTURE                                0x84E1\r
-#define GL_MAX_TEXTURE_UNITS                                    0x84E2\r
-\r
-#define GL_NORMAL_MAP                                           0x8511\r
-#define GL_REFLECTION_MAP                                       0x8512\r
-#define GL_TEXTURE_CUBE_MAP                                     0x8513\r
-#define GL_TEXTURE_BINDING_CUBE_MAP                             0x8514\r
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X                          0x8515\r
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X                          0x8516\r
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y                          0x8517\r
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y                          0x8518\r
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z                          0x8519\r
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z                          0x851A\r
-#define GL_PROXY_TEXTURE_CUBE_MAP                               0x851B\r
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE                            0x851C\r
-\r
-#define GL_COMPRESSED_ALPHA                                     0x84E9\r
-#define GL_COMPRESSED_LUMINANCE                                 0x84EA\r
-#define GL_COMPRESSED_LUMINANCE_ALPHA                           0x84EB\r
-#define GL_COMPRESSED_INTENSITY                                 0x84EC\r
-#define GL_COMPRESSED_RGB                                       0x84ED\r
-#define GL_COMPRESSED_RGBA                                      0x84EE\r
-#define GL_TEXTURE_COMPRESSION_HINT                             0x84EF\r
-#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE                        0x86A0\r
-#define GL_TEXTURE_COMPRESSED                                   0x86A1\r
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS                       0x86A2\r
-#define GL_COMPRESSED_TEXTURE_FORMATS                           0x86A3\r
-\r
-#define GL_MULTISAMPLE                                          0x809D\r
-#define GL_SAMPLE_ALPHA_TO_COVERAGE                             0x809E\r
-#define GL_SAMPLE_ALPHA_TO_ONE                                  0x809F\r
-#define GL_SAMPLE_COVERAGE                                      0x80A0\r
-#define GL_SAMPLE_BUFFERS                                       0x80A8\r
-#define GL_SAMPLES                                              0x80A9\r
-#define GL_SAMPLE_COVERAGE_VALUE                                0x80AA\r
-#define GL_SAMPLE_COVERAGE_INVERT                               0x80AB\r
-#define GL_MULTISAMPLE_BIT                                      0x20000000\r
-\r
-#define GL_TRANSPOSE_MODELVIEW_MATRIX                           0x84E3\r
-#define GL_TRANSPOSE_PROJECTION_MATRIX                          0x84E4\r
-#define GL_TRANSPOSE_TEXTURE_MATRIX                             0x84E5\r
-#define GL_TRANSPOSE_COLOR_MATRIX                               0x84E6\r
-\r
-#define GL_COMBINE                                              0x8570\r
-#define GL_COMBINE_RGB                                          0x8571\r
-#define GL_COMBINE_ALPHA                                        0x8572\r
-#define GL_SOURCE0_RGB                                          0x8580\r
-#define GL_SOURCE1_RGB                                          0x8581\r
-#define GL_SOURCE2_RGB                                          0x8582\r
-#define GL_SOURCE0_ALPHA                                        0x8588\r
-#define GL_SOURCE1_ALPHA                                        0x8589\r
-#define GL_SOURCE2_ALPHA                                        0x858A\r
-#define GL_OPERAND0_RGB                                         0x8590\r
-#define GL_OPERAND1_RGB                                         0x8591\r
-#define GL_OPERAND2_RGB                                         0x8592\r
-#define GL_OPERAND0_ALPHA                                       0x8598\r
-#define GL_OPERAND1_ALPHA                                       0x8599\r
-#define GL_OPERAND2_ALPHA                                       0x859A\r
-#define GL_RGB_SCALE                                            0x8573\r
-#define GL_ADD_SIGNED                                           0x8574\r
-#define GL_INTERPOLATE                                          0x8575\r
-#define GL_SUBTRACT                                             0x84E7\r
-#define GL_CONSTANT                                             0x8576\r
-#define GL_PRIMARY_COLOR                                        0x8577\r
-#define GL_PREVIOUS                                             0x8578\r
-\r
-#define GL_DOT3_RGB                                             0x86AE\r
-#define GL_DOT3_RGBA                                            0x86AF\r
-\r
-#define GL_CLAMP_TO_BORDER                                      0x812D\r
-\r
-\r
-/* 1.2 functions */\r
-\r
-typedef void (APIENTRY * glDrawRangeElementsPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices );\r
-typedef void (APIENTRY * glTexImage3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels );\r
-typedef void (APIENTRY * glTexSubImage3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);\r
-typedef void (APIENTRY * glCopyTexSubImage3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height );\r
-typedef void (APIENTRY * glColorTablePROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table );\r
-typedef void (APIENTRY * glColorSubTablePROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data );\r
-typedef void (APIENTRY * glColorTableParameterivPROC) (GLenum target, GLenum pname, const GLint *params);\r
-typedef void (APIENTRY * glColorTableParameterfvPROC) (GLenum target, GLenum pname, const GLfloat *params);\r
-typedef void (APIENTRY * glCopyColorSubTablePROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width );\r
-typedef void (APIENTRY * glCopyColorTablePROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width );\r
-typedef void (APIENTRY * glGetColorTablePROC) (GLenum target, GLenum format, GLenum type, GLvoid *table );\r
-typedef void (APIENTRY * glGetColorTableParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );\r
-typedef void (APIENTRY * glGetColorTableParameterivPROC) (GLenum target, GLenum pname, GLint *params );\r
-typedef void (APIENTRY * glBlendEquationPROC) (GLenum mode );\r
-typedef void (APIENTRY * glBlendColorPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );\r
-typedef void (APIENTRY * glHistogramPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink );\r
-typedef void (APIENTRY * glResetHistogramPROC) (GLenum target );\r
-typedef void (APIENTRY * glGetHistogramPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values );\r
-typedef void (APIENTRY * glGetHistogramParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );\r
-typedef void (APIENTRY * glGetHistogramParameterivPROC) (GLenum target, GLenum pname, GLint *params );\r
-typedef void (APIENTRY * glMinmaxPROC) (GLenum target, GLenum internalformat, GLboolean sink );\r
-typedef void (APIENTRY * glResetMinmaxPROC) (GLenum target );\r
-typedef void (APIENTRY * glGetMinmaxPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values );\r
-typedef void (APIENTRY * glGetMinmaxParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );\r
-typedef void (APIENTRY * glGetMinmaxParameterivPROC) (GLenum target, GLenum pname, GLint *params );\r
-typedef void (APIENTRY * glConvolutionFilter1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image );\r
-typedef void (APIENTRY * glConvolutionFilter2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image );\r
-typedef void (APIENTRY * glConvolutionParameterfPROC) (GLenum target, GLenum pname, GLfloat params );\r
-typedef void (APIENTRY * glConvolutionParameterfvPROC) (GLenum target, GLenum pname, const GLfloat *params );\r
-typedef void (APIENTRY * glConvolutionParameteriPROC) (GLenum target, GLenum pname, GLint params );\r
-typedef void (APIENTRY * glConvolutionParameterivPROC) (GLenum target, GLenum pname, const GLint *params );\r
-typedef void (APIENTRY * glCopyConvolutionFilter1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width );\r
-typedef void (APIENTRY * glCopyConvolutionFilter2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);\r
-typedef void (APIENTRY * glGetConvolutionFilterPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image );\r
-typedef void (APIENTRY * glGetConvolutionParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );\r
-typedef void (APIENTRY * glGetConvolutionParameterivPROC) (GLenum target, GLenum pname, GLint *params );\r
-typedef void (APIENTRY * glSeparableFilter2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column );\r
-typedef void (APIENTRY * glGetSeparableFilterPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span );\r
-\r
-/* 1.3 functions */\r
-\r
-typedef void (APIENTRY * glActiveTexturePROC) (GLenum texture );\r
-typedef void (APIENTRY * glClientActiveTexturePROC) (GLenum texture );\r
-typedef void (APIENTRY * glCompressedTexImage1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data );\r
-typedef void (APIENTRY * glCompressedTexImage2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );\r
-typedef void (APIENTRY * glCompressedTexImage3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );\r
-typedef void (APIENTRY * glCompressedTexSubImage1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data );\r
-typedef void (APIENTRY * glCompressedTexSubImage2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );\r
-typedef void (APIENTRY * glCompressedTexSubImage3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );\r
-typedef void (APIENTRY * glGetCompressedTexImagePROC) (GLenum target, GLint lod, GLvoid *img );\r
-typedef void (APIENTRY * glMultiTexCoord1dPROC) (GLenum target, GLdouble s );\r
-typedef void (APIENTRY * glMultiTexCoord1dvPROC) (GLenum target, const GLdouble *v );\r
-typedef void (APIENTRY * glMultiTexCoord1fPROC) (GLenum target, GLfloat s );\r
-typedef void (APIENTRY * glMultiTexCoord1fvPROC) (GLenum target, const GLfloat *v );\r
-typedef void (APIENTRY * glMultiTexCoord1iPROC) (GLenum target, GLint s );\r
-typedef void (APIENTRY * glMultiTexCoord1ivPROC) (GLenum target, const GLint *v );\r
-typedef void (APIENTRY * glMultiTexCoord1sPROC) (GLenum target, GLshort s );\r
-typedef void (APIENTRY * glMultiTexCoord1svPROC) (GLenum target, const GLshort *v );\r
-typedef void (APIENTRY * glMultiTexCoord2dPROC) (GLenum target, GLdouble s, GLdouble t );\r
-typedef void (APIENTRY * glMultiTexCoord2dvPROC) (GLenum target, const GLdouble *v );\r
-typedef void (APIENTRY * glMultiTexCoord2fPROC) (GLenum target, GLfloat s, GLfloat t );\r
-typedef void (APIENTRY * glMultiTexCoord2fvPROC) (GLenum target, const GLfloat *v );\r
-typedef void (APIENTRY * glMultiTexCoord2iPROC) (GLenum target, GLint s, GLint t );\r
-typedef void (APIENTRY * glMultiTexCoord2ivPROC) (GLenum target, const GLint *v );\r
-typedef void (APIENTRY * glMultiTexCoord2sPROC) (GLenum target, GLshort s, GLshort t );\r
-typedef void (APIENTRY * glMultiTexCoord2svPROC) (GLenum target, const GLshort *v );\r
-typedef void (APIENTRY * glMultiTexCoord3dPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r );\r
-typedef void (APIENTRY * glMultiTexCoord3dvPROC) (GLenum target, const GLdouble *v );\r
-typedef void (APIENTRY * glMultiTexCoord3fPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r );\r
-typedef void (APIENTRY * glMultiTexCoord3fvPROC) (GLenum target, const GLfloat *v );\r
-typedef void (APIENTRY * glMultiTexCoord3iPROC) (GLenum target, GLint s, GLint t, GLint r );\r
-typedef void (APIENTRY * glMultiTexCoord3ivPROC) (GLenum target, const GLint *v );\r
-typedef void (APIENTRY * glMultiTexCoord3sPROC) (GLenum target, GLshort s, GLshort t, GLshort r );\r
-typedef void (APIENTRY * glMultiTexCoord3svPROC) (GLenum target, const GLshort *v );\r
-typedef void (APIENTRY * glMultiTexCoord4dPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );\r
-typedef void (APIENTRY * glMultiTexCoord4dvPROC) (GLenum target, const GLdouble *v );\r
-typedef void (APIENTRY * glMultiTexCoord4fPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );\r
-typedef void (APIENTRY * glMultiTexCoord4fvPROC) (GLenum target, const GLfloat *v );\r
-typedef void (APIENTRY * glMultiTexCoord4iPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q );\r
-typedef void (APIENTRY * glMultiTexCoord4ivPROC) (GLenum target, const GLint *v );\r
-typedef void (APIENTRY * glMultiTexCoord4sPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );\r
-typedef void (APIENTRY * glMultiTexCoord4svPROC) (GLenum target, const GLshort *v );\r
-typedef void (APIENTRY * glLoadTransposeMatrixdPROC) (const GLdouble m[16] );\r
-typedef void (APIENTRY * glLoadTransposeMatrixfPROC) (const GLfloat m[16] );\r
-typedef void (APIENTRY * glMultTransposeMatrixdPROC) (const GLdouble m[16] );\r
-typedef void (APIENTRY * glMultTransposeMatrixfPROC) (const GLfloat m[16] );\r
-typedef void (APIENTRY * glSampleCoveragePROC) (GLclampf value, GLboolean invert );\r
-\r
-extern glBlendColorPROC glBlendColor;\r
-extern glBlendEquationPROC glBlendEquation;\r
-extern glDrawRangeElementsPROC glDrawRangeElements;\r
-extern glColorTablePROC glColorTable;\r
-extern glColorTableParameterfvPROC glColorTableParameterfv;\r
-extern glColorTableParameterivPROC glColorTableParameteriv;\r
-extern glCopyColorTablePROC glCopyColorTable;\r
-extern glGetColorTablePROC glGetColorTable;\r
-extern glGetColorTableParameterfvPROC glGetColorTableParameterfv;\r
-extern glGetColorTableParameterivPROC glGetColorTableParameteriv;\r
-extern glColorSubTablePROC glColorSubTable;\r
-extern glCopyColorSubTablePROC glCopyColorSubTable;\r
-extern glConvolutionFilter1DPROC glConvolutionFilter1D;\r
-extern glConvolutionFilter2DPROC glConvolutionFilter2D;\r
-extern glConvolutionParameterfPROC glConvolutionParameterf;\r
-extern glConvolutionParameterfvPROC glConvolutionParameterfv;\r
-extern glConvolutionParameteriPROC glConvolutionParameteri;\r
-extern glConvolutionParameterivPROC glConvolutionParameteriv;\r
-extern glCopyConvolutionFilter1DPROC glCopyConvolutionFilter1D;\r
-extern glCopyConvolutionFilter2DPROC glCopyConvolutionFilter2D;\r
-extern glGetConvolutionFilterPROC glGetConvolutionFilter;\r
-extern glGetConvolutionParameterfvPROC glGetConvolutionParameterfv;\r
-extern glGetConvolutionParameterivPROC glGetConvolutionParameteriv;\r
-extern glGetSeparableFilterPROC glGetSeparableFilter;\r
-extern glSeparableFilter2DPROC glSeparableFilter2D;\r
-extern glGetHistogramPROC glGetHistogram;\r
-extern glGetHistogramParameterfvPROC glGetHistogramParameterfv;\r
-extern glGetHistogramParameterivPROC glGetHistogramParameteriv;\r
-extern glGetMinmaxPROC glGetMinmax;\r
-extern glGetMinmaxParameterfvPROC glGetMinmaxParameterfv;\r
-extern glGetMinmaxParameterivPROC glGetMinmaxParameteriv;\r
-extern glHistogramPROC glHistogram;\r
-extern glMinmaxPROC glMinmax;\r
-extern glResetHistogramPROC glResetHistogram;\r
-extern glResetMinmaxPROC glResetMinmax;\r
-extern glTexImage3DPROC glTexImage3D;\r
-extern glTexSubImage3DPROC glTexSubImage3D;\r
-extern glCopyTexSubImage3DPROC glCopyTexSubImage3D;\r
-\r
-/* 1.3 */\r
-\r
-extern glActiveTexturePROC glActiveTexture;\r
-extern glClientActiveTexturePROC glClientActiveTexture;\r
-extern glMultiTexCoord1dPROC glMultiTexCoord1d;\r
-extern glMultiTexCoord1dvPROC glMultiTexCoord1dv;\r
-extern glMultiTexCoord1fPROC glMultiTexCoord1f;\r
-extern glMultiTexCoord1fvPROC glMultiTexCoord1fv;\r
-extern glMultiTexCoord1iPROC glMultiTexCoord1i;\r
-extern glMultiTexCoord1ivPROC glMultiTexCoord1iv;\r
-extern glMultiTexCoord1sPROC glMultiTexCoord1s;\r
-extern glMultiTexCoord1svPROC glMultiTexCoord1sv;\r
-extern glMultiTexCoord2dPROC glMultiTexCoord2d;\r
-extern glMultiTexCoord2dvPROC glMultiTexCoord2dv;\r
-extern glMultiTexCoord2fPROC glMultiTexCoord2f;\r
-extern glMultiTexCoord2fvPROC glMultiTexCoord2fv;\r
-extern glMultiTexCoord2iPROC glMultiTexCoord2i;\r
-extern glMultiTexCoord2ivPROC glMultiTexCoord2iv;\r
-extern glMultiTexCoord2sPROC glMultiTexCoord2s;\r
-extern glMultiTexCoord2svPROC glMultiTexCoord2sv;\r
-extern glMultiTexCoord3dPROC glMultiTexCoord3d;\r
-extern glMultiTexCoord3dvPROC glMultiTexCoord3dv;\r
-extern glMultiTexCoord3fPROC glMultiTexCoord3f;\r
-extern glMultiTexCoord3fvPROC glMultiTexCoord3fv;\r
-extern glMultiTexCoord3iPROC glMultiTexCoord3i;\r
-extern glMultiTexCoord3ivPROC glMultiTexCoord3iv;\r
-extern glMultiTexCoord3sPROC glMultiTexCoord3s;\r
-extern glMultiTexCoord3svPROC glMultiTexCoord3sv;\r
-extern glMultiTexCoord4dPROC glMultiTexCoord4d;\r
-extern glMultiTexCoord4dvPROC glMultiTexCoord4dv;\r
-extern glMultiTexCoord4fPROC glMultiTexCoord4f;\r
-extern glMultiTexCoord4fvPROC glMultiTexCoord4fv;\r
-extern glMultiTexCoord4iPROC glMultiTexCoord4i;\r
-extern glMultiTexCoord4ivPROC glMultiTexCoord4iv;\r
-extern glMultiTexCoord4sPROC glMultiTexCoord4s;\r
-extern glMultiTexCoord4svPROC glMultiTexCoord4sv;\r
-extern glLoadTransposeMatrixfPROC glLoadTransposeMatrixf;\r
-extern glLoadTransposeMatrixdPROC glLoadTransposeMatrixd;\r
-extern glMultTransposeMatrixfPROC glMultTransposeMatrixf;\r
-extern glMultTransposeMatrixdPROC glMultTransposeMatrixd;\r
-extern glCompressedTexImage3DPROC glCompressedTexImage3D;\r
-extern glCompressedTexImage2DPROC glCompressedTexImage2D;\r
-extern glCompressedTexImage1DPROC glCompressedTexImage1D;\r
-extern glCompressedTexSubImage3DPROC glCompressedTexSubImage3D;\r
-extern glCompressedTexSubImage2DPROC glCompressedTexSubImage2D;\r
-extern glCompressedTexSubImage1DPROC glCompressedTexSubImage1D;\r
-extern glGetCompressedTexImagePROC glGetCompressedTexImage;\r
-extern glSampleCoveragePROC glSampleCoverage;\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXTENSIONS---------------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_MULTITEXTURE---------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_multitexture\r
-#define GL_ARB_multitexture 1\r
-#define GL_TEXTURE0_ARB                                         0x84C0\r
-#define GL_TEXTURE1_ARB                                         0x84C1\r
-#define GL_TEXTURE2_ARB                                         0x84C2\r
-#define GL_TEXTURE3_ARB                                         0x84C3\r
-#define GL_TEXTURE4_ARB                                         0x84C4\r
-#define GL_TEXTURE5_ARB                                         0x84C5\r
-#define GL_TEXTURE6_ARB                                         0x84C6\r
-#define GL_TEXTURE7_ARB                                         0x84C7\r
-#define GL_TEXTURE8_ARB                                         0x84C8\r
-#define GL_TEXTURE9_ARB                                         0x84C9\r
-#define GL_TEXTURE10_ARB                                        0x84CA\r
-#define GL_TEXTURE11_ARB                                        0x84CB\r
-#define GL_TEXTURE12_ARB                                        0x84CC\r
-#define GL_TEXTURE13_ARB                                        0x84CD\r
-#define GL_TEXTURE14_ARB                                        0x84CE\r
-#define GL_TEXTURE15_ARB                                        0x84CF\r
-#define GL_TEXTURE16_ARB                                        0x84D0\r
-#define GL_TEXTURE17_ARB                                        0x84D1\r
-#define GL_TEXTURE18_ARB                                        0x84D2\r
-#define GL_TEXTURE19_ARB                                        0x84D3\r
-#define GL_TEXTURE20_ARB                                        0x84D4\r
-#define GL_TEXTURE21_ARB                                        0x84D5\r
-#define GL_TEXTURE22_ARB                                        0x84D6\r
-#define GL_TEXTURE23_ARB                                        0x84D7\r
-#define GL_TEXTURE24_ARB                                        0x84D8\r
-#define GL_TEXTURE25_ARB                                        0x84D9\r
-#define GL_TEXTURE26_ARB                                        0x84DA\r
-#define GL_TEXTURE27_ARB                                        0x84DB\r
-#define GL_TEXTURE28_ARB                                        0x84DC\r
-#define GL_TEXTURE29_ARB                                        0x84DD\r
-#define GL_TEXTURE30_ARB                                        0x84DE\r
-#define GL_TEXTURE31_ARB                                        0x84DF\r
-#define GL_ACTIVE_TEXTURE_ARB                                   0x84E0\r
-#define GL_CLIENT_ACTIVE_TEXTURE_ARB                            0x84E1\r
-#define GL_MAX_TEXTURE_UNITS_ARB                                0x84E2\r
-\r
-extern glActiveTexturePROC glActiveTextureARB;\r
-extern glClientActiveTexturePROC glClientActiveTextureARB;\r
-extern glMultiTexCoord1dPROC glMultiTexCoord1dARB;\r
-extern glMultiTexCoord1dvPROC glMultiTexCoord1dvARB;\r
-extern glMultiTexCoord1fPROC glMultiTexCoord1fARB;\r
-extern glMultiTexCoord1fvPROC glMultiTexCoord1fvARB;\r
-extern glMultiTexCoord1iPROC glMultiTexCoord1iARB;\r
-extern glMultiTexCoord1ivPROC glMultiTexCoord1ivARB;\r
-extern glMultiTexCoord1sPROC glMultiTexCoord1sARB;\r
-extern glMultiTexCoord1svPROC glMultiTexCoord1svARB;\r
-extern glMultiTexCoord2dPROC glMultiTexCoord2dARB;\r
-extern glMultiTexCoord2dvPROC glMultiTexCoord2dvARB;\r
-extern glMultiTexCoord2fPROC glMultiTexCoord2fARB;\r
-extern glMultiTexCoord2fvPROC glMultiTexCoord2fvARB;\r
-extern glMultiTexCoord2iPROC glMultiTexCoord2iARB;\r
-extern glMultiTexCoord2ivPROC glMultiTexCoord2ivARB;\r
-extern glMultiTexCoord2sPROC glMultiTexCoord2sARB;\r
-extern glMultiTexCoord2svPROC glMultiTexCoord2svARB;\r
-extern glMultiTexCoord3dPROC glMultiTexCoord3dARB;\r
-extern glMultiTexCoord3dvPROC glMultiTexCoord3dvARB;\r
-extern glMultiTexCoord3fPROC glMultiTexCoord3fARB;\r
-extern glMultiTexCoord3fvPROC glMultiTexCoord3fvARB;\r
-extern glMultiTexCoord3iPROC glMultiTexCoord3iARB;\r
-extern glMultiTexCoord3ivPROC glMultiTexCoord3ivARB;\r
-extern glMultiTexCoord3sPROC glMultiTexCoord3sARB;\r
-extern glMultiTexCoord3svPROC glMultiTexCoord3svARB;\r
-extern glMultiTexCoord4dPROC glMultiTexCoord4dARB;\r
-extern glMultiTexCoord4dvPROC glMultiTexCoord4dvARB;\r
-extern glMultiTexCoord4fPROC glMultiTexCoord4fARB;\r
-extern glMultiTexCoord4fvPROC glMultiTexCoord4fvARB;\r
-extern glMultiTexCoord4iPROC glMultiTexCoord4iARB;\r
-extern glMultiTexCoord4ivPROC glMultiTexCoord4ivARB;\r
-extern glMultiTexCoord4sPROC glMultiTexCoord4sARB;\r
-extern glMultiTexCoord4svPROC glMultiTexCoord4svARB;\r
-\r
-#endif /* GL_ARB_multitexture */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_TRANSPOSE_MATRIX-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_transpose_matrix\r
-#define GL_ARB_transpose_matrix 1\r
-\r
-#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB                       0x84E3\r
-#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB                      0x84E4\r
-#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB                         0x84E5\r
-#define GL_TRANSPOSE_COLOR_MATRIX_ARB                           0x84E6\r
-\r
-extern glLoadTransposeMatrixfPROC glLoadTransposeMatrixfARB;\r
-extern glLoadTransposeMatrixdPROC glLoadTransposeMatrixdARB;\r
-extern glMultTransposeMatrixfPROC glMultTransposeMatrixfARB;\r
-extern glMultTransposeMatrixdPROC glMultTransposeMatrixdARB;\r
-\r
-#endif /* GL_ARB_transpose_matrix */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_TEXTURE_COMPRESSION--------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_texture_compression\r
-#define GL_ARB_texture_compression 1\r
-\r
-#define GL_COMPRESSED_ALPHA_ARB                                 0x84E9\r
-#define GL_COMPRESSED_LUMINANCE_ARB                             0x84EA\r
-#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB                       0x84EB\r
-#define GL_COMPRESSED_INTENSITY_ARB                             0x84EC\r
-#define GL_COMPRESSED_RGB_ARB                                   0x84ED\r
-#define GL_COMPRESSED_RGBA_ARB                                  0x84EE\r
-#define GL_TEXTURE_COMPRESSION_HINT_ARB                         0x84EF\r
-#define GL_TEXTURE_IMAGE_SIZE_ARB                               0x86A0\r
-#define GL_TEXTURE_COMPRESSED_ARB                               0x86A1\r
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB                   0x86A2\r
-#define GL_COMPRESSED_TEXTURE_FORMATS_ARB                       0x86A3\r
-\r
-extern glCompressedTexImage3DPROC glCompressedTexImage3DARB;\r
-extern glCompressedTexImage2DPROC glCompressedTexImage2DARB;\r
-extern glCompressedTexImage1DPROC glCompressedTexImage1DARB; \r
-extern glCompressedTexSubImage3DPROC glCompressedTexSubImage3DARB;\r
-extern glCompressedTexSubImage2DPROC glCompressedTexSubImage2DARB;\r
-extern glCompressedTexSubImage1DPROC glCompressedTexSubImage1DARB;\r
-extern glGetCompressedTexImagePROC glGetCompressedTexImageARB;\r
-\r
-#endif /* GL_ARB_texture_compression */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_CUBE_MAP-------------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_texture_cube_map\r
-#define GL_ARB_texture_cube_map 1\r
-\r
-#define GL_NORMAL_MAP_ARB                                       0x8511\r
-#define GL_REFLECTION_MAP_ARB                                   0x8512\r
-#define GL_TEXTURE_CUBE_MAP_ARB                                 0x8513\r
-#define GL_TEXTURE_BINDING_CUBE_MAP_ARB                         0x8514\r
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB                      0x8515\r
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB                      0x8516\r
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB                      0x8517\r
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB                      0x8518\r
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB                      0x8519\r
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB                      0x851A\r
-#define GL_PROXY_TEXTURE_CUBE_MAP_ARB                           0x851B\r
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB                        0x851C\r
-\r
-#endif /* GL_ARB_texture_cube_map */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------SGIX_SHADOW--------------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_SGIX_shadow\r
-#define GL_SGIX_shadow 1\r
-\r
-#define GL_TEXTURE_COMPARE_SGIX                                 0x819A\r
-#define GL_TEXTURE_COMPARE_OPERATOR_SGIX                        0x819B\r
-#define GL_TEXTURE_LEQUAL_R_SGIX                                0x819C\r
-#define GL_TEXTURE_GEQUAL_R_SGIX                                0x819D\r
-\r
-#endif /* GL_SGIX_shadow */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------SGIX_DEPTH_TEXTURE-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_SGIX_depth_texture\r
-#define GL_SGIX_depth_texture 1\r
-\r
-#define GL_DEPTH_COMPONENT16_SGIX                               0x81A5\r
-#define GL_DEPTH_COMPONENT24_SGIX                               0x81A6\r
-#define GL_DEPTH_COMPONENT32_SGIX                               0x81A7\r
-\r
-#endif /* GL_SGIX_depth_texture */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_COMPILED_VERTEX_ARRAY------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_compiled_vertex_array\r
-#define GL_EXT_compiled_vertex_array 1\r
-\r
-#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT                         0x81A8\r
-#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT                         0x81A9\r
-\r
-typedef void (APIENTRY * glLockArraysEXTPROC) (GLint first, GLsizei count);\r
-typedef void (APIENTRY * glUnlockArraysEXTPROC) ();\r
-\r
-extern glLockArraysEXTPROC glLockArraysEXT;\r
-extern glUnlockArraysEXTPROC glUnlockArraysEXT;\r
-\r
-#endif /* GL_EXT_compiled_vertex_array */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_TEXTURE_ENV_COMBINE--------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_texture_env_combine\r
-#define GL_ARB_texture_env_combine 1\r
-\r
-#define GL_COMBINE_ARB                                          0x8570\r
-#define GL_COMBINE_RGB_ARB                                      0x8571\r
-#define GL_COMBINE_ALPHA_ARB                                    0x8572\r
-#define GL_RGB_SCALE_ARB                                        0x8573\r
-#define GL_ADD_SIGNED_ARB                                       0x8574\r
-#define GL_INTERPOLATE_ARB                                      0x8575\r
-#define GL_CONSTANT_ARB                                         0x8576\r
-#define GL_PRIMARY_COLOR_ARB                                    0x8577\r
-#define GL_PREVIOUS_ARB                                         0x8578\r
-#define GL_SOURCE0_RGB_ARB                                      0x8580\r
-#define GL_SOURCE1_RGB_ARB                                      0x8581\r
-#define GL_SOURCE2_RGB_ARB                                      0x8582\r
-#define GL_SOURCE0_ALPHA_ARB                                    0x8588\r
-#define GL_SOURCE1_ALPHA_ARB                                    0x8589\r
-#define GL_SOURCE2_ALPHA_ARB                                    0x858A\r
-#define GL_OPERAND0_RGB_ARB                                     0x8590\r
-#define GL_OPERAND1_RGB_ARB                                     0x8591\r
-#define GL_OPERAND2_RGB_ARB                                     0x8592\r
-#define GL_OPERAND0_ALPHA_ARB                                   0x8598\r
-#define GL_OPERAND1_ALPHA_ARB                                   0x8599\r
-#define GL_OPERAND2_ALPHA_ARB                                   0x859A\r
-\r
-#endif /* GL_ARB_texture_env_combine */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_TEXTURE_ENV_DOT3-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_texture_env_dot3\r
-#define GL_ARB_texture_env_dot3 1\r
-\r
-#define GL_DOT3_RGB_ARB                                         0x86AE\r
-#define GL_DOT3_RGBA_ARB                                        0x86AF\r
-\r
-#endif /* GL_ARB_texture_env_dot3 */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_TEXTURE_BORDER_CLAMP-------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_texture_border_clamp\r
-#define GL_ARB_texture_border_clamp 1\r
-\r
-#define GL_CLAMP_TO_BORDER_ARB                                  0x812D\r
-\r
-#endif /* GL_ARB_texture_border_clamp */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_TEXTURE_ENV_ADD------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_texture_env_add\r
-#define GL_ARB_texture_env_add 1\r
-\r
-\r
-#endif /* GL_ARB_texture_env_add */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_SECONDARY_COLOR------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_secondary_color\r
-#define GL_EXT_secondary_color 1\r
-\r
-#define GL_COLOR_SUM_EXT                                        0x8458\r
-#define GL_CURRENT_SECONDARY_COLOR_EXT                          0x8459\r
-#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT                       0x845A\r
-#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT                       0x845B\r
-#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT                     0x845C\r
-#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT                    0x845D\r
-#define GL_SECONDARY_COLOR_ARRAY_EXT                            0x845E\r
-\r
-typedef void (APIENTRY * glSecondaryColor3bEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);\r
-typedef void (APIENTRY * glSecondaryColor3bvEXTPROC) (const GLbyte *v);\r
-typedef void (APIENTRY * glSecondaryColor3dEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);\r
-typedef void (APIENTRY * glSecondaryColor3dvEXTPROC) (const GLdouble *v);\r
-typedef void (APIENTRY * glSecondaryColor3fEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);\r
-typedef void (APIENTRY * glSecondaryColor3fvEXTPROC) (const GLfloat *v);\r
-typedef void (APIENTRY * glSecondaryColor3iEXTPROC) (GLint red, GLint green, GLint blue);\r
-typedef void (APIENTRY * glSecondaryColor3ivEXTPROC) (const GLint *v);\r
-typedef void (APIENTRY * glSecondaryColor3sEXTPROC) (GLshort red, GLshort green, GLshort blue);\r
-typedef void (APIENTRY * glSecondaryColor3svEXTPROC) (const GLshort *v);\r
-typedef void (APIENTRY * glSecondaryColor3ubEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);\r
-typedef void (APIENTRY * glSecondaryColor3ubvEXTPROC) (const GLubyte *v);\r
-typedef void (APIENTRY * glSecondaryColor3uiEXTPROC) (GLuint red, GLuint green, GLuint blue);\r
-typedef void (APIENTRY * glSecondaryColor3uivEXTPROC) (const GLuint *v);\r
-typedef void (APIENTRY * glSecondaryColor3usEXTPROC) (GLushort red, GLushort green, GLushort blue);\r
-typedef void (APIENTRY * glSecondaryColor3usvEXTPROC) (const GLushort *v);\r
-typedef void (APIENTRY * glSecondaryColorPointerEXTPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);\r
-\r
-extern glSecondaryColor3bEXTPROC glSecondaryColor3bEXT;\r
-extern glSecondaryColor3bvEXTPROC glSecondaryColor3bvEXT;\r
-extern glSecondaryColor3dEXTPROC glSecondaryColor3dEXT;\r
-extern glSecondaryColor3dvEXTPROC glSecondaryColor3dvEXT;\r
-extern glSecondaryColor3fEXTPROC glSecondaryColor3fEXT;\r
-extern glSecondaryColor3fvEXTPROC glSecondaryColor3fvEXT;\r
-extern glSecondaryColor3iEXTPROC glSecondaryColor3iEXT;\r
-extern glSecondaryColor3ivEXTPROC glSecondaryColor3ivEXT;\r
-extern glSecondaryColor3sEXTPROC glSecondaryColor3sEXT;\r
-extern glSecondaryColor3svEXTPROC glSecondaryColor3svEXT;\r
-extern glSecondaryColor3ubEXTPROC glSecondaryColor3ubEXT;\r
-extern glSecondaryColor3ubvEXTPROC glSecondaryColor3ubvEXT;\r
-extern glSecondaryColor3uiEXTPROC glSecondaryColor3uiEXT;\r
-extern glSecondaryColor3uivEXTPROC glSecondaryColor3uivEXT;\r
-extern glSecondaryColor3usEXTPROC glSecondaryColor3usEXT;\r
-extern glSecondaryColor3usvEXTPROC glSecondaryColor3usvEXT;\r
-extern glSecondaryColorPointerEXTPROC glSecondaryColorPointerEXT;\r
-\r
-#endif /* GL_EXT_secondary_color */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_FOG_COORD------------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_fog_coord\r
-#define GL_EXT_fog_coord 1\r
-\r
-#define GL_FOG_COORDINATE_SOURCE_EXT                            0x8450\r
-#define GL_FOG_COORDINATE_EXT                                   0x8451\r
-#define GL_FRAGMENT_DEPTH_EXT                                   0x8452\r
-#define GL_CURRENT_FOG_COORDINATE_EXT                           0x8453\r
-#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT                        0x8454\r
-#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT                      0x8455\r
-#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT                     0x8456\r
-#define GL_FOG_COORDINATE_ARRAY_EXT                             0x8457\r
-\r
-typedef void (APIENTRY * glFogCoordfEXTPROC) (GLfloat coord);\r
-typedef void (APIENTRY * glFogCoordfvEXTPROC) (const GLfloat *coord);\r
-typedef void (APIENTRY * glFogCoorddEXTPROC) (GLdouble coord);\r
-typedef void (APIENTRY * glFogCoorddvEXTPROC) (const GLdouble *coord);\r
-typedef void (APIENTRY * glFogCoordPointerEXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);\r
-\r
-extern glFogCoordfEXTPROC glFogCoordfEXT;\r
-extern glFogCoordfvEXTPROC glFogCoordfvEXT;\r
-extern glFogCoorddEXTPROC glFogCoorddEXT;\r
-extern glFogCoorddvEXTPROC glFogCoorddvEXT;\r
-extern glFogCoordPointerEXTPROC glFogCoordPointerEXT;\r
-\r
-#endif /* GL_EXT_fog_coord */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_VERTEX_ARRAY_RANGE----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_vertex_array_range\r
-#define GL_NV_vertex_array_range 1\r
-\r
-#define GL_VERTEX_ARRAY_RANGE_NV                                0x851D\r
-#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV                         0x851E\r
-#define GL_VERTEX_ARRAY_RANGE_VALID_NV                          0x851F\r
-#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV                    0x8520\r
-#define GL_VERTEX_ARRAY_RANGE_POINTER_NV                        0x8521\r
-\r
-typedef void (APIENTRY * glFlushVertexArrayRangeNVPROC) (void);\r
-typedef void (APIENTRY * glVertexArrayRangeNVPROC) (GLsizei size, const GLvoid *pointer);\r
-\r
-extern glFlushVertexArrayRangeNVPROC glFlushVertexArrayRangeNV;\r
-extern glVertexArrayRangeNVPROC glVertexArrayRangeNV;\r
-\r
-#ifdef WIN32\r
-\r
-typedef void * (APIENTRY * wglAllocateMemoryNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);\r
-typedef void (APIENTRY * wglFreeMemoryNVPROC) (void *pointer);\r
-\r
-extern wglAllocateMemoryNVPROC wglAllocateMemoryNV;\r
-extern wglFreeMemoryNVPROC wglFreeMemoryNV;\r
-\r
-#endif /* WIN32 */\r
-\r
-#endif /* GL_NV_vertex_array_range */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_VERTEX_ARRAY_RANGE2---------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_vertex_array_range2\r
-#define GL_NV_vertex_array_range2 1\r
-\r
-#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV                  0x8533\r
-\r
-#endif /* GL_NV_vertex_array_range2 */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_POINT_PARAMETERS-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_point_parameters\r
-#define GL_EXT_point_parameters 1\r
-\r
-#define GL_POINT_SIZE_MIN_EXT                                   0x8126\r
-#define GL_POINT_SIZE_MAX_EXT                                   0x8127\r
-#define GL_POINT_FADE_THRESHOLD_SIZE_EXT                        0x8128\r
-#define GL_DISTANCE_ATTENUATION_EXT                             0x8129\r
-\r
-typedef void (APIENTRY * glPointParameterfEXTPROC) (GLenum pname, GLfloat param);\r
-typedef void (APIENTRY * glPointParameterfvEXTPROC) (GLenum pname, const GLfloat *params);\r
-\r
-extern glPointParameterfEXTPROC glPointParameterfEXT;\r
-extern glPointParameterfvEXTPROC glPointParameterfvEXT;\r
-\r
-#endif /* GL_EXT_point_parameters */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_REGISTER_COMBINERS----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_register_combiners\r
-#define GL_NV_register_combiners 1\r
-\r
-#define GL_REGISTER_COMBINERS_NV                                0x8522\r
-#define GL_COMBINER0_NV                                         0x8550\r
-#define GL_COMBINER1_NV                                         0x8551\r
-#define GL_COMBINER2_NV                                         0x8552\r
-#define GL_COMBINER3_NV                                         0x8553\r
-#define GL_COMBINER4_NV                                         0x8554\r
-#define GL_COMBINER5_NV                                         0x8555\r
-#define GL_COMBINER6_NV                                         0x8556\r
-#define GL_COMBINER7_NV                                         0x8557\r
-#define GL_VARIABLE_A_NV                                        0x8523\r
-#define GL_VARIABLE_B_NV                                        0x8524\r
-#define GL_VARIABLE_C_NV                                        0x8525\r
-#define GL_VARIABLE_D_NV                                        0x8526\r
-#define GL_VARIABLE_E_NV                                        0x8527\r
-#define GL_VARIABLE_F_NV                                        0x8528\r
-#define GL_VARIABLE_G_NV                                        0x8529\r
-#define GL_CONSTANT_COLOR0_NV                                   0x852A\r
-#define GL_CONSTANT_COLOR1_NV                                   0x852B\r
-#define GL_PRIMARY_COLOR_NV                                     0x852C\r
-#define GL_SECONDARY_COLOR_NV                                   0x852D\r
-#define GL_SPARE0_NV                                            0x852E\r
-#define GL_SPARE1_NV                                            0x852F\r
-#define GL_UNSIGNED_IDENTITY_NV                                 0x8536\r
-#define GL_UNSIGNED_INVERT_NV                                   0x8537\r
-#define GL_EXPAND_NORMAL_NV                                     0x8538\r
-#define GL_EXPAND_NEGATE_NV                                     0x8539\r
-#define GL_HALF_BIAS_NORMAL_NV                                  0x853A\r
-#define GL_HALF_BIAS_NEGATE_NV                                  0x853B\r
-#define GL_SIGNED_IDENTITY_NV                                   0x853C\r
-#define GL_SIGNED_NEGATE_NV                                     0x853D\r
-#define GL_E_TIMES_F_NV                                         0x8531\r
-#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV                       0x8532\r
-#define GL_SCALE_BY_TWO_NV                                      0x853E\r
-#define GL_SCALE_BY_FOUR_NV                                     0x853F\r
-#define GL_SCALE_BY_ONE_HALF_NV                                 0x8540\r
-#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV                         0x8541\r
-#define GL_DISCARD_NV                                           0x8530\r
-#define GL_COMBINER_INPUT_NV                                    0x8542\r
-#define GL_COMBINER_MAPPING_NV                                  0x8543\r
-#define GL_COMBINER_COMPONENT_USAGE_NV                          0x8544\r
-#define GL_COMBINER_AB_DOT_PRODUCT_NV                           0x8545\r
-#define GL_COMBINER_CD_DOT_PRODUCT_NV                           0x8546\r
-#define GL_COMBINER_MUX_SUM_NV                                  0x8547\r
-#define GL_COMBINER_SCALE_NV                                    0x8548\r
-#define GL_COMBINER_BIAS_NV                                     0x8549\r
-#define GL_COMBINER_AB_OUTPUT_NV                                0x854A\r
-#define GL_COMBINER_CD_OUTPUT_NV                                0x854B\r
-#define GL_COMBINER_SUM_OUTPUT_NV                               0x854C\r
-#define GL_NUM_GENERAL_COMBINERS_NV                             0x854E\r
-#define GL_COLOR_SUM_CLAMP_NV                                   0x854F\r
-#define GL_MAX_GENERAL_COMBINERS_NV                             0x854D\r
-\r
-typedef void (APIENTRY * glCombinerParameterfvNVPROC) (GLenum pname, const GLfloat *params);\r
-typedef void (APIENTRY * glCombinerParameterfNVPROC) (GLenum pname, GLfloat param);\r
-typedef void (APIENTRY * glCombinerParameterivNVPROC) (GLenum pname, const GLint *params);\r
-typedef void (APIENTRY * glCombinerParameteriNVPROC) (GLenum pname, GLint param);\r
-typedef void (APIENTRY * glCombinerInputNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);\r
-typedef void (APIENTRY * glCombinerOutputNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);\r
-typedef void (APIENTRY * glFinalCombinerInputNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);\r
-typedef void (APIENTRY * glGetCombinerInputParameterfvNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetCombinerInputParameterivNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glGetCombinerOutputParameterfvNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetCombinerOutputParameterivNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glGetFinalCombinerInputParameterfvNVPROC) (GLenum variable, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetFinalCombinerInputParameterivNVPROC) (GLenum variable, GLenum pname, GLint *params);\r
-\r
-extern glCombinerParameterfvNVPROC glCombinerParameterfvNV;\r
-extern glCombinerParameterfNVPROC  glCombinerParameterfNV;\r
-extern glCombinerParameterivNVPROC glCombinerParameterivNV;\r
-extern glCombinerParameteriNVPROC glCombinerParameteriNV;\r
-extern glCombinerInputNVPROC glCombinerInputNV;\r
-extern glCombinerOutputNVPROC glCombinerOutputNV;\r
-extern glFinalCombinerInputNVPROC glFinalCombinerInputNV;\r
-extern glGetCombinerInputParameterfvNVPROC glGetCombinerInputParameterfvNV;\r
-extern glGetCombinerInputParameterivNVPROC glGetCombinerInputParameterivNV;\r
-extern glGetCombinerOutputParameterfvNVPROC glGetCombinerOutputParameterfvNV;\r
-extern glGetCombinerOutputParameterivNVPROC glGetCombinerOutputParameterivNV;\r
-extern glGetFinalCombinerInputParameterfvNVPROC glGetFinalCombinerInputParameterfvNV;\r
-extern glGetFinalCombinerInputParameterivNVPROC glGetFinalCombinerInputParameterivNV;\r
-\r
-#endif /* GL_NV_register_combiners */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_MULTISAMPLE----------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_multisample\r
-#define GL_ARB_multisample 1\r
-\r
-#define GL_MULTISAMPLE_ARB                                      0x809D\r
-#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB                         0x809E\r
-#define GL_SAMPLE_ALPHA_TO_ONE_ARB                              0x809F\r
-#define GL_SAMPLE_COVERAGE_ARB                                  0x80A0\r
-#define GL_SAMPLE_BUFFERS_ARB                                   0x80A8\r
-#define GL_SAMPLES_ARB                                          0x80A9\r
-#define GL_SAMPLE_COVERAGE_VALUE_ARB                            0x80AA\r
-#define GL_SAMPLE_COVERAGE_INVERT_ARB                           0x80AB\r
-#define GL_MULTISAMPLE_BIT_ARB                                  0x20000000\r
-\r
-extern glSampleCoveragePROC glSampleCoverageARB;\r
-\r
-#endif /* GL_ARB_multisample */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_TEXTURE_SHADER--------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_texture_shader\r
-#define GL_NV_texture_shader 1\r
-\r
-#define GL_TEXTURE_SHADER_NV                                    0x86DE\r
-#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV                 0x86D9\r
-#define GL_SHADER_OPERATION_NV                                  0x86DF\r
-#define GL_CULL_MODES_NV                                        0x86E0\r
-#define GL_OFFSET_TEXTURE_MATRIX_NV                             0x86E1\r
-#define GL_OFFSET_TEXTURE_SCALE_NV                              0x86E2\r
-#define GL_OFFSET_TEXTURE_BIAS_NV                               0x86E3\r
-#define GL_PREVIOUS_TEXTURE_INPUT_NV                            0x86E4\r
-#define GL_CONST_EYE_NV                                         0x86E5\r
-#define GL_SHADER_CONSISTENT_NV                                 0x86DD\r
-#define GL_PASS_THROUGH_NV                                      0x86E6\r
-#define GL_CULL_FRAGMENT_NV                                     0x86E7\r
-#define GL_OFFSET_TEXTURE_2D_NV                                 0x86E8\r
-#define GL_OFFSET_TEXTURE_RECTANGLE_NV                          0x864C\r
-#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV                    0x864D\r
-#define GL_DEPENDENT_AR_TEXTURE_2D_NV                           0x86E9\r
-#define GL_DEPENDENT_GB_TEXTURE_2D_NV                           0x86EA\r
-#define GL_DOT_PRODUCT_NV                                       0x86EC\r
-#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV                         0x86ED\r
-#define GL_DOT_PRODUCT_TEXTURE_2D_NV                            0x86EE\r
-#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV                     0x864E\r
-#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV                      0x86F0\r
-#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV                      0x86F1\r
-#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV                      0x86F2\r
-#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV            0x86F3\r
-#define GL_HILO_NV                                              0x86F4\r
-#define GL_DSDT_NV                                              0x86F5\r
-#define GL_DSDT_MAG_NV                                          0x86F6\r
-#define GL_DSDT_MAG_VIB_NV                                      0x86F7\r
-#define GL_UNSIGNED_INT_S8_S8_8_8_NV                            0x86DA\r
-#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV                        0x86DB\r
-#define GL_SIGNED_RGBA_NV                                       0x86FB\r
-#define GL_SIGNED_RGBA8_NV                                      0x86FC\r
-#define GL_SIGNED_RGB_NV                                        0x86FE\r
-#define GL_SIGNED_RGB8_NV                                       0x86FF\r
-#define GL_SIGNED_LUMINANCE_NV                                  0x8701\r
-#define GL_SIGNED_LUMINANCE8_NV                                 0x8702\r
-#define GL_SIGNED_LUMINANCE_ALPHA_NV                            0x8703\r
-#define GL_SIGNED_LUMINANCE8_ALPHA8_NV                          0x8704\r
-#define GL_SIGNED_ALPHA_NV                                      0x8705\r
-#define GL_SIGNED_ALPHA8_NV                                     0x8706\r
-#define GL_SIGNED_INTENSITY_NV                                  0x8707\r
-#define GL_SIGNED_INTENSITY8_NV                                 0x8708\r
-#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV                         0x870C\r
-#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV                       0x870D\r
-#define GL_HILO16_NV                                            0x86F8\r
-#define GL_SIGNED_HILO_NV                                       0x86F9\r
-#define GL_SIGNED_HILO16_NV                                     0x86FA\r
-#define GL_DSDT8_NV                                             0x8709\r
-#define GL_DSDT8_MAG8_NV                                        0x870A\r
-#define GL_DSDT_MAG_INTENSITY_NV                                0x86DC\r
-#define GL_DSDT8_MAG8_INTENSITY8_NV                             0x870B\r
-#define GL_HI_SCALE_NV                                          0x870E\r
-#define GL_LO_SCALE_NV                                          0x870F\r
-#define GL_DS_SCALE_NV                                          0x8710\r
-#define GL_DT_SCALE_NV                                          0x8711\r
-#define GL_MAGNITUDE_SCALE_NV                                   0x8712\r
-#define GL_VIBRANCE_SCALE_NV                                    0x8713\r
-#define GL_HI_BIAS_NV                                           0x8714\r
-#define GL_LO_BIAS_NV                                           0x8715\r
-#define GL_DS_BIAS_NV                                           0x8716\r
-#define GL_DT_BIAS_NV                                           0x8717\r
-#define GL_MAGNITUDE_BIAS_NV                                    0x8718\r
-#define GL_VIBRANCE_BIAS_NV                                     0x8719\r
-#define GL_TEXTURE_BORDER_VALUES_NV                             0x871A\r
-#define GL_TEXTURE_HI_SIZE_NV                                   0x871B\r
-#define GL_TEXTURE_LO_SIZE_NV                                   0x871C\r
-#define GL_TEXTURE_DS_SIZE_NV                                   0x871D\r
-#define GL_TEXTURE_DT_SIZE_NV                                   0x871E\r
-#define GL_TEXTURE_MAG_SIZE_NV                                  0x871F\r
-\r
-#endif /* GL_NV_texture_shader */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------GL_NV_TEXTURE_RECTANGLE--------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_texture_rectangle\r
-#define GL_NV_texture_rectangle 1\r
-\r
-#define GL_TEXTURE_RECTANGLE_NV                                 0x84F5\r
-#define GL_TEXTURE_BINDING_RECTANGLE_NV                         0x84F6\r
-#define GL_PROXY_TEXTURE_RECTANGLE_NV                           0x84F7\r
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV                        0x84F8\r
-\r
-#endif /* GL_NV_texture_recrangle */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_TEXTURE_ENV_COMBINE4--------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_texture_env_combine4\r
-#define GL_NV_texture_env_combine4 1\r
-\r
-#define GL_COMBINE4_NV                                          0x8503\r
-#define GL_SOURCE3_RGB_NV                                       0x8583\r
-#define GL_SOURCE3_ALPHA_NV                                     0x858B\r
-#define GL_OPERAND3_RGB_NV                                      0x8593\r
-#define GL_OPERAND3_ALPHA_NV                                    0x859B\r
-\r
-#endif /* GL_NV_texture_env_combine */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_FOG_DISTANCE----------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_fog_distance\r
-#define GL_NV_fog_distance 1\r
-\r
-#define GL_FOG_DISTANCE_MODE_NV                                 0x855A\r
-#define GL_EYE_RADIAL_NV                                        0x855B\r
-#define GL_EYE_PLANE_ABSOLUTE_NV                                0x855C\r
-\r
-#endif /* GL_NV_fog_distance */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_TEXTURE_FILTER_ANISOTROPIC-------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_texture_filter_anisotropic\r
-#define GL_EXT_texture_filter_anisotropic 1\r
-\r
-#define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE\r
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF\r
-\r
-#endif /* GL_EXT_texture_filter_anisotropic */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------SGIS_GENERATE_MIPMAP-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_SGIS_generate_mipmap\r
-#define GL_SGIS_generate_mipmap 1\r
-\r
-#define GL_GENERATE_MIPMAP_SGIS                                 0x8191\r
-#define GL_GENERATE_MIPMAP_HINT_SGIS                            0x8192\r
-\r
-#endif /* GL_SGIS_generate_mipmap */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_TEXGEN_REFLECTION-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_texgen_reflection\r
-#define GL_NV_texgen_reflection 1\r
-\r
-#define GL_NORMAL_MAP_NV                                        0x8511\r
-#define GL_REFLECTION_MAP_NV                                    0x8512\r
-\r
-#endif /* GL_NV_texgen_reflection */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_VERTEX_WEIGHTING-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_vertex_weighting\r
-#define GL_EXT_vertex_weighting 1\r
-\r
-#define GL_MODELVIEW0_STACK_DEPTH_EXT                           0x0BA3  /* alias to GL_MODELVIEW_STACK_DEPTH */\r
-#define GL_MODELVIEW1_STACK_DEPTH_EXT                           0x8502\r
-#define GL_MODELVIEW0_MATRIX_EXT                                0x0BA6  /* alias to GL_MODELVIEW_MATRIX */\r
-#define GL_MODELVIEW1_MATRIX_EXT                                0x8506\r
-#define GL_VERTEX_WEIGHTING_EXT                                 0x8509\r
-#define GL_MODELVIEW0_EXT                                       0x1700  /* alias to GL_MODELVIEW */\r
-#define GL_MODELVIEW1_EXT                                       0x850A\r
-#define GL_CURRENT_VERTEX_WEIGHT_EXT                            0x850B\r
-#define GL_VERTEX_WEIGHT_ARRAY_EXT                              0x850C\r
-#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT                         0x850D\r
-#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT                         0x850E\r
-#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT                       0x850F\r
-#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT                      0x8510\r
-\r
-typedef void (APIENTRY * glVertexWeightfEXTPROC) (GLfloat weight);\r
-typedef void (APIENTRY * glVertexWeightfvEXTPROC) (const GLfloat *weight);\r
-typedef void (APIENTRY * glVertexWeightPointerEXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);\r
-\r
-extern glVertexWeightfEXTPROC glVertexWeightfEXT;\r
-extern glVertexWeightfvEXTPROC glVertexWeightfvEXT;\r
-extern glVertexWeightPointerEXTPROC glVertexWeightPointerEXT;\r
-\r
-#endif /* GL_EXT_vertex_weighting */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_VERTEX_PROGRAM--------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_vertex_program\r
-#define GL_NV_vertex_program 1\r
-\r
-#define GL_VERTEX_PROGRAM_NV                                    0x8620\r
-#define GL_VERTEX_PROGRAM_POINT_SIZE_NV                         0x8642\r
-#define GL_VERTEX_PROGRAM_TWO_SIDE_NV                           0x8643\r
-#define GL_VERTEX_STATE_PROGRAM_NV                              0x8621\r
-#define GL_ATTRIB_ARRAY_SIZE_NV                                 0x8623\r
-#define GL_ATTRIB_ARRAY_STRIDE_NV                               0x8624\r
-#define GL_ATTRIB_ARRAY_TYPE_NV                                 0x8625\r
-#define GL_CURRENT_ATTRIB_NV                                    0x8626\r
-#define GL_PROGRAM_PARAMETER_NV                                 0x8644\r
-#define GL_ATTRIB_ARRAY_POINTER_NV                              0x8645\r
-#define GL_PROGRAM_TARGET_NV                                    0x8646\r
-#define GL_PROGRAM_LENGTH_NV                                    0x8627\r
-#define GL_PROGRAM_RESIDENT_NV                                  0x8647\r
-#define GL_PROGRAM_STRING_NV                                    0x8628\r
-#define GL_TRACK_MATRIX_NV                                      0x8648\r
-#define GL_TRACK_MATRIX_TRANSFORM_NV                            0x8649\r
-#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV                      0x862E\r
-#define GL_MAX_TRACK_MATRICES_NV                                0x862F\r
-#define GL_CURRENT_MATRIX_STACK_DEPTH_NV                        0x8640\r
-#define GL_CURRENT_MATRIX_NV                                    0x8641\r
-#define GL_VERTEX_PROGRAM_BINDING_NV                            0x864A\r
-#define GL_PROGRAM_ERROR_POSITION_NV                            0x864B\r
-#define GL_MODELVIEW_PROJECTION_NV                              0x8629\r
-#define GL_MATRIX0_NV                                           0x8630\r
-#define GL_MATRIX1_NV                                           0x8631\r
-#define GL_MATRIX2_NV                                           0x8632\r
-#define GL_MATRIX3_NV                                           0x8633\r
-#define GL_MATRIX4_NV                                           0x8634\r
-#define GL_MATRIX5_NV                                           0x8635\r
-#define GL_MATRIX6_NV                                           0x8636\r
-#define GL_MATRIX7_NV                                           0x8637\r
-#define GL_IDENTITY_NV                                          0x862A\r
-#define GL_INVERSE_NV                                           0x862B\r
-#define GL_TRANSPOSE_NV                                         0x862C\r
-#define GL_INVERSE_TRANSPOSE_NV                                 0x862D\r
-#define GL_VERTEX_ATTRIB_ARRAY0_NV                              0x8650\r
-#define GL_VERTEX_ATTRIB_ARRAY1_NV                              0x8651\r
-#define GL_VERTEX_ATTRIB_ARRAY2_NV                              0x8652\r
-#define GL_VERTEX_ATTRIB_ARRAY3_NV                              0x8653\r
-#define GL_VERTEX_ATTRIB_ARRAY4_NV                              0x8654\r
-#define GL_VERTEX_ATTRIB_ARRAY5_NV                              0x8655\r
-#define GL_VERTEX_ATTRIB_ARRAY6_NV                              0x8656\r
-#define GL_VERTEX_ATTRIB_ARRAY7_NV                              0x8657\r
-#define GL_VERTEX_ATTRIB_ARRAY8_NV                              0x8658\r
-#define GL_VERTEX_ATTRIB_ARRAY9_NV                              0x8659\r
-#define GL_VERTEX_ATTRIB_ARRAY10_NV                             0x865A\r
-#define GL_VERTEX_ATTRIB_ARRAY11_NV                             0x865B\r
-#define GL_VERTEX_ATTRIB_ARRAY12_NV                             0x865C\r
-#define GL_VERTEX_ATTRIB_ARRAY13_NV                             0x865D\r
-#define GL_VERTEX_ATTRIB_ARRAY14_NV                             0x865E\r
-#define GL_VERTEX_ATTRIB_ARRAY15_NV                             0x865F\r
-#define GL_MAP1_VERTEX_ATTRIB0_4_NV                             0x8660\r
-#define GL_MAP1_VERTEX_ATTRIB1_4_NV                             0x8661\r
-#define GL_MAP1_VERTEX_ATTRIB2_4_NV                             0x8662\r
-#define GL_MAP1_VERTEX_ATTRIB3_4_NV                             0x8663\r
-#define GL_MAP1_VERTEX_ATTRIB4_4_NV                             0x8664\r
-#define GL_MAP1_VERTEX_ATTRIB5_4_NV                             0x8665\r
-#define GL_MAP1_VERTEX_ATTRIB6_4_NV                             0x8666\r
-#define GL_MAP1_VERTEX_ATTRIB7_4_NV                             0x8667\r
-#define GL_MAP1_VERTEX_ATTRIB8_4_NV                             0x8668\r
-#define GL_MAP1_VERTEX_ATTRIB9_4_NV                             0x8669\r
-#define GL_MAP1_VERTEX_ATTRIB10_4_NV                            0x866A\r
-#define GL_MAP1_VERTEX_ATTRIB11_4_NV                            0x866B\r
-#define GL_MAP1_VERTEX_ATTRIB12_4_NV                            0x866C\r
-#define GL_MAP1_VERTEX_ATTRIB13_4_NV                            0x866D\r
-#define GL_MAP1_VERTEX_ATTRIB14_4_NV                            0x866E\r
-#define GL_MAP1_VERTEX_ATTRIB15_4_NV                            0x866F\r
-#define GL_MAP2_VERTEX_ATTRIB0_4_NV                             0x8670\r
-#define GL_MAP2_VERTEX_ATTRIB1_4_NV                             0x8671\r
-#define GL_MAP2_VERTEX_ATTRIB2_4_NV                             0x8672\r
-#define GL_MAP2_VERTEX_ATTRIB3_4_NV                             0x8673\r
-#define GL_MAP2_VERTEX_ATTRIB4_4_NV                             0x8674\r
-#define GL_MAP2_VERTEX_ATTRIB5_4_NV                             0x8675\r
-#define GL_MAP2_VERTEX_ATTRIB6_4_NV                             0x8676\r
-#define GL_MAP2_VERTEX_ATTRIB7_4_NV                             0x8677\r
-#define GL_MAP2_VERTEX_ATTRIB8_4_NV                             0x8678\r
-#define GL_MAP2_VERTEX_ATTRIB9_4_NV                             0x8679\r
-#define GL_MAP2_VERTEX_ATTRIB10_4_NV                            0x867A\r
-#define GL_MAP2_VERTEX_ATTRIB11_4_NV                            0x867B\r
-#define GL_MAP2_VERTEX_ATTRIB12_4_NV                            0x867C\r
-#define GL_MAP2_VERTEX_ATTRIB13_4_NV                            0x867D\r
-#define GL_MAP2_VERTEX_ATTRIB14_4_NV                            0x867E\r
-#define GL_MAP2_VERTEX_ATTRIB15_4_NV                            0x867F\r
-\r
-typedef void (APIENTRY * glBindProgramNVPROC) (GLenum target, GLuint id);\r
-typedef void (APIENTRY * glDeleteProgramsNVPROC) (GLsizei n, const GLuint *ids);\r
-typedef void (APIENTRY * glExecuteProgramNVPROC) (GLenum target, GLuint id, const GLfloat *params);\r
-typedef void (APIENTRY * glGenProgramsNVPROC) (GLsizei n, GLuint *ids);\r
-typedef GLboolean (APIENTRY * glAreProgramsResidentNVPROC) (GLsizei n, const GLuint *ids, GLboolean *residences);\r
-typedef void (APIENTRY * glRequestResidentProgramsNVPROC) (GLsizei n, GLuint *ids);\r
-typedef void (APIENTRY * glGetProgramParameterfvNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetProgramParameterdvNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);\r
-typedef void (APIENTRY * glGetProgramivNVPROC) (GLuint id, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glGetProgramStringNVPROC) (GLuint id, GLenum pname, GLubyte *program);\r
-typedef void (APIENTRY * glGetTrackMatrixivNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glGetVertexAttribdvNVPROC) (GLuint index, GLenum pname, GLdouble *params);\r
-typedef void (APIENTRY * glGetVertexAttribfvNVPROC) (GLuint index, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetVertexAttribivNVPROC) (GLuint index, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glGetVertexAttribPointervNVPROC) (GLuint index, GLenum pname, GLvoid **pointer);\r
-typedef GLboolean (APIENTRY * glIsProgramNVPROC) (GLuint id);\r
-typedef void (APIENTRY * glLoadProgramNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);\r
-typedef void (APIENTRY * glProgramParameter4fNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);\r
-typedef void (APIENTRY * glProgramParameter4dNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);\r
-typedef void (APIENTRY * glProgramParameter4dvNVPROC) (GLenum target, GLuint index, const GLdouble *params);\r
-typedef void (APIENTRY * glProgramParameter4fvNVPROC) (GLenum target, GLuint index, const GLfloat *params);\r
-typedef void (APIENTRY * glProgramParameters4dvNVPROC) (GLenum target, GLuint index, GLuint num, const GLdouble *params);\r
-typedef void (APIENTRY * glProgramParameters4fvNVPROC) (GLenum target, GLuint index, GLuint num, const GLfloat *params);\r
-typedef void (APIENTRY * glTrackMatrixNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);\r
-typedef void (APIENTRY * glVertexAttribPointerNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);\r
-typedef void (APIENTRY * glVertexAttrib1sNVPROC) (GLuint index, GLshort x);\r
-typedef void (APIENTRY * glVertexAttrib1fNVPROC) (GLuint index, GLfloat x);\r
-typedef void (APIENTRY * glVertexAttrib1dNVPROC) (GLuint index, GLdouble x);\r
-typedef void (APIENTRY * glVertexAttrib2sNVPROC) (GLuint index, GLshort x, GLshort y);\r
-typedef void (APIENTRY * glVertexAttrib2fNVPROC) (GLuint index, GLfloat x, GLfloat y);\r
-typedef void (APIENTRY * glVertexAttrib2dNVPROC) (GLuint index, GLdouble x, GLdouble y);\r
-typedef void (APIENTRY * glVertexAttrib3sNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);\r
-typedef void (APIENTRY * glVertexAttrib3fNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);\r
-typedef void (APIENTRY * glVertexAttrib3dNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);\r
-typedef void (APIENTRY * glVertexAttrib4sNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);\r
-typedef void (APIENTRY * glVertexAttrib4fNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);\r
-typedef void (APIENTRY * glVertexAttrib4dNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);\r
-typedef void (APIENTRY * glVertexAttrib4ubNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);\r
-typedef void (APIENTRY * glVertexAttrib1svNVPROC) (GLuint index, const GLshort *v);\r
-typedef void (APIENTRY * glVertexAttrib1fvNVPROC) (GLuint index, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexAttrib1dvNVPROC) (GLuint index, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexAttrib2svNVPROC) (GLuint index, const GLshort *v);\r
-typedef void (APIENTRY * glVertexAttrib2fvNVPROC) (GLuint index, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexAttrib2dvNVPROC) (GLuint index, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexAttrib3svNVPROC) (GLuint index, const GLshort *v);\r
-typedef void (APIENTRY * glVertexAttrib3fvNVPROC) (GLuint index, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexAttrib3dvNVPROC) (GLuint index, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexAttrib4svNVPROC) (GLuint index, const GLshort *v);\r
-typedef void (APIENTRY * glVertexAttrib4fvNVPROC) (GLuint index, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexAttrib4dvNVPROC) (GLuint index, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexAttrib4ubvNVPROC) (GLuint index, const GLubyte *v);\r
-typedef void (APIENTRY * glVertexAttribs1svNVPROC) (GLuint index, GLsizei n, const GLshort *v);\r
-typedef void (APIENTRY * glVertexAttribs1fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexAttribs1dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexAttribs2svNVPROC) (GLuint index, GLsizei n, const GLshort *v);\r
-typedef void (APIENTRY * glVertexAttribs2fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexAttribs2dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexAttribs3svNVPROC) (GLuint index, GLsizei n, const GLshort *v);\r
-typedef void (APIENTRY * glVertexAttribs3fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexAttribs3dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexAttribs4svNVPROC) (GLuint index, GLsizei n, const GLshort *v);\r
-typedef void (APIENTRY * glVertexAttribs4fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexAttribs4dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexAttribs4ubvNVPROC) (GLuint index, GLsizei n, const GLubyte *v);\r
-\r
-extern glBindProgramNVPROC glBindProgramNV;\r
-extern glDeleteProgramsNVPROC glDeleteProgramsNV;\r
-extern glExecuteProgramNVPROC glExecuteProgramNV;\r
-extern glGenProgramsNVPROC glGenProgramsNV;\r
-extern glAreProgramsResidentNVPROC glAreProgramsResidentNV;\r
-extern glRequestResidentProgramsNVPROC glRequestResidentProgramsNV;\r
-extern glGetProgramParameterfvNVPROC glGetProgramParameterfvNV;\r
-extern glGetProgramParameterdvNVPROC glGetProgramParameterdvNV;\r
-extern glGetProgramivNVPROC glGetProgramivNV;\r
-extern glGetProgramStringNVPROC glGetProgramStringNV;\r
-extern glGetTrackMatrixivNVPROC glGetTrackMatrixivNV;\r
-extern glGetVertexAttribdvNVPROC glGetVertexAttribdvNV;\r
-extern glGetVertexAttribfvNVPROC glGetVertexAttribfvNV;\r
-extern glGetVertexAttribivNVPROC glGetVertexAttribivNV;\r
-extern glGetVertexAttribPointervNVPROC glGetVertexAttribPointervNV;\r
-extern glIsProgramNVPROC glIsProgramNV;\r
-extern glLoadProgramNVPROC glLoadProgramNV;\r
-extern glProgramParameter4fNVPROC glProgramParameter4fNV;\r
-extern glProgramParameter4dNVPROC glProgramParameter4dNV;\r
-extern glProgramParameter4dvNVPROC glProgramParameter4dvNV;\r
-extern glProgramParameter4fvNVPROC glProgramParameter4fvNV;\r
-extern glProgramParameters4dvNVPROC glProgramParameters4dvNV;\r
-extern glProgramParameters4fvNVPROC glProgramParameters4fvNV;\r
-extern glTrackMatrixNVPROC glTrackMatrixNV;\r
-extern glVertexAttribPointerNVPROC glVertexAttribPointerNV;\r
-extern glVertexAttrib1sNVPROC glVertexAttrib1sNV;\r
-extern glVertexAttrib1fNVPROC glVertexAttrib1fNV;\r
-extern glVertexAttrib1dNVPROC glVertexAttrib1dNV;\r
-extern glVertexAttrib2sNVPROC glVertexAttrib2sNV;\r
-extern glVertexAttrib2fNVPROC glVertexAttrib2fNV;\r
-extern glVertexAttrib2dNVPROC glVertexAttrib2dNV;\r
-extern glVertexAttrib3sNVPROC glVertexAttrib3sNV;\r
-extern glVertexAttrib3fNVPROC glVertexAttrib3fNV;\r
-extern glVertexAttrib3dNVPROC glVertexAttrib3dNV;\r
-extern glVertexAttrib4sNVPROC glVertexAttrib4sNV;\r
-extern glVertexAttrib4fNVPROC glVertexAttrib4fNV;\r
-extern glVertexAttrib4dNVPROC glVertexAttrib4dNV;\r
-extern glVertexAttrib4ubNVPROC glVertexAttrib4ubNV;\r
-extern glVertexAttrib1svNVPROC glVertexAttrib1svNV;\r
-extern glVertexAttrib1fvNVPROC glVertexAttrib1fvNV;\r
-extern glVertexAttrib1dvNVPROC glVertexAttrib1dvNV;\r
-extern glVertexAttrib2svNVPROC glVertexAttrib2svNV;\r
-extern glVertexAttrib2fvNVPROC glVertexAttrib2fvNV;\r
-extern glVertexAttrib2dvNVPROC glVertexAttrib2dvNV;\r
-extern glVertexAttrib3svNVPROC glVertexAttrib3svNV;\r
-extern glVertexAttrib3fvNVPROC glVertexAttrib3fvNV;\r
-extern glVertexAttrib3dvNVPROC glVertexAttrib3dvNV;\r
-extern glVertexAttrib4svNVPROC glVertexAttrib4svNV;\r
-extern glVertexAttrib4fvNVPROC glVertexAttrib4fvNV;\r
-extern glVertexAttrib4dvNVPROC glVertexAttrib4dvNV;\r
-extern glVertexAttrib4ubvNVPROC glVertexAttrib4ubvNV;\r
-extern glVertexAttribs1svNVPROC glVertexAttribs1svNV;\r
-extern glVertexAttribs1fvNVPROC glVertexAttribs1fvNV;\r
-extern glVertexAttribs1dvNVPROC glVertexAttribs1dvNV;\r
-extern glVertexAttribs2svNVPROC glVertexAttribs2svNV;\r
-extern glVertexAttribs2fvNVPROC glVertexAttribs2fvNV;\r
-extern glVertexAttribs2dvNVPROC glVertexAttribs2dvNV;\r
-extern glVertexAttribs3svNVPROC glVertexAttribs3svNV;\r
-extern glVertexAttribs3fvNVPROC glVertexAttribs3fvNV;\r
-extern glVertexAttribs3dvNVPROC glVertexAttribs3dvNV;\r
-extern glVertexAttribs4svNVPROC glVertexAttribs4svNV;\r
-extern glVertexAttribs4fvNVPROC glVertexAttribs4fvNV;\r
-extern glVertexAttribs4dvNVPROC glVertexAttribs4dvNV;\r
-extern glVertexAttribs4ubvNVPROC glVertexAttribs4ubvNV;\r
-\r
-#endif /* GL_NV_vertex_program */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_FENCE-----------------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_fence\r
-#define GL_NV_fance 1\r
-\r
-#define GL_ALL_COMPLETED_NV                                     0x84F2\r
-#define GL_FENCE_STATUS_NV                                      0x84F3\r
-#define GL_FENCE_CONDITION_NV                                   0x84F4\r
-\r
-typedef void (APIENTRY * glGenFencesNVPROC) (GLsizei n, GLuint *fences);\r
-typedef void (APIENTRY * glDeleteFencesNVPROC) (GLsizei n, const GLuint *fences);\r
-typedef void (APIENTRY * glSetFenceNVPROC) (GLuint fence, GLenum condition);\r
-typedef GLboolean (APIENTRY * glTestFenceNVPROC) (GLuint fence);\r
-typedef void (APIENTRY * glFinishFenceNVPROC) (GLuint fence);\r
-typedef GLboolean (APIENTRY * glIsFenceNVPROC) (GLuint fence);\r
-typedef void (APIENTRY * glGetFenceivNVPROC) (GLuint fence, GLenum pname, GLint *params);\r
-\r
-extern glGenFencesNVPROC glGenFencesNV;\r
-extern glDeleteFencesNVPROC glDeleteFencesNV;\r
-extern glSetFenceNVPROC glSetFenceNV;\r
-extern glTestFenceNVPROC glTestFenceNV;\r
-extern glFinishFenceNVPROC glFinishFenceNV;\r
-extern glIsFenceNVPROC glIsFenceNV;\r
-extern glGetFenceivNVPROC glGetFenceivNV;\r
-\r
-#endif /* GL_NV_fence */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_TEXTURE_SHADER2-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_texture_shader2\r
-#define GL_NV_texture_shader2\r
-\r
-#define GL_DOT_PRODUCT_TEXTURE_3D_NV                            0x86EF\r
-#define GL_HILO_NV                                              0x86F4\r
-#define GL_DSDT_NV                                              0x86F5\r
-#define GL_DSDT_MAG_NV                                          0x86F6\r
-#define GL_DSDT_MAG_VIB_NV                                      0x86F7\r
-#define GL_UNSIGNED_INT_S8_S8_8_8_NV                            0x86DA\r
-#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV                        0x86DB\r
-#define GL_SIGNED_RGBA_NV                                       0x86FB\r
-#define GL_SIGNED_RGBA8_NV                                      0x86FC\r
-#define GL_SIGNED_RGB_NV                                        0x86FE\r
-#define GL_SIGNED_RGB8_NV                                       0x86FF\r
-#define GL_SIGNED_LUMINANCE_NV                                  0x8701\r
-#define GL_SIGNED_LUMINANCE8_NV                                 0x8702\r
-#define GL_SIGNED_LUMINANCE_ALPHA_NV                            0x8703\r
-#define GL_SIGNED_LUMINANCE8_ALPHA8_NV                          0x8704\r
-#define GL_SIGNED_ALPHA_NV                                      0x8705\r
-#define GL_SIGNED_ALPHA8_NV                                     0x8706\r
-#define GL_SIGNED_INTENSITY_NV                                  0x8707\r
-#define GL_SIGNED_INTENSITY8_NV                                 0x8708\r
-#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV                         0x870C\r
-#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV                       0x870D\r
-#define GL_HILO16_NV                                            0x86F8\r
-#define GL_SIGNED_HILO_NV                                       0x86F9\r
-#define GL_SIGNED_HILO16_NV                                     0x86FA\r
-#define GL_DSDT8_NV                                             0x8709\r
-#define GL_DSDT8_MAG8_NV                                        0x870A\r
-#define GL_DSDT_MAG_INTENSITY_NV                                0x86DC\r
-#define GL_DSDT8_MAG8_INTENSITY8_NV                             0x870B \r
-\r
-#endif /* GL_NV_texture_shader2 */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_BLEND_SQUARE----------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_blend_square\r
-#define GL_NV_blend_square 1\r
-\r
-#endif /* GL_NV_blend_square */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_LIGHT_MAX_EXPONENT----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_light_max_exponent\r
-#define GL_NV_light_max_exponent 1\r
-\r
-#define GL_MAX_SHININESS_NV                                     0x8504\r
-#define GL_MAX_SPOT_EXPONENT_NV                                 0x8505\r
-\r
-#endif /* GL_NV_light_max_exponent */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_PACKED_DEPTH_STENCIL--------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_packed_depth_stencil\r
-#define GL_NV_packed_depth_stencil 1\r
-\r
-#define GL_DEPTH_STENCIL_NV                                     0x84F9\r
-#define GL_UNSIGNED_INT_24_8_NV                                 0x84FA\r
-\r
-#endif /* GL_NV_packed_depth_stencil */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_REGISTER_COMBINERS2---------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_register_combiners2\r
-#define GL_NV_register_combiners2\r
-\r
-#define GL_PER_STAGE_CONSTANTS_NV                               0x8535\r
-\r
-typedef void (APIENTRY * glCombinerStageParameterfvNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);\r
-typedef void (APIENTRY * glGetCombinerStageParameterfvNVPROC) (GLenum stage, GLenum pname, GLfloat *params);\r
-\r
-extern glCombinerStageParameterfvNVPROC glCombinerStageParameterfvNV;\r
-extern glGetCombinerStageParameterfvNVPROC glGetCombinerStageParameterfvNV;\r
-\r
-#endif /* GL_NV_register_combiners2 */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_ABGR-----------------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_abgr\r
-#define GL_EXT_abgr 1\r
-\r
-#define GL_ABGR_EXT                                             0x8000\r
-\r
-#endif /* GL_EXT_abgr */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_STENCIL_WRAP---------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_stencil_wrap\r
-#define GL_EXT_stencil_wrap 1\r
-\r
-#define GL_INCR_WRAP_EXT             0x8507\r
-#define GL_DECR_WRAP_EXT             0x8508\r
-\r
-#endif /* GL_EXT_stencil_wrap */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_TEXTURE_LOD_BIAS-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_texture_lod_bias\r
-#define GL_EXT_texture_lod_bias 1\r
-\r
-#define GL_TEXTURE_FILTER_CONTROL_EXT                           0x8500\r
-#define GL_TEXTURE_LOD_BIAS_EXT                                 0x8501\r
-#define GL_MAX_TEXTURE_LOD_BIAS_EXT                             0x84FD\r
-\r
-#endif /* GL_EXT_texture_lod_bias */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_EVALUATORS------------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_evaluators\r
-#define GL_NV_evaluators 1\r
-\r
-#define GL_EVAL_2D_NV                                           0x86C0\r
-#define GL_EVAL_TRIANGULAR_2D_NV                                0x86C1\r
-#define GL_MAP_TESSELLATION_NV                                  0x86C2\r
-#define GL_MAP_ATTRIB_U_ORDER_NV                                0x86C3\r
-#define GL_MAP_ATTRIB_V_ORDER_NV                                0x86C4\r
-#define GL_EVAL_FRACTIONAL_TESSELLATION_NV                      0x86C5\r
-#define GL_EVAL_VERTEX_ATTRIB0_NV                               0x86C6\r
-#define GL_EVAL_VERTEX_ATTRIB1_NV                               0x86C7\r
-#define GL_EVAL_VERTEX_ATTRIB2_NV                               0x86C8\r
-#define GL_EVAL_VERTEX_ATTRIB3_NV                               0x86C9\r
-#define GL_EVAL_VERTEX_ATTRIB4_NV                               0x86CA\r
-#define GL_EVAL_VERTEX_ATTRIB5_NV                               0x86CB\r
-#define GL_EVAL_VERTEX_ATTRIB6_NV                               0x86CC\r
-#define GL_EVAL_VERTEX_ATTRIB7_NV                               0x86CD\r
-#define GL_EVAL_VERTEX_ATTRIB8_NV                               0x86CE\r
-#define GL_EVAL_VERTEX_ATTRIB9_NV                               0x86CF\r
-#define GL_EVAL_VERTEX_ATTRIB10_NV                              0x86D0\r
-#define GL_EVAL_VERTEX_ATTRIB11_NV                              0x86D1\r
-#define GL_EVAL_VERTEX_ATTRIB12_NV                              0x86D2\r
-#define GL_EVAL_VERTEX_ATTRIB13_NV                              0x86D3\r
-#define GL_EVAL_VERTEX_ATTRIB14_NV                              0x86D4\r
-#define GL_EVAL_VERTEX_ATTRIB15_NV                              0x86D5\r
-#define GL_MAX_MAP_TESSELLATION_NV                              0x86D6\r
-#define GL_MAX_RATIONAL_EVAL_ORDER_NV                           0x86D7\r
-\r
-typedef void (APIENTRY * glMapControlPointsNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);\r
-typedef void (APIENTRY * glMapParameterivNVPROC) (GLenum target, GLenum pname, const GLint *params);\r
-typedef void (APIENTRY * glMapParameterfvNVPROC) (GLenum target, GLenum pname, const GLfloat *params);\r
-typedef void (APIENTRY * glGetMapControlPointsNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);\r
-typedef void (APIENTRY * glGetMapParameterivNVPROC) (GLenum target, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glGetMapParameterfvNVPROC) (GLenum target, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetMapAttribParameterivNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glGetMapAttribParameterfvNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glEvalMapsNVPROC) (GLenum target, GLenum mode);\r
-\r
-extern glMapControlPointsNVPROC glMapControlPointsNV;\r
-extern glMapParameterivNVPROC glMapParameterivNV;\r
-extern glMapParameterfvNVPROC glMapParameterfvNV;\r
-extern glGetMapControlPointsNVPROC glGetMapControlPointsNV;\r
-extern glGetMapParameterivNVPROC glGetMapParameterivNV;\r
-extern glGetMapParameterfvNVPROC glGetMapParameterfvNV;\r
-extern glGetMapAttribParameterivNVPROC glGetMapAttribParameterivNV;\r
-extern glGetMapAttribParameterfvNVPROC glGetMapAttribParameterfvNV;\r
-extern glEvalMapsNVPROC glEvalMapsNV;\r
-\r
-#endif /* GL_NV_evaluators */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_COPY_DEPTH_TO_COLOR---------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_copy_depth_to_color\r
-#define GL_NV_copy_depth_to_color 1\r
-\r
-#define GL_DEPTH_STENCIL_TO_RGBA_NV                             0x886E\r
-#define GL_DEPTH_STENCIL_TO_BGRA_NV                             0x886F\r
-\r
-#endif /* GL_NV_copy_depth_to_color */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATI_PN_TRIANGLES---------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATI_pn_triangles\r
-#define GL_ATI_pn_triangles 1\r
-\r
-#define GL_PN_TRIANGLES_ATI                                     0x87F0\r
-#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI               0x87F1\r
-#define GL_PN_TRIANGLES_POINT_MODE_ATI                          0x87F2\r
-#define GL_PN_TRIANGLES_NORMAL_MODE_ATI                         0x87F3\r
-#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI                   0x87F4\r
-#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI                   0x87F5\r
-#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI                    0x87F6\r
-#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI                  0x87F7\r
-#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI               0x87F8\r
-\r
-typedef void (APIENTRY * glPNTrianglesiATIPROC) (GLenum pname, GLint param);\r
-typedef void (APIENTRY * glPNTrianglesfATIPROC) (GLenum pname, GLfloat param);\r
-\r
-extern glPNTrianglesiATIPROC glPNTrianglesiATI;\r
-extern glPNTrianglesfATIPROC glPNTrianglesfATI;\r
-\r
-#endif /* GL_ATI_pn_triangles */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_POINT_PARAMETERS-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_point_parameters\r
-#define GL_ARB_point_parameters 1\r
-\r
-#define GL_POINT_SIZE_MIN_ARB                                   0x8126\r
-#define GL_POINT_SIZE_MAX_ARB                                   0x8127\r
-#define GL_POINT_FADE_THRESHOLD_SIZE_ARB                        0x8128\r
-#define GL_POINT_DISTANCE_ATTENUATION_ARB                       0x8129\r
-\r
-typedef void (APIENTRY * glPointParameterfARBPROC) (GLenum pname, GLfloat param);\r
-typedef void (APIENTRY * glPointParameterfvARBPROC) (GLenum pname, GLfloat *params);\r
-\r
-extern glPointParameterfARBPROC glPointParameterfARB;\r
-extern glPointParameterfvARBPROC glPointParameterfvARB;\r
-\r
-#endif /* GL_ARB_point_parameters */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_TEXTURE_ENV_CROSSBAR-------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_texture_env_crossbar\r
-#define GL_ARB_texture_env_crossbar 1\r
-\r
-#endif\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_VERTEX_BLEND---------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_vertex_blend\r
-#define GL_ARB_vertex_blend 1\r
-\r
-#define GL_MAX_VERTEX_UNITS_ARB                                 0x86A4\r
-#define GL_ACTIVE_VERTEX_UNITS_ARB                              0x86A5\r
-#define GL_WEIGHT_SUM_UNITY_ARB                                 0x86A6      \r
-#define GL_VERTEX_BLEND_ARB                                     0x86A7\r
-#define GL_CURRENT_WEIGHT_ARB                                   0x86A8\r
-#define GL_WEIGHT_ARRAY_TYPE_ARB                                0x86A9\r
-#define GL_WEIGHT_ARRAY_STRIDE_ARB                              0x86AA\r
-#define GL_WEIGHT_ARRAY_SIZE_ARB                                0x86AB\r
-#define GL_WEIGHT_ARRAY_POINTER_ARB                             0x86AC\r
-#define GL_WEIGHT_ARRAY_ARB                                     0x86AD\r
-#define GL_MODELVIEW0_ARB                                       0x1700\r
-#define GL_MODELVIEW1_ARB                                       0x850a\r
-#define GL_MODELVIEW2_ARB                                       0x8722\r
-#define GL_MODELVIEW3_ARB                                       0x8723\r
-#define GL_MODELVIEW4_ARB                                       0x8724\r
-#define GL_MODELVIEW5_ARB                                       0x8725\r
-#define GL_MODELVIEW6_ARB                                       0x8726\r
-#define GL_MODELVIEW7_ARB                                       0x8727\r
-#define GL_MODELVIEW8_ARB                                       0x8728\r
-#define GL_MODELVIEW9_ARB                                       0x8729\r
-#define GL_MODELVIEW10_ARB                                      0x872A\r
-#define GL_MODELVIEW11_ARB                                      0x872B\r
-#define GL_MODELVIEW12_ARB                                      0x872C\r
-#define GL_MODELVIEW13_ARB                                      0x872D\r
-#define GL_MODELVIEW14_ARB                                      0x872E\r
-#define GL_MODELVIEW15_ARB                                      0x872F\r
-#define GL_MODELVIEW16_ARB                                      0x8730\r
-#define GL_MODELVIEW17_ARB                                      0x8731\r
-#define GL_MODELVIEW18_ARB                                      0x8732\r
-#define GL_MODELVIEW19_ARB                                      0x8733\r
-#define GL_MODELVIEW20_ARB                                      0x8734\r
-#define GL_MODELVIEW21_ARB                                      0x8735\r
-#define GL_MODELVIEW22_ARB                                      0x8736\r
-#define GL_MODELVIEW23_ARB                                      0x8737\r
-#define GL_MODELVIEW24_ARB                                      0x8738\r
-#define GL_MODELVIEW25_ARB                                      0x8739\r
-#define GL_MODELVIEW26_ARB                                      0x873A\r
-#define GL_MODELVIEW27_ARB                                      0x873B\r
-#define GL_MODELVIEW28_ARB                                      0x873C\r
-#define GL_MODELVIEW29_ARB                                      0x873D\r
-#define GL_MODELVIEW30_ARB                                      0x873E\r
-#define GL_MODELVIEW31_ARB                                      0x873F\r
-\r
-typedef void (APIENTRY * glWeightbvARBPROC) (GLint size, GLbyte *weights);\r
-typedef void (APIENTRY * glWeightsvARBPROC) (GLint size, GLshort *weights);\r
-typedef void (APIENTRY * glWeightivARBPROC) (GLint size, GLint *weights);\r
-typedef void (APIENTRY * glWeightfvARBPROC) (GLint size, GLfloat *weights);\r
-typedef void (APIENTRY * glWeightdvARBPROC) (GLint size, GLdouble *weights);\r
-typedef void (APIENTRY * glWeightubvARBPROC) (GLint size, GLubyte *weights);\r
-typedef void (APIENTRY * glWeightusvARBPROC) (GLint size, GLushort *weights);\r
-typedef void (APIENTRY * glWeightuivARBPROC) (GLint size, GLuint *weights);\r
-typedef void (APIENTRY * glWeightPointerARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);\r
-typedef void (APIENTRY * glVertexBlendARBPROC) (GLint count);\r
-\r
-extern glWeightbvARBPROC glWeightbvARB;\r
-extern glWeightsvARBPROC glWeightsvARB;\r
-extern glWeightivARBPROC glWeightivARB;\r
-extern glWeightfvARBPROC glWeightfvARB;\r
-extern glWeightdvARBPROC glWeightdvARB;\r
-extern glWeightubvARBPROC glWeightubvARB;\r
-extern glWeightusvARBPROC glWeightusvARB;\r
-extern glWeightuivARBPROC glWeightuivARB;\r
-extern glWeightPointerARBPROC glWeightPointerARB;\r
-extern glVertexBlendARBPROC glVertexBlendARB;\r
-\r
-#endif /* GL_ARB_vertex_blend */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_MULTI_DRAW_ARRAYS----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_multi_draw_arrays\r
-#define GL_EXT_multi_draw_arrays 1\r
-\r
-typedef void (APIENTRY * glMultiDrawArraysEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);\r
-typedef void (APIENTRY * glMultiDrawElementsEXTPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);\r
-\r
-extern glMultiDrawArraysEXTPROC glMultiDrawArraysEXT;\r
-extern glMultiDrawElementsEXTPROC glMultiDrawElementsEXT;\r
-\r
-#endif /* GL_EXT_multi_draw_arrays */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_MATRIX_PALETTE-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_matrix_palette\r
-#define GL_ARB_matrix_palette 1\r
-\r
-#define GL_MATRIX_PALETTE_ARB                                   0x8840\r
-#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB                   0x8841\r
-#define GL_MAX_PALETTE_MATRICES_ARB                             0x8842\r
-#define GL_CURRENT_PALETTE_MATRIX_ARB                           0x8843\r
-#define GL_MATRIX_INDEX_ARRAY_ARB                               0x8844\r
-#define GL_CURRENT_MATRIX_INDEX_ARB                             0x8845\r
-#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB                          0x8846\r
-#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB                          0x8847\r
-#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB                        0x8848\r
-#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB                       0x8849\r
-\r
-typedef void (APIENTRY * glCurrentPaletteMatrixARBPROC) (GLint index);\r
-typedef void (APIENTRY * glMatrixIndexubvARBPROC) (GLint size, GLubyte *indices);\r
-typedef void (APIENTRY * glMatrixIndexusvARBPROC) (GLint size, GLushort *indices);\r
-typedef void (APIENTRY * glMatrixIndexuivARBPROC) (GLint size, GLuint *indices);\r
-typedef void (APIENTRY * glMatrixIndexPointerARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);\r
-\r
-extern glCurrentPaletteMatrixARBPROC glCurrentPaletteMatrixARB;\r
-extern glMatrixIndexubvARBPROC glMatrixIndexubvARB;\r
-extern glMatrixIndexusvARBPROC glMatrixIndexusvARB;\r
-extern glMatrixIndexuivARBPROC glMatrixIndexuivARB;\r
-extern glMatrixIndexPointerARBPROC glMatrixIndexPointerARB;\r
-\r
-#endif /* GL_ARB_matrix_palette */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_VERTEX_SHADER--------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_vertex_shader\r
-#define GL_EXT_vertex_shader 1\r
-\r
-#define GL_VERTEX_SHADER_EXT                                    0x8780\r
-#define GL_VERTEX_SHADER_BINDING_EXT                            0x8781\r
-#define GL_OP_INDEX_EXT                                         0x8782\r
-#define GL_OP_NEGATE_EXT                                        0x8783\r
-#define GL_OP_DOT3_EXT                                          0x8784\r
-#define GL_OP_DOT4_EXT                                          0x8785\r
-#define GL_OP_MUL_EXT                                           0x8786\r
-#define GL_OP_ADD_EXT                                           0x8787\r
-#define GL_OP_MADD_EXT                                          0x8788\r
-#define GL_OP_FRAC_EXT                                          0x8789\r
-#define GL_OP_MAX_EXT                                           0x878A\r
-#define GL_OP_MIN_EXT                                           0x878B\r
-#define GL_OP_SET_GE_EXT                                        0x878C\r
-#define GL_OP_SET_LT_EXT                                        0x878D\r
-#define GL_OP_CLAMP_EXT                                         0x878E\r
-#define GL_OP_FLOOR_EXT                                         0x878F\r
-#define GL_OP_ROUND_EXT                                         0x8790\r
-#define GL_OP_EXP_BASE_2_EXT                                    0x8791\r
-#define GL_OP_LOG_BASE_2_EXT                                    0x8792\r
-#define GL_OP_POWER_EXT                                         0x8793\r
-#define GL_OP_RECIP_EXT                                         0x8794\r
-#define GL_OP_RECIP_SQRT_EXT                                    0x8795\r
-#define GL_OP_SUB_EXT                                           0x8796\r
-#define GL_OP_CROSS_PRODUCT_EXT                                 0x8797\r
-#define GL_OP_MULTIPLY_MATRIX_EXT                               0x8798\r
-#define GL_OP_MOV_EXT                                           0x8799\r
-#define GL_OUTPUT_VERTEX_EXT                                    0x879A\r
-#define GL_OUTPUT_COLOR0_EXT                                    0x879B\r
-#define GL_OUTPUT_COLOR1_EXT                                    0x879C\r
-#define GL_OUTPUT_TEXTURE_COORD0_EXT                            0x879D\r
-#define GL_OUTPUT_TEXTURE_COORD1_EXT                            0x879E\r
-#define GL_OUTPUT_TEXTURE_COORD2_EXT                            0x879F\r
-#define GL_OUTPUT_TEXTURE_COORD3_EXT                            0x87A0\r
-#define GL_OUTPUT_TEXTURE_COORD4_EXT                            0x87A1\r
-#define GL_OUTPUT_TEXTURE_COORD5_EXT                            0x87A2\r
-#define GL_OUTPUT_TEXTURE_COORD6_EXT                            0x87A3\r
-#define GL_OUTPUT_TEXTURE_COORD7_EXT                            0x87A4\r
-#define GL_OUTPUT_TEXTURE_COORD8_EXT                            0x87A5\r
-#define GL_OUTPUT_TEXTURE_COORD9_EXT                            0x87A6\r
-#define GL_OUTPUT_TEXTURE_COORD10_EXT                           0x87A7\r
-#define GL_OUTPUT_TEXTURE_COORD11_EXT                           0x87A8\r
-#define GL_OUTPUT_TEXTURE_COORD12_EXT                           0x87A9\r
-#define GL_OUTPUT_TEXTURE_COORD13_EXT                           0x87AA\r
-#define GL_OUTPUT_TEXTURE_COORD14_EXT                           0x87AB\r
-#define GL_OUTPUT_TEXTURE_COORD15_EXT                           0x87AC\r
-#define GL_OUTPUT_TEXTURE_COORD16_EXT                           0x87AD\r
-#define GL_OUTPUT_TEXTURE_COORD17_EXT                           0x87AE\r
-#define GL_OUTPUT_TEXTURE_COORD18_EXT                           0x87AF\r
-#define GL_OUTPUT_TEXTURE_COORD19_EXT                           0x87B0\r
-#define GL_OUTPUT_TEXTURE_COORD20_EXT                           0x87B1\r
-#define GL_OUTPUT_TEXTURE_COORD21_EXT                           0x87B2\r
-#define GL_OUTPUT_TEXTURE_COORD22_EXT                           0x87B3\r
-#define GL_OUTPUT_TEXTURE_COORD23_EXT                           0x87B4\r
-#define GL_OUTPUT_TEXTURE_COORD24_EXT                           0x87B5\r
-#define GL_OUTPUT_TEXTURE_COORD25_EXT                           0x87B6\r
-#define GL_OUTPUT_TEXTURE_COORD26_EXT                           0x87B7\r
-#define GL_OUTPUT_TEXTURE_COORD27_EXT                           0x87B8\r
-#define GL_OUTPUT_TEXTURE_COORD28_EXT                           0x87B9\r
-#define GL_OUTPUT_TEXTURE_COORD29_EXT                           0x87BA\r
-#define GL_OUTPUT_TEXTURE_COORD30_EXT                           0x87BB\r
-#define GL_OUTPUT_TEXTURE_COORD31_EXT                           0x87BC\r
-#define GL_OUTPUT_FOG_EXT                                       0x87BD\r
-#define GL_SCALAR_EXT                                           0x87BE\r
-#define GL_VECTOR_EXT                                           0x87BF\r
-#define GL_MATRIX_EXT                                           0x87C0\r
-#define GL_VARIANT_EXT                                          0x87C1\r
-#define GL_INVARIANT_EXT                                        0x87C2\r
-#define GL_LOCAL_CONSTANT_EXT                                   0x87C3\r
-#define GL_LOCAL_EXT                                            0x87C4\r
-#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT                   0x87C5\r
-#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT                       0x87C6\r
-#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT                     0x87C7\r
-#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                0x87C8\r
-#define GL_MAX_VERTEX_SHADER_LOCALS_EXT                         0x87C9\r
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT         0x87CA\r
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT             0x87CB\r
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT           0x87CC\r
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT      0x87CD\r
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT               0x87CE\r
-#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT                       0x87CF\r
-#define GL_VERTEX_SHADER_VARIANTS_EXT                           0x87D0\r
-#define GL_VERTEX_SHADER_INVARIANTS_EXT                         0x87D1\r
-#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                    0x87D2\r
-#define GL_VERTEX_SHADER_LOCALS_EXT                             0x87D3\r
-#define GL_VERTEX_SHADER_OPTIMIZED_EXT                          0x87D4\r
-#define GL_X_EXT                                                0x87D5\r
-#define GL_Y_EXT                                                0x87D6\r
-#define GL_Z_EXT                                                0x87D7\r
-#define GL_W_EXT                                                0x87D8\r
-#define GL_NEGATIVE_X_EXT                                       0x87D9\r
-#define GL_NEGATIVE_Y_EXT                                       0x87DA\r
-#define GL_NEGATIVE_Z_EXT                                       0x87DB\r
-#define GL_NEGATIVE_W_EXT                                       0x87DC\r
-#define GL_ZERO_EXT                                             0x87DD\r
-#define GL_ONE_EXT                                              0x87DE\r
-#define GL_NEGATIVE_ONE_EXT                                     0x87DF\r
-#define GL_NORMALIZED_RANGE_EXT                                 0x87E0\r
-#define GL_FULL_RANGE_EXT                                       0x87E1\r
-#define GL_CURRENT_VERTEX_EXT                                   0x87E2\r
-#define GL_MVP_MATRIX_EXT                                       0x87E3\r
-#define GL_VARIANT_VALUE_EXT                                    0x87E4\r
-#define GL_VARIANT_DATATYPE_EXT                                 0x87E5\r
-#define GL_VARIANT_ARRAY_STRIDE_EXT                             0x87E6\r
-#define GL_VARIANT_ARRAY_TYPE_EXT                               0x87E7\r
-#define GL_VARIANT_ARRAY_EXT                                    0x87E8\r
-#define GL_VARIANT_ARRAY_POINTER_EXT                            0x87E9\r
-#define GL_INVARIANT_VALUE_EXT                                  0x87EA\r
-#define GL_INVARIANT_DATATYPE_EXT                               0x87EB\r
-#define GL_LOCAL_CONSTANT_VALUE_EXT                             0x87EC\r
-#define GL_LOCAL_CONSTANT_DATATYPE_EXT                          0x87ED\r
-\r
-typedef void (APIENTRY * glBeginVertexShaderEXTPROC) ();\r
-typedef void (APIENTRY * glEndVertexShaderEXTPROC) ();\r
-typedef void (APIENTRY * glBindVertexShaderEXTPROC) (GLuint id);\r
-typedef GLuint (APIENTRY * glGenVertexShadersEXTPROC) (GLuint range);\r
-typedef void (APIENTRY * glDeleteVertexShaderEXTPROC) (GLuint id);\r
-typedef void (APIENTRY * glShaderOp1EXTPROC) (GLenum op, GLuint res, GLuint arg1);\r
-typedef void (APIENTRY * glShaderOp2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);\r
-typedef void (APIENTRY * glShaderOp3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);\r
-typedef void (APIENTRY * glSwizzleEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);\r
-typedef void (APIENTRY * glWriteMaskEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);\r
-typedef void (APIENTRY * glInsertComponentEXTPROC) (GLuint res, GLuint src, GLuint num);\r
-typedef void (APIENTRY * glExtractComponentEXTPROC) (GLuint res, GLuint src, GLuint num);\r
-typedef GLuint (APIENTRY * glGenSymbolsEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components);\r
-typedef void (APIENTRY * glSetInvariantEXTPROC) (GLuint id, GLenum type, GLvoid *addr);\r
-typedef void (APIENTRY * glSetLocalConstantEXTPROC) (GLuint id, GLenum type, GLvoid *addr);\r
-typedef void (APIENTRY * glVariantbvEXTPROC) (GLuint id, GLbyte *addr);\r
-typedef void (APIENTRY * glVariantsvEXTPROC) (GLuint id, GLshort *addr);\r
-typedef void (APIENTRY * glVariantivEXTPROC) (GLuint id, GLint *addr);\r
-typedef void (APIENTRY * glVariantfvEXTPROC) (GLuint id, GLfloat *addr);\r
-typedef void (APIENTRY * glVariantdvEXTPROC) (GLuint id, GLdouble *addr);\r
-typedef void (APIENTRY * glVariantubvEXTPROC) (GLuint id, GLubyte *addr);\r
-typedef void (APIENTRY * glVariantusvEXTPROC) (GLuint id, GLushort *addr);\r
-typedef void (APIENTRY * glVariantuivEXTPROC) (GLuint id, GLuint *addr);\r
-typedef void (APIENTRY * glVariantPointerEXTPROC) (GLuint id, GLenum type, GLuint stride, GLvoid *addr);\r
-typedef void (APIENTRY * glEnableVariantClientStateEXTPROC) (GLuint id);\r
-typedef void (APIENTRY * glDisableVariantClientStateEXTPROC) (GLuint id);\r
-typedef GLuint (APIENTRY * glBindLightParameterEXTPROC) (GLenum light, GLenum value);\r
-typedef GLuint (APIENTRY * glBindMaterialParameterEXTPROC) (GLenum face, GLenum value);\r
-typedef GLuint (APIENTRY * glBindTexGenParameterEXTPROC) (GLenum unit, GLenum coord, GLenum value);\r
-typedef GLuint (APIENTRY * glBindTextureUnitParameterEXTPROC) (GLenum unit, GLenum value);\r
-typedef GLuint (APIENTRY * glBindParameterEXTPROC) (GLenum value);\r
-typedef GLboolean (APIENTRY * glIsVariantEnabledEXTPROC) (GLuint id, GLenum cap);\r
-typedef void (APIENTRY * glGetVariantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);\r
-typedef void (APIENTRY * glGetVariantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);\r
-typedef void (APIENTRY * glGetVariantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);\r
-typedef void (APIENTRY * glGetVariantPointervEXTPROC) (GLuint id, GLenum value, GLvoid **data);\r
-typedef void (APIENTRY * glGetInvariantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);\r
-typedef void (APIENTRY * glGetInvariantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);\r
-typedef void (APIENTRY * glGetInvariantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);\r
-typedef void (APIENTRY * glGetLocalConstantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);\r
-typedef void (APIENTRY * glGetLocalConstantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);\r
-typedef void (APIENTRY * glGetLocalConstantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);\r
-\r
-extern glBeginVertexShaderEXTPROC glBeginVertexShaderEXT;\r
-extern glEndVertexShaderEXTPROC glEndVertexShaderEXT;\r
-extern glBindVertexShaderEXTPROC glBindVertexShaderEXT;\r
-extern glGenVertexShadersEXTPROC glGenVertexShadersEXT;\r
-extern glDeleteVertexShaderEXTPROC glDeleteVertexShaderEXT;\r
-extern glShaderOp1EXTPROC glShaderOp1EXT;\r
-extern glShaderOp2EXTPROC glShaderOp2EXT;\r
-extern glShaderOp3EXTPROC glShaderOp3EXT;\r
-extern glSwizzleEXTPROC glSwizzleEXT;\r
-extern glWriteMaskEXTPROC glWriteMaskEXT;\r
-extern glInsertComponentEXTPROC glInsertComponentEXT;\r
-extern glExtractComponentEXTPROC glExtractComponentEXT;\r
-extern glGenSymbolsEXTPROC glGenSymbolsEXT;\r
-extern glSetInvariantEXTPROC glSetInvariantEXT;\r
-extern glSetLocalConstantEXTPROC glSetLocalConstantEXT;\r
-extern glVariantbvEXTPROC glVariantbvEXT;\r
-extern glVariantsvEXTPROC glVariantsvEXT;\r
-extern glVariantivEXTPROC glVariantivEXT;\r
-extern glVariantfvEXTPROC glVariantfvEXT;\r
-extern glVariantdvEXTPROC glVariantdvEXT;\r
-extern glVariantubvEXTPROC glVariantubvEXT;\r
-extern glVariantusvEXTPROC glVariantusvEXT;\r
-extern glVariantuivEXTPROC glVariantuivEXT;\r
-extern glVariantPointerEXTPROC glVariantPointerEXT;\r
-extern glEnableVariantClientStateEXTPROC glEnableVariantClientStateEXT;\r
-extern glDisableVariantClientStateEXTPROC glDisableVariantClientStateEXT;\r
-extern glBindLightParameterEXTPROC glBindLightParameterEXT;\r
-extern glBindMaterialParameterEXTPROC glBindMaterialParameterEXT;\r
-extern glBindTexGenParameterEXTPROC glBindTexGenParameterEXT;\r
-extern glBindTextureUnitParameterEXTPROC glBindTextureUnitParameterEXT;\r
-extern glBindParameterEXTPROC glBindParameterEXT;\r
-extern glIsVariantEnabledEXTPROC glIsVariantEnabledEXT;\r
-extern glGetVariantBooleanvEXTPROC glGetVariantBooleanvEXT;\r
-extern glGetVariantIntegervEXTPROC glGetVariantIntegervEXT;\r
-extern glGetVariantFloatvEXTPROC glGetVariantFloatvEXT;\r
-extern glGetVariantPointervEXTPROC glGetVariantPointervEXT;\r
-extern glGetInvariantBooleanvEXTPROC glGetInvariantBooleanvEXT;\r
-extern glGetInvariantIntegervEXTPROC glGetInvariantIntegervEXT;\r
-extern glGetInvariantFloatvEXTPROC glGetInvariantFloatvEXT;\r
-extern glGetLocalConstantBooleanvEXTPROC glGetLocalConstantBooleanvEXT;\r
-extern glGetLocalConstantIntegervEXTPROC glGetLocalConstantIntegervEXT;\r
-extern glGetLocalConstantFloatvEXTPROC glGetLocalConstantFloatvEXT;\r
-\r
-#endif /* GL_EXT_vertex_shader */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATI_ENVMAP_BUMPMAP-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATI_envmap_bumpmap\r
-#define GL_ATI_envmap_bumpmap 1\r
-\r
-#define GL_BUMP_ROT_MATRIX_ATI                                  0x8775\r
-#define GL_BUMP_ROT_MATRIX_SIZE_ATI                             0x8776\r
-#define GL_BUMP_NUM_TEX_UNITS_ATI                               0x8777\r
-#define GL_BUMP_TEX_UNITS_ATI                                   0x8778\r
-#define GL_DUDV_ATI                                             0x8779\r
-#define GL_DU8DV8_ATI                                           0x877A\r
-#define GL_BUMP_ENVMAP_ATI                                      0x877B\r
-#define GL_BUMP_TARGET_ATI                                      0x877C\r
-\r
-typedef void (APIENTRY * glTexBumpParameterivATIPROC) (GLenum pname, GLint *param);\r
-typedef void (APIENTRY * glTexBumpParameterfvATIPROC) (GLenum pname, GLfloat *param);\r
-typedef void (APIENTRY * glGetTexBumpParameterivATIPROC) (GLenum pname, GLint *param);\r
-typedef void (APIENTRY * glGetTexBumpParameterfvATIPROC) (GLenum pname, GLfloat *param);\r
-\r
-extern glTexBumpParameterivATIPROC glTexBumpParameterivATI;\r
-extern glTexBumpParameterfvATIPROC glTexBumpParameterfvATI;\r
-extern glGetTexBumpParameterivATIPROC glGetTexBumpParameterivATI;\r
-extern glGetTexBumpParameterfvATIPROC glGetTexBumpParameterfvATI;\r
-\r
-#endif /* GL_ATI_envmap_bumpmap */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATI_FRAGMENT_SHADER------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATI_fragment_shader\r
-#define GL_ATI_fragment_shader 1\r
-\r
-#define GL_FRAGMENT_SHADER_ATI                                  0x8920\r
-#define GL_REG_0_ATI                                            0x8921\r
-#define GL_REG_1_ATI                                            0x8922\r
-#define GL_REG_2_ATI                                            0x8923\r
-#define GL_REG_3_ATI                                            0x8924\r
-#define GL_REG_4_ATI                                            0x8925\r
-#define GL_REG_5_ATI                                            0x8926\r
-#define GL_REG_6_ATI                                            0x8927\r
-#define GL_REG_7_ATI                                            0x8928\r
-#define GL_REG_8_ATI                                            0x8929\r
-#define GL_REG_9_ATI                                            0x892A\r
-#define GL_REG_10_ATI                                           0x892B\r
-#define GL_REG_11_ATI                                           0x892C\r
-#define GL_REG_12_ATI                                           0x892D\r
-#define GL_REG_13_ATI                                           0x892E\r
-#define GL_REG_14_ATI                                           0x892F\r
-#define GL_REG_15_ATI                                           0x8930\r
-#define GL_REG_16_ATI                                           0x8931\r
-#define GL_REG_17_ATI                                           0x8932\r
-#define GL_REG_18_ATI                                           0x8933\r
-#define GL_REG_19_ATI                                           0x8934\r
-#define GL_REG_20_ATI                                           0x8935\r
-#define GL_REG_21_ATI                                           0x8936\r
-#define GL_REG_22_ATI                                           0x8937\r
-#define GL_REG_23_ATI                                           0x8938\r
-#define GL_REG_24_ATI                                           0x8939\r
-#define GL_REG_25_ATI                                           0x893A\r
-#define GL_REG_26_ATI                                           0x893B\r
-#define GL_REG_27_ATI                                           0x893C\r
-#define GL_REG_28_ATI                                           0x893D\r
-#define GL_REG_29_ATI                                           0x893E\r
-#define GL_REG_30_ATI                                           0x893F\r
-#define GL_REG_31_ATI                                           0x8940\r
-#define GL_CON_0_ATI                                            0x8941\r
-#define GL_CON_1_ATI                                            0x8942\r
-#define GL_CON_2_ATI                                            0x8943\r
-#define GL_CON_3_ATI                                            0x8944\r
-#define GL_CON_4_ATI                                            0x8945\r
-#define GL_CON_5_ATI                                            0x8946\r
-#define GL_CON_6_ATI                                            0x8947\r
-#define GL_CON_7_ATI                                            0x8948\r
-#define GL_CON_8_ATI                                            0x8949\r
-#define GL_CON_9_ATI                                            0x894A\r
-#define GL_CON_10_ATI                                           0x894B\r
-#define GL_CON_11_ATI                                           0x894C\r
-#define GL_CON_12_ATI                                           0x894D\r
-#define GL_CON_13_ATI                                           0x894E\r
-#define GL_CON_14_ATI                                           0x894F\r
-#define GL_CON_15_ATI                                           0x8950\r
-#define GL_CON_16_ATI                                           0x8951\r
-#define GL_CON_17_ATI                                           0x8952\r
-#define GL_CON_18_ATI                                           0x8953\r
-#define GL_CON_19_ATI                                           0x8954\r
-#define GL_CON_20_ATI                                           0x8955\r
-#define GL_CON_21_ATI                                           0x8956\r
-#define GL_CON_22_ATI                                           0x8957\r
-#define GL_CON_23_ATI                                           0x8958\r
-#define GL_CON_24_ATI                                           0x8959\r
-#define GL_CON_25_ATI                                           0x895A\r
-#define GL_CON_26_ATI                                           0x895B\r
-#define GL_CON_27_ATI                                           0x895C\r
-#define GL_CON_28_ATI                                           0x895D\r
-#define GL_CON_29_ATI                                           0x895E\r
-#define GL_CON_30_ATI                                           0x895F\r
-#define GL_CON_31_ATI                                           0x8960\r
-#define GL_MOV_ATI                                              0x8961\r
-#define GL_ADD_ATI                                              0x8963\r
-#define GL_MUL_ATI                                              0x8964\r
-#define GL_SUB_ATI                                              0x8965\r
-#define GL_DOT3_ATI                                             0x8966\r
-#define GL_DOT4_ATI                                             0x8967\r
-#define GL_MAD_ATI                                              0x8968\r
-#define GL_LERP_ATI                                             0x8969\r
-#define GL_CND_ATI                                              0x896A\r
-#define GL_CND0_ATI                                             0x896B\r
-#define GL_DOT2_ADD_ATI                                         0x896C\r
-#define GL_SECONDARY_INTERPOLATOR_ATI                           0x896D\r
-#define GL_NUM_FRAGMENT_REGISTERS_ATI                           0x896E\r
-#define GL_NUM_FRAGMENT_CONSTANTS_ATI                           0x896F\r
-#define GL_NUM_PASSES_ATI                                       0x8970\r
-#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI                        0x8971\r
-#define GL_NUM_INSTRUCTIONS_TOTAL_ATI                           0x8972\r
-#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI                0x8973\r
-#define GL_NUM_LOOPBACK_COMPONENTS_ATI                          0x8974\r
-#define GL_COLOR_ALPHA_PAIRING_ATI                              0x8975\r
-#define GL_SWIZZLE_STR_ATI                                      0x8976\r
-#define GL_SWIZZLE_STQ_ATI                                      0x8977\r
-#define GL_SWIZZLE_STR_DR_ATI                                   0x8978\r
-#define GL_SWIZZLE_STQ_DQ_ATI                                   0x8979\r
-#define GL_SWIZZLE_STRQ_ATI                                     0x897A\r
-#define GL_SWIZZLE_STRQ_DQ_ATI                                  0x897B\r
-#define GL_RED_BIT_ATI                                          0x00000001\r
-#define GL_GREEN_BIT_ATI                                        0x00000002\r
-#define GL_BLUE_BIT_ATI                                         0x00000004\r
-#define GL_2X_BIT_ATI                                           0x00000001\r
-#define GL_4X_BIT_ATI                                           0x00000002\r
-#define GL_8X_BIT_ATI                                           0x00000004\r
-#define GL_HALF_BIT_ATI                                         0x00000008\r
-#define GL_QUARTER_BIT_ATI                                      0x00000010\r
-#define GL_EIGHTH_BIT_ATI                                       0x00000020\r
-#define GL_SATURATE_BIT_ATI                                     0x00000040\r
-#define GL_COMP_BIT_ATI                                         0x00000002\r
-#define GL_NEGATE_BIT_ATI                                       0x00000004\r
-#define GL_BIAS_BIT_ATI                                         0x00000008\r
-\r
-typedef GLuint (APIENTRY * glGenFragmentShadersATIPROC) (GLuint range);\r
-typedef void (APIENTRY * glBindFragmentShaderATIPROC) (GLuint id);\r
-typedef void (APIENTRY * glDeleteFragmentShaderATIPROC) (GLuint id);\r
-typedef void (APIENTRY * glBeginFragmentShaderATIPROC) (GLvoid);\r
-typedef void (APIENTRY * glEndFragmentShaderATIPROC) (GLvoid);\r
-typedef void (APIENTRY * glPassTexCoordATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);\r
-typedef void (APIENTRY * glSampleMapATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);\r
-typedef void (APIENTRY * glColorFragmentOp1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);\r
-typedef void (APIENTRY * glColorFragmentOp2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);\r
-typedef void (APIENTRY * glColorFragmentOp3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);\r
-typedef void (APIENTRY * glAlphaFragmentOp1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);\r
-typedef void (APIENTRY * glAlphaFragmentOp2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);\r
-typedef void (APIENTRY * glAlphaFragmentOp3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);\r
-typedef void (APIENTRY * glSetFragmentShaderConstantATIPROC) (GLuint dst, const GLfloat *value);\r
-\r
-extern glGenFragmentShadersATIPROC glGenFragmentShadersATI;\r
-extern glBindFragmentShaderATIPROC glBindFragmentShaderATI;\r
-extern glDeleteFragmentShaderATIPROC glDeleteFragmentShaderATI;\r
-extern glBeginFragmentShaderATIPROC glBeginFragmentShaderATI;\r
-extern glEndFragmentShaderATIPROC glEndFragmentShaderATI;\r
-extern glPassTexCoordATIPROC glPassTexCoordATI;\r
-extern glSampleMapATIPROC glSampleMapATI;\r
-extern glColorFragmentOp1ATIPROC glColorFragmentOp1ATI;\r
-extern glColorFragmentOp2ATIPROC glColorFragmentOp2ATI;\r
-extern glColorFragmentOp3ATIPROC glColorFragmentOp3ATI;\r
-extern glAlphaFragmentOp1ATIPROC glAlphaFragmentOp1ATI;\r
-extern glAlphaFragmentOp2ATIPROC glAlphaFragmentOp2ATI;\r
-extern glAlphaFragmentOp3ATIPROC glAlphaFragmentOp3ATI;\r
-extern glSetFragmentShaderConstantATIPROC glSetFragmentShaderConstantATI;\r
-\r
-#endif /* GL_ATI_fragment_shader */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATI_TEXTURE_MIRROR_ONCE--------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATI_texture_mirror_once\r
-#define GL_ATI_texture_mirror_once 1\r
-\r
-#define GL_MIRROR_CLAMP_ATI                                     0x8742\r
-#define GL_MIRROR_CLAMP_TO_EDGE_ATI                             0x8743\r
-\r
-#endif\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATI_ELEMENT_ARRAY--------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATI_element_array\r
-#define GL_ATI_element_array 1\r
-\r
-#define GL_ELEMENT_ARRAY_ATI                                    0x8768\r
-#define GL_ELEMENT_ARRAY_TYPE_ATI                               0x8769\r
-#define GL_ELEMENT_ARRAY_POINTER_ATI                            0x876A\r
-\r
-typedef void (APIENTRY * glElementPointerATIPROC) (GLenum type, const GLvoid *pointer);\r
-typedef void (APIENTRY * glDrawElementArrayATIPROC) (GLenum mode, GLsizei count);\r
-typedef void (APIENTRY * glDrawRangeElementArrayATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);\r
-\r
-extern glElementPointerATIPROC glElementPointerATI;\r
-extern glDrawElementArrayATIPROC glDrawElementArrayATI;\r
-extern glDrawRangeElementArrayATIPROC glDrawRangeElementArrayATI;\r
-\r
-#endif /* GL_ATI_element_array */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATI_VERTEX_STREAMS-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATI_vertex_streams \r
-#define GL_ATI_vertex_streams 1\r
-\r
-#define GL_MAX_VERTEX_STREAMS_ATI                               0x876B  \r
-#define GL_VERTEX_SOURCE_ATI                                    0x876C\r
-#define GL_VERTEX_STREAM0_ATI                                   0x876D\r
-#define GL_VERTEX_STREAM1_ATI                                   0x876E\r
-#define GL_VERTEX_STREAM2_ATI                                   0x876F\r
-#define GL_VERTEX_STREAM3_ATI                                   0x8770\r
-#define GL_VERTEX_STREAM4_ATI                                   0x8771\r
-#define GL_VERTEX_STREAM5_ATI                                   0x8772\r
-#define GL_VERTEX_STREAM6_ATI                                   0x8773\r
-#define GL_VERTEX_STREAM7_ATI                                   0x8774\r
-\r
-typedef void (APIENTRY * glClientActiveVertexStreamATIPROC) (GLenum stream);\r
-typedef void (APIENTRY * glVertexBlendEnviATIPROC) (GLenum pname, GLint param);\r
-typedef void (APIENTRY * glVertexBlendEnvfATIPROC) (GLenum pname, GLfloat param);\r
-typedef void (APIENTRY * glVertexStream2sATIPROC) (GLenum stream, GLshort x, GLshort y);\r
-typedef void (APIENTRY * glVertexStream2svATIPROC) (GLenum stream, const GLshort *v);\r
-typedef void (APIENTRY * glVertexStream2iATIPROC) (GLenum stream, GLint x, GLint y);\r
-typedef void (APIENTRY * glVertexStream2ivATIPROC) (GLenum stream, const GLint *v);\r
-typedef void (APIENTRY * glVertexStream2fATIPROC) (GLenum stream, GLfloat x, GLfloat y);\r
-typedef void (APIENTRY * glVertexStream2fvATIPROC) (GLenum stream, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexStream2dATIPROC) (GLenum stream, GLdouble x, GLdouble y);\r
-typedef void (APIENTRY * glVertexStream2dvATIPROC) (GLenum stream, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexStream3sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);\r
-typedef void (APIENTRY * glVertexStream3svATIPROC) (GLenum stream, const GLshort *v);\r
-typedef void (APIENTRY * glVertexStream3iATIPROC) (GLenum stream, GLint x, GLint y, GLint z);\r
-typedef void (APIENTRY * glVertexStream3ivATIPROC) (GLenum stream, const GLint *v);\r
-typedef void (APIENTRY * glVertexStream3fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);\r
-typedef void (APIENTRY * glVertexStream3fvATIPROC) (GLenum stream, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexStream3dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);\r
-typedef void (APIENTRY * glVertexStream3dvATIPROC) (GLenum stream, const GLdouble *v);\r
-typedef void (APIENTRY * glVertexStream4sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);\r
-typedef void (APIENTRY * glVertexStream4svATIPROC) (GLenum stream, const GLshort *v);\r
-typedef void (APIENTRY * glVertexStream4iATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);\r
-typedef void (APIENTRY * glVertexStream4ivATIPROC) (GLenum stream, const GLint *v);\r
-typedef void (APIENTRY * glVertexStream4fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);\r
-typedef void (APIENTRY * glVertexStream4fvATIPROC) (GLenum stream, const GLfloat *v);\r
-typedef void (APIENTRY * glVertexStream4dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);\r
-typedef void (APIENTRY * glVertexStream4dvATIPROC) (GLenum stream, const GLdouble *v);\r
-typedef void (APIENTRY * glNormalStream3bATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z);\r
-typedef void (APIENTRY * glNormalStream3bvATIPROC) (GLenum stream, const GLbyte *v);\r
-typedef void (APIENTRY * glNormalStream3sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);\r
-typedef void (APIENTRY * glNormalStream3svATIPROC) (GLenum stream, const GLshort *v);\r
-typedef void (APIENTRY * glNormalStream3iATIPROC) (GLenum stream, GLint x, GLint y, GLint z);\r
-typedef void (APIENTRY * glNormalStream3ivATIPROC) (GLenum stream, const GLint *v);\r
-typedef void (APIENTRY * glNormalStream3fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);\r
-typedef void (APIENTRY * glNormalStream3fvATIPROC) (GLenum stream, const GLfloat *v);\r
-typedef void (APIENTRY * glNormalStream3dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);\r
-typedef void (APIENTRY * glNormalStream3dvATIPROC) (GLenum stream, const GLdouble *v);\r
-\r
-extern glClientActiveVertexStreamATIPROC glClientActiveVertexStreamATI;\r
-extern glVertexBlendEnviATIPROC glVertexBlendEnviATI;\r
-extern glVertexBlendEnvfATIPROC glVertexBlendEnvfATI;\r
-extern glVertexStream2sATIPROC glVertexStream2sATI;\r
-extern glVertexStream2svATIPROC glVertexStream2svATI;\r
-extern glVertexStream2iATIPROC glVertexStream2iATI;\r
-extern glVertexStream2ivATIPROC glVertexStream2ivATI;\r
-extern glVertexStream2fATIPROC glVertexStream2fATI;\r
-extern glVertexStream2fvATIPROC glVertexStream2fvATI;\r
-extern glVertexStream2dATIPROC glVertexStream2dATI;\r
-extern glVertexStream2dvATIPROC glVertexStream2dvATI;\r
-extern glVertexStream3sATIPROC glVertexStream3sATI;\r
-extern glVertexStream3svATIPROC glVertexStream3svATI;\r
-extern glVertexStream3iATIPROC glVertexStream3iATI;\r
-extern glVertexStream3ivATIPROC glVertexStream3ivATI;\r
-extern glVertexStream3fATIPROC glVertexStream3fATI;\r
-extern glVertexStream3fvATIPROC glVertexStream3fvATI;\r
-extern glVertexStream3dATIPROC glVertexStream3dATI;\r
-extern glVertexStream3dvATIPROC glVertexStream3dvATI;\r
-extern glVertexStream4sATIPROC glVertexStream4sATI;\r
-extern glVertexStream4svATIPROC glVertexStream4svATI;\r
-extern glVertexStream4iATIPROC glVertexStream4iATI;\r
-extern glVertexStream4ivATIPROC glVertexStream4ivATI;\r
-extern glVertexStream4fATIPROC glVertexStream4fATI;\r
-extern glVertexStream4fvATIPROC glVertexStream4fvATI;\r
-extern glVertexStream4dATIPROC glVertexStream4dATI;\r
-extern glVertexStream4dvATIPROC glVertexStream4dvATI;\r
-extern glNormalStream3bATIPROC glNormalStream3bATI;\r
-extern glNormalStream3bvATIPROC glNormalStream3bvATI;\r
-extern glNormalStream3sATIPROC glNormalStream3sATI;\r
-extern glNormalStream3svATIPROC glNormalStream3svATI;\r
-extern glNormalStream3iATIPROC glNormalStream3iATI;\r
-extern glNormalStream3ivATIPROC glNormalStream3ivATI;\r
-extern glNormalStream3fATIPROC glNormalStream3fATI;\r
-extern glNormalStream3fvATIPROC glNormalStream3fvATI;\r
-extern glNormalStream3dATIPROC glNormalStream3dATI;\r
-extern glNormalStream3dvATIPROC glNormalStream3dvATI;\r
-\r
-#endif /* GL_ATI_vertex_streams */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATI_VERTEX_ARRAY_OBJECT--------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATI_vertex_array_object\r
-#define GL_ATI_vertex_array_object 1\r
-\r
-#define GL_STATIC_ATI                                           0x8760\r
-#define GL_DYNAMIC_ATI                                          0x8761\r
-#define GL_PRESERVE_ATI                                         0x8762\r
-#define GL_DISCARD_ATI                                          0x8763\r
-#define GL_OBJECT_BUFFER_SIZE_ATI                               0x8764\r
-#define GL_OBJECT_BUFFER_USAGE_ATI                              0x8765\r
-#define GL_ARRAY_OBJECT_BUFFER_ATI                              0x8766\r
-#define GL_ARRAY_OBJECT_OFFSET_ATI                              0x8767\r
-\r
-typedef GLuint (APIENTRY * glNewObjectBufferATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);\r
-typedef GLboolean (APIENTRY * glIsObjectBufferATIPROC) (GLuint buffer);\r
-typedef void (APIENTRY * glUpdateObjectBufferATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);\r
-typedef void (APIENTRY * glGetObjectBufferfvATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetObjectBufferivATIPROC) (GLuint buffer, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glFreeObjectBufferATIPROC) (GLuint buffer);\r
-typedef void (APIENTRY * glArrayObjectATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);\r
-typedef void (APIENTRY * glGetArrayObjectfvATIPROC) (GLenum array, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetArrayObjectivATIPROC) (GLenum array, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glVariantArrayObjectATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);\r
-typedef void (APIENTRY * glGetVariantArrayObjectfvATIPROC) (GLuint id, GLenum pname, GLfloat *params);\r
-typedef void (APIENTRY * glGetVariantArrayObjectivATIPROC) (GLuint id, GLenum pname, GLint *params);\r
-\r
-extern glNewObjectBufferATIPROC glNewObjectBufferATI;\r
-extern glIsObjectBufferATIPROC glIsObjectBufferATI;\r
-extern glUpdateObjectBufferATIPROC glUpdateObjectBufferATI;\r
-extern glGetObjectBufferfvATIPROC glGetObjectBufferfvATI;\r
-extern glGetObjectBufferivATIPROC glGetObjectBufferivATI;\r
-extern glFreeObjectBufferATIPROC glFreeObjectBufferATI;\r
-extern glArrayObjectATIPROC glArrayObjectATI;\r
-extern glGetArrayObjectfvATIPROC glGetArrayObjectfvATI;\r
-extern glGetArrayObjectivATIPROC glGetArrayObjectivATI;\r
-extern glVariantArrayObjectATIPROC glVariantArrayObjectATI;\r
-extern glGetVariantArrayObjectfvATIPROC glGetVariantArrayObjectfvATI;\r
-extern glGetVariantArrayObjectivATIPROC glGetVariantArrayObjectivATI;\r
-\r
-#endif /* GL_ATI_vertex_array_object */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------HP_OCCLUSION_TEST--------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_HP_occlusion_test\r
-#define GL_HP_occlusion_test 1\r
-\r
-#define GL_OCCLUSION_TEST_HP                                    0x8165;\r
-#define GL_OCCLUSION_TEST_RESULT_HP                             0x8166;\r
-\r
-#endif /* GL_HP_occlusion_test */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATIX_POINT_SPRITES-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATIX_point_sprites\r
-#define GL_ATIX_point_sprites 1\r
-\r
-#define GL_TEXTURE_POINT_MODE_ATIX                              0x60b0\r
-#define        GL_TEXTURE_POINT_ONE_COORD_ATIX                         0x60b1\r
-#define        GL_TEXTURE_POINT_SPRITE_ATIX                            0x60b2\r
-#define GL_POINT_SPRITE_CULL_MODE_ATIX                          0x60b3\r
-#define GL_POINT_SPRITE_CULL_CENTER_ATIX                        0x60b4\r
-#define GL_POINT_SPRITE_CULL_CLIP_ATIX                          0x60b5\r
-\r
-#endif /* GL_ATIX_point_sprites */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ATIX_TEXTURE_ENV_ROUTE---------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ATIX_texture_env_route\r
-#define GL_ATIX_texture_env_route 1\r
-\r
-#define GL_SECONDARY_COLOR_ATIX                                 0x8747\r
-#define GL_TEXTURE_OUTPUT_RGB_ATIX                              0x8748\r
-#define GL_TEXTURE_OUTPUT_ALPHA_ATIX                            0x8749\r
-\r
-#endif /* GL_ATIX_texture_env_route */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_DEPTH_CLAMP-----------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_depth_clamp\r
-#define GL_NV_depth_clamp 1\r
-\r
-#define GL_DEPTH_CLAMP_NV                                       0x864F\r
-\r
-#endif /* GL_NV_depth_clamp */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_OCCLUSION_QUERY-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_occlusion_query\r
-#define GL_NV_occlusion_query 1\r
-\r
-#ifndef GL_HP_occlusion_test\r
-#define GL_OCCLUSION_TEST_HP                                    0x8165\r
-#define GL_OCCLUSION_TEST_RESULT_HP                             0x8166\r
-#endif /* GL_HP_occlusion_test */\r
-#define GL_PIXEL_COUNTER_BITS_NV                                0x8864\r
-#define GL_CURRENT_OCCLUSION_QUERY_ID_NV                        0x8865\r
-#define GL_PIXEL_COUNT_NV                                       0x8866\r
-#define GL_PIXEL_COUNT_AVAILABLE_NV                             0x8867\r
-\r
-typedef void (APIENTRY * glGenOcclusionQueriesNVPROC) (GLsizei n, GLuint *ids);\r
-typedef void (APIENTRY * glDeleteOcclusionQueriesNVPROC) (GLsizei n, const GLuint *ids);\r
-typedef GLboolean (APIENTRY * glIsOcclusionQueryNVPROC) (GLuint id);\r
-typedef void (APIENTRY * glBeginOcclusionQueryNVPROC) (GLuint id);\r
-typedef void (APIENTRY * glEndOcclusionQueryNVPROC) (void);\r
-typedef void (APIENTRY * glGetOcclusionQueryivNVPROC) (GLuint id, GLenum pname, GLint *params);\r
-typedef void (APIENTRY * glGetOcclusionQueryuivNVPROC) (GLuint id, GLenum pname, GLuint *params);\r
-\r
-extern glGenOcclusionQueriesNVPROC glGenOcclusionQueriesNV;\r
-extern glDeleteOcclusionQueriesNVPROC glDeleteOcclusionQueriesNV;\r
-extern glIsOcclusionQueryNVPROC glIsOcclusionQueryNV;\r
-extern glBeginOcclusionQueryNVPROC glBeginOcclusionQueryNV;\r
-extern glEndOcclusionQueryNVPROC glEndOcclusionQueryNV;\r
-extern glGetOcclusionQueryivNVPROC glGetOcclusionQueryivNV;\r
-extern glGetOcclusionQueryuivNVPROC glGetOcclusionQueryuivNV;\r
-\r
-#endif /* GL_NV_occlusion_query */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_POINT_SPRITE----------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_point_sprite\r
-#define GL_NV_point_sprite 1\r
-\r
-#define GL_POINT_SPRITE_NV                                      0x8861\r
-#define GL_COORD_REPLACE_NV                                     0x8862\r
-#define GL_POINT_SPRITE_R_MODE_NV                               0x8863\r
-\r
-typedef void (APIENTRY * glPointParameteriNVPROC) (GLenum pname, GLint param);\r
-typedef void (APIENTRY * glPointParameterivNVPROC) (GLenum pname, const GLint *params);\r
-\r
-extern glPointParameteriNVPROC glPointParameteriNV;\r
-extern glPointParameterivNVPROC glPointParameterivNV;\r
-\r
-#endif /* GL_NV_point_sprite */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_TEXTURE_SHADER3-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_texture_shader3\r
-#define GL_NV_texture_shader3 1\r
-\r
-#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV                      0x8850\r
-#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV                0x8851\r
-#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV               0x8852\r
-#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV         0x8853\r
-#define GL_OFFSET_HILO_TEXTURE_2D_NV                            0x8854\r
-#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV                     0x8855\r
-#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV                 0x8856\r
-#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV          0x8857\r
-#define GL_DEPENDENT_HILO_TEXTURE_2D_NV                         0x8858\r
-#define GL_DEPENDENT_RGB_TEXTURE_3D_NV                          0x8859\r
-#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV                    0x885A\r
-#define GL_DOT_PRODUCT_PASS_THROUGH_NV                          0x885B\r
-#define GL_DOT_PRODUCT_TEXTURE_1D_NV                            0x885C\r
-#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV                  0x885D\r
-#define GL_HILO8_NV                                             0x885E\r
-#define GL_SIGNED_HILO8_NV                                      0x885F\r
-#define GL_FORCE_BLUE_TO_ONE_NV                                 0x8860\r
-\r
-#endif /* GL_NV_texture_shader3 */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------NV_VERTEX_PROGRAM1_1-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_NV_vertex_program1_1\r
-#define GL_NV_vertex_program1_1\r
-\r
-#endif /* GL_NV_vertex_program1_1 */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_TEXTURE_MIRRORED_REPEAT----------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_texture_mirrored_repeat\r
-#define GL_ARB_texture_mirrored_repeat 1\r
-\r
-#define GL_GL_MIRRORED_REPEAT_ARB                               0x8370\r
-\r
-#endif /* GL_ARB_texture_mirrored_repeat */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_SHADOW---------------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_shadow\r
-#define GL_ARB_shadow 1\r
-\r
-#define GL_TEXTURE_COMPARE_MODE_ARB                             0x884C\r
-#define GL_TEXTURE_COMPARE_FUNC_ARB                             0x884D\r
-#define GL_COMPARE_R_TO_TEXTURE_ARB                             0x884E\r
-\r
-#endif /* GL_ARB_shadow */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_SHADOW_AMBIENT-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_shadow_ambient\r
-#define GL_ARB_shadow_ambient 1\r
-\r
-#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB                       0x80BF \r
-\r
-#endif /* GL_ARB_shadow_ambient */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_DEPTH_TEXTURE--------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_depth_texture\r
-#define GL_ARB_depth_texture 1\r
-\r
-#define GL_DEPTH_COMPONENT16_ARB                                0x81A5\r
-#define GL_DEPTH_COMPONENT24_ARB                                0x81A6\r
-#define GL_DEPTH_COMPONENT32_ARB                                0x81A7\r
-#define GL_TEXTURE_DEPTH_SIZE_ARB                               0x884A\r
-#define GL_DEPTH_TEXTURE_MODE_ARB                               0x884B\r
-\r
-#endif /* GL_ARB_depth_texture */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------ARB_WINDOW_POS-----------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_ARB_window_pos\r
-#define GL_ARB_window_pos 1\r
-\r
-typedef void (APIENTRY * glWindowPos2dARBPROC) (GLdouble x, GLdouble y);\r
-typedef void (APIENTRY * glWindowPos2fARBPROC) (GLfloat x, GLfloat y);\r
-typedef void (APIENTRY * glWindowPos2iARBPROC) (GLint x, GLint y);\r
-typedef void (APIENTRY * glWindowPos2sARBPROC) (GLshort x, GLshort y);\r
-typedef void (APIENTRY * glWindowPos2dvARBPROC) (const GLdouble *p);\r
-typedef void (APIENTRY * glWindowPos2fvARBPROC) (const GLfloat *p);\r
-typedef void (APIENTRY * glWindowPos2ivARBPROC) (const GLint *p);\r
-typedef void (APIENTRY * glWindowPos2svARBPROC) (const GLshort *p);\r
-typedef void (APIENTRY * glWindowPos3dARBPROC) (GLdouble x, GLdouble y, GLdouble z);\r
-typedef void (APIENTRY * glWindowPos3fARBPROC) (GLfloat x, GLfloat y, GLfloat z);\r
-typedef void (APIENTRY * glWindowPos3iARBPROC) (GLint x, GLint y, GLint z);\r
-typedef void (APIENTRY * glWindowPos3sARBPROC) (GLshort x, GLshort y, GLshort z);\r
-typedef void (APIENTRY * glWindowPos3dvARBPROC) (const GLdouble *p);\r
-typedef void (APIENTRY * glWindowPos3fvARBPROC) (const GLfloat *p);\r
-typedef void (APIENTRY * glWindowPos3ivARBPROC) (const GLint *p);\r
-typedef void (APIENTRY * glWindowPos3svARBPROC) (const GLshort *p);\r
-\r
-extern glWindowPos2dARBPROC glWindowPos2dARB;\r
-extern glWindowPos2fARBPROC glWindowPos2fARB;\r
-extern glWindowPos2iARBPROC glWindowPos2iARB;\r
-extern glWindowPos2sARBPROC glWindowPos2sARB;\r
-extern glWindowPos2dvARBPROC glWindowPos2dvARB;\r
-extern glWindowPos2fvARBPROC glWindowPos2fvARB;\r
-extern glWindowPos2ivARBPROC glWindowPos2ivARB;\r
-extern glWindowPos2svARBPROC glWindowPos2svARB;\r
-extern glWindowPos3dARBPROC glWindowPos3dARB;\r
-extern glWindowPos3fARBPROC glWindowPos3fARB;\r
-extern glWindowPos3iARBPROC glWindowPos3iARB;\r
-extern glWindowPos3sARBPROC glWindowPos3sARB;\r
-extern glWindowPos3dvARBPROC glWindowPos3dvARB;\r
-extern glWindowPos3fvARBPROC glWindowPos3fvARB;\r
-extern glWindowPos3ivARBPROC glWindowPos3ivARB;\r
-extern glWindowPos3svARBPROC glWindowPos3svARB;\r
-\r
-#endif /* GL_ARB_window_pos */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------EXT_SHADOW_FUNCS---------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef GL_EXT_shadow_funcs\r
-#define GL_EXT_shadow_funcs 1\r
-\r
-#endif /* GL_EXT_shadow_funcs */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------END GL EXTENSIONS--------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL EXTENSIONS HERE------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifdef WIN32\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_EXT_EXTENSION_STRING-------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_EXT_extensions_string\r
-#define WGL_EXT_extensions_string 1\r
-\r
-typedef const char* (APIENTRY * wglGetExtensionsStringEXTPROC) ();\r
-\r
-extern wglGetExtensionsStringEXTPROC wglGetExtensionsStringEXT;\r
-\r
-#endif /* WGL_EXT_extensions_string */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_ARB_BUFFER_REGION----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_ARB_buffer_region\r
-#define WGL_ARB_buffer_region 1\r
-\r
-#define WGL_FRONT_COLOR_BUFFER_BIT_ARB                          0x00000001\r
-#define WGL_BACK_COLOR_BUFFER_BIT_ARB                           0x00000002\r
-#define WGL_DEPTH_BUFFER_BIT_ARB                                0x00000004\r
-#define WGL_STENCIL_BUFFER_BIT_ARB                              0x00000008\r
-\r
-typedef HANDLE (APIENTRY * wglCreateBufferRegionARBPROC) (HDC hDC, int iLayerPlane, UINT uType);\r
-typedef VOID (APIENTRY * wglDeleteBufferRegionARBPROC) (HANDLE hRegion);\r
-typedef BOOL (APIENTRY * wglSaveBufferRegionARBPROC) (HANDLE hRegion, int x, int y, int width, int height);\r
-typedef BOOL (APIENTRY * wglRestoreBufferRegionARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);\r
-\r
-extern wglCreateBufferRegionARBPROC wglCreateBufferRegionARB;\r
-extern wglDeleteBufferRegionARBPROC wglDeleteBufferRegionARB;\r
-extern wglSaveBufferRegionARBPROC wglSaveBufferRegionARB;\r
-extern wglRestoreBufferRegionARBPROC wglRestoreBufferRegionARB;\r
-\r
-#endif /* WGL_ARB_buffer_region */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_ARB_EXTENSION_STRING-------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_ARB_extensions_string\r
-#define WGL_ARB_extensions_string 1\r
-\r
-typedef const char* (APIENTRY * wglGetExtensionsStringARBPROC) (HDC hdc);\r
-\r
-extern wglGetExtensionsStringARBPROC wglGetExtensionsStringARB;\r
-\r
-#endif /* WGL_ARB_extensions_string */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_ARB_PBUFFER----------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_ARB_pbuffer\r
-#define WGL_ARB_pbuffer 1\r
-\r
-#define WGL_DRAW_TO_PBUFFER_ARB                                 0x202D\r
-#define WGL_DRAW_TO_PBUFFER_ARB                                 0x202D\r
-#define WGL_MAX_PBUFFER_PIXELS_ARB                              0x202E\r
-#define WGL_MAX_PBUFFER_WIDTH_ARB                               0x202F\r
-#define WGL_MAX_PBUFFER_HEIGHT_ARB                              0x2030\r
-#define WGL_PBUFFER_LARGEST_ARB                                 0x2033\r
-#define WGL_PBUFFER_WIDTH_ARB                                   0x2034\r
-#define WGL_PBUFFER_HEIGHT_ARB                                  0x2035\r
-#define WGL_PBUFFER_LOST_ARB                                    0x2036\r
-\r
-DECLARE_HANDLE(HPBUFFERARB);\r
-\r
-typedef HPBUFFERARB (APIENTRY * wglCreatePbufferARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);\r
-typedef HDC (APIENTRY * wglGetPbufferDCARBPROC) (HPBUFFERARB hPbuffer);\r
-typedef int (APIENTRY * wglReleasePbufferDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);\r
-typedef BOOL (APIENTRY * wglDestroyPbufferARBPROC) (HPBUFFERARB hPbuffer);\r
-typedef BOOL (APIENTRY * wglQueryPbufferARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);\r
-\r
-extern wglCreatePbufferARBPROC wglCreatePbufferARB;\r
-extern wglGetPbufferDCARBPROC wglGetPbufferDCARB;\r
-extern wglReleasePbufferDCARBPROC wglReleasePbufferDCARB;\r
-extern wglDestroyPbufferARBPROC wglDestroyPbufferARB;\r
-extern wglQueryPbufferARBPROC wglQueryPbufferARB;\r
-\r
-#endif /* WGL_ARB_pbuffer */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_ARB_PIXEL_FORMAT-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_ARB_pixel_format\r
-#define WGL_ARB_pixel_format 1\r
-\r
-#define WGL_NUMBER_PIXEL_FORMATS_ARB                            0x2000\r
-#define WGL_DRAW_TO_WINDOW_ARB                                  0x2001\r
-#define WGL_DRAW_TO_BITMAP_ARB                                  0x2002\r
-#define WGL_ACCELERATION_ARB                                    0x2003\r
-#define WGL_NEED_PALETTE_ARB                                    0x2004\r
-#define WGL_NEED_SYSTEM_PALETTE_ARB                             0x2005\r
-#define WGL_SWAP_LAYER_BUFFERS_ARB                              0x2006\r
-#define WGL_SWAP_METHOD_ARB                                     0x2007\r
-#define WGL_NUMBER_OVERLAYS_ARB                                 0x2008\r
-#define WGL_NUMBER_UNDERLAYS_ARB                                0x2009\r
-#define WGL_TRANSPARENT_ARB                                     0x200A\r
-#define WGL_TRANSPARENT_RED_VALUE_ARB                           0x2037\r
-#define WGL_TRANSPARENT_GREEN_VALUE_ARB                         0x2038\r
-#define WGL_TRANSPARENT_BLUE_VALUE_ARB                          0x2039\r
-#define WGL_TRANSPARENT_ALPHA_VALUE_ARB                         0x203A\r
-#define WGL_TRANSPARENT_INDEX_VALUE_ARB                         0x203B\r
-#define WGL_SHARE_DEPTH_ARB                                     0x200C\r
-#define WGL_SHARE_STENCIL_ARB                                   0x200D\r
-#define WGL_SHARE_ACCUM_ARB                                     0x200E\r
-#define WGL_SUPPORT_GDI_ARB                                     0x200F\r
-#define WGL_SUPPORT_OPENGL_ARB                                  0x2010\r
-#define WGL_DOUBLE_BUFFER_ARB                                   0x2011\r
-#define WGL_STEREO_ARB                                          0x2012\r
-#define WGL_PIXEL_TYPE_ARB                                      0x2013\r
-#define WGL_COLOR_BITS_ARB                                      0x2014\r
-#define WGL_RED_BITS_ARB                                        0x2015\r
-#define WGL_RED_SHIFT_ARB                                       0x2016\r
-#define WGL_GREEN_BITS_ARB                                      0x2017\r
-#define WGL_GREEN_SHIFT_ARB                                     0x2018\r
-#define WGL_BLUE_BITS_ARB                                       0x2019\r
-#define WGL_BLUE_SHIFT_ARB                                      0x201A\r
-#define WGL_ALPHA_BITS_ARB                                      0x201B\r
-#define WGL_ALPHA_SHIFT_ARB                                     0x201C\r
-#define WGL_ACCUM_BITS_ARB                                      0x201D\r
-#define WGL_ACCUM_RED_BITS_ARB                                  0x201E\r
-#define WGL_ACCUM_GREEN_BITS_ARB                                0x201F\r
-#define WGL_ACCUM_BLUE_BITS_ARB                                 0x2020\r
-#define WGL_ACCUM_ALPHA_BITS_ARB                                0x2021\r
-#define WGL_DEPTH_BITS_ARB                                      0x2022\r
-#define WGL_STENCIL_BITS_ARB                                    0x2023\r
-#define WGL_AUX_BUFFERS_ARB                                     0x2024\r
-#define WGL_NO_ACCELERATION_ARB                                 0x2025\r
-#define WGL_GENERIC_ACCELERATION_ARB                            0x2026\r
-#define WGL_FULL_ACCELERATION_ARB                               0x2027\r
-#define WGL_SWAP_EXCHANGE_ARB                                   0x2028\r
-#define WGL_SWAP_COPY_ARB                                       0x2029\r
-#define WGL_SWAP_UNDEFINED_ARB                                  0x202A\r
-#define WGL_TYPE_RGBA_ARB                                       0x202B\r
-#define WGL_TYPE_COLORINDEX_ARB                                 0x202C\r
-\r
-typedef BOOL (APIENTRY * wglGetPixelFormatAttribivARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);\r
-typedef BOOL (APIENTRY * wglGetPixelFormatAttribfvARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);\r
-typedef BOOL (APIENTRY * wglChoosePixelFormatARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);\r
-\r
-extern wglGetPixelFormatAttribivARBPROC wglGetPixelFormatAttribivARB;\r
-extern wglGetPixelFormatAttribfvARBPROC wglGetPixelFormatAttribfvARB;\r
-extern wglChoosePixelFormatARBPROC wglChoosePixelFormatARB;\r
-\r
-#endif /* WGL_ARB_pixel_format */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_ARB_RENDER_TEXTURE---------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_ARB_render_texture\r
-#define WGL_ARB_render_texture 1\r
-\r
-#define WGL_BIND_TO_TEXTURE_RGB_ARB                             0x2070\r
-#define WGL_BIND_TO_TEXTURE_RGBA_ARB                            0x2071\r
-#define WGL_TEXTURE_FORMAT_ARB                                  0x2072\r
-#define WGL_TEXTURE_TARGET_ARB                                  0x2073\r
-#define WGL_MIPMAP_TEXTURE_ARB                                  0x2074\r
-#define WGL_TEXTURE_RGB_ARB                                     0x2075\r
-#define WGL_TEXTURE_RGBA_ARB                                    0x2076\r
-#define WGL_NO_TEXTURE_ARB                                      0x2077\r
-#define WGL_TEXTURE_CUBE_MAP_ARB                                0x2078\r
-#define WGL_TEXTURE_1D_ARB                                      0x2079\r
-#define WGL_TEXTURE_2D_ARB                                      0x207A\r
-#define WGL_NO_TEXTURE_ARB                                      0x2077\r
-#define WGL_MIPMAP_LEVEL_ARB                                    0x207B\r
-#define WGL_CUBE_MAP_FACE_ARB                                   0x207C\r
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB                     0x207D\r
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB                     0x207E\r
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB                     0x207F\r
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB                     0x2080\r
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB                     0x2081\r
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB                     0x2082\r
-#define WGL_FRONT_LEFT_ARB                                      0x2083\r
-#define WGL_FRONT_RIGHT_ARB                                     0x2084\r
-#define WGL_BACK_LEFT_ARB                                       0x2085\r
-#define WGL_BACK_RIGHT_ARB                                      0x2086\r
-#define WGL_AUX0_ARB                                            0x2087\r
-#define WGL_AUX1_ARB                                            0x2088\r
-#define WGL_AUX2_ARB                                            0x2089\r
-#define WGL_AUX3_ARB                                            0x208A\r
-#define WGL_AUX4_ARB                                            0x208B\r
-#define WGL_AUX5_ARB                                            0x208C\r
-#define WGL_AUX6_ARB                                            0x208D\r
-#define WGL_AUX7_ARB                                            0x208E\r
-#define WGL_AUX8_ARB                                            0x208F\r
-#define WGL_AUX9_ARB                                            0x2090\r
-\r
-typedef BOOL (APIENTRY * wglBindTexImageARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);\r
-typedef BOOL (APIENTRY * wglReleaseTexImageARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);\r
-typedef BOOL (APIENTRY * wglSetPbufferAttribARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);\r
-\r
-extern wglBindTexImageARBPROC wglBindTexImageARB;\r
-extern wglReleaseTexImageARBPROC wglReleaseTexImageARB;\r
-extern wglSetPbufferAttribARBPROC wglSetPbufferAttribARB;\r
-\r
-#endif /*WGL_ARB_render_texture */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_EXT_SWAP_CONTROL-----------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_EXT_swap_control\r
-#define WGL_EXT_swap_control 1\r
-\r
-typedef BOOL (APIENTRY * wglSwapIntervalEXTPROC) (int interval);\r
-typedef int (APIENTRY * wglGetSwapIntervalEXTPROC) (void);\r
-\r
-extern wglSwapIntervalEXTPROC wglSwapIntervalEXT;\r
-extern wglGetSwapIntervalEXTPROC wglGetSwapIntervalEXT;\r
-\r
-#endif /* WGL_EXT_swap_control */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_ARB_MAKE_CURRENT_READ------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_ARB_make_current_read\r
-#define WGL_ARB_make_current_read 1\r
-\r
-#define ERROR_INVALID_PIXEL_TYPE_ARB                            0x2043\r
-#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB                 0x2054\r
-\r
-typedef BOOL (APIENTRY * wglMakeContextCurrentARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);\r
-typedef HDC (APIENTRY * wglGetCurrentReadDCARBPROC) (void);\r
-\r
-extern wglMakeContextCurrentARBPROC wglMakeContextCurrentARB;\r
-extern wglGetCurrentReadDCARBPROC wglGetCurrentReadDCARB;\r
-\r
-#endif /* WGL_ARB_make_current_read */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------WGL_ARB_MULTISAMPLE------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#ifndef WGL_ARB_multisample\r
-#define WGL_ARB_multisample 1\r
-\r
-#define WGL_SAMPLE_BUFFERS_ARB                                  0x2041\r
-#define WGL_SAMPLES_ARB                                         0x2042\r
-\r
-#endif /* WGL_ARB_multisample */\r
-\r
-/*-------------------------------------------------------------------*/\r
-/*------------END WGL EXTENSIONS-------------------------------------*/\r
-/*-------------------------------------------------------------------*/\r
-\r
-#endif /* WIN32 */\r
-\r
-/* helper stuff */\r
-\r
-/* I use int here because C does not know bool */\r
-\r
-#ifdef WIN32\r
-\r
-struct WGLExtensionTypes\r
-{\r
-    int EXT_extensions_string;\r
-    int ARB_buffer_region;\r
-    int ARB_extensions_string;\r
-    int ARB_pbuffer;\r
-    int ARB_pixel_format;\r
-    int ARB_render_texture;\r
-    int EXT_swap_control;\r
-    int ARB_make_current_read;\r
-    int ARB_multisample;\r
-};\r
-\r
-#endif /* WIN32 */\r
-\r
-struct ExtensionTypes\r
-{\r
-#ifdef WIN32 /* WGL extensions */   \r
-    struct WGLExtensionTypes wgl;\r
-#endif /* WIN32 */\r
-    int ARB_imaging;\r
-    int ARB_matrix_palette;\r
-    int ARB_multisample;\r
-    int ARB_multitexture;\r
-    int ARB_point_parameters;\r
-    int ARB_texture_compression;\r
-    int ARB_texture_env_add;\r
-    int ARB_texture_env_dot3;\r
-    int ARB_texture_env_combine;\r
-    int ARB_texture_env_crossbar;\r
-    int ARB_texture_border_clamp;\r
-    int ARB_texture_cube_map;\r
-    int ARB_transpose_matrix;\r
-    int ARB_vertex_blend;\r
-    int EXT_abgr;\r
-    int EXT_compiled_vertex_array;\r
-    int EXT_fog_coord;\r
-    int EXT_multi_draw_arrays;\r
-    int EXT_point_parameters;\r
-    int EXT_secondary_color;\r
-    int EXT_stencil_wrap;\r
-    int EXT_texture_filter_anisotropic;\r
-    int EXT_texture_lod_bias;\r
-    int EXT_vertex_shader;\r
-    int EXT_vertex_weighting;\r
-    int ATI_element_array;\r
-    int ATI_envmap_bumpmap;\r
-    int ATI_fragment_shader;\r
-    int ATI_pn_triangles;\r
-    int ATI_texture_mirror_once;\r
-    int ATI_vertex_array_object;\r
-    int ATI_vertex_streams;\r
-    int ATIX_point_sprites;\r
-    int ATIX_texture_env_route;\r
-    int HP_occlusion_test;\r
-    int NV_blend_square;\r
-    int NV_copy_depth_to_color;\r
-    int NV_depth_clamp;\r
-    int NV_evaluators;\r
-    int NV_fence;\r
-    int NV_fog_distance;\r
-    int NV_light_max_exponent;\r
-    int NV_occlusion_query;\r
-    int NV_packed_depth_stencil;\r
-    int NV_point_sprite;\r
-    int NV_register_combiners;\r
-    int NV_register_combiners2;\r
-    int NV_texgen_reflection;\r
-    int NV_texture_env_combine4;\r
-    int NV_texture_rectangle;\r
-    int NV_texture_shader;\r
-    int NV_texture_shader2;\r
-    int NV_texture_shader3;\r
-    int NV_vertex_array_range;\r
-    int NV_vertex_array_range2;\r
-    int NV_vertex_program;\r
-    int NV_vertex_program1_1;\r
-    int SGIS_generate_mipmap;\r
-    int SGIX_shadow;\r
-    int SGIX_depth_texture;\r
-    int OpenGL12;\r
-    int OpenGL13;\r
-    int ARB_texture_mirrored_repeat;\r
-    int ARB_depth_texture;\r
-    int ARB_shadow_ambient;\r
-    int ARB_shadow;\r
-    int ARB_window_pos;\r
-    int EXT_shadow_funcs;\r
-};\r
-\r
-extern struct ExtensionTypes SupportedExtensions;\r
-\r
-/* initializes everything, call this right after the rc is created. the function returns 0 if successful */\r
-int glInitialize();\r
-\r
-int QueryExtension(const char *name);\r
-\r
-/* WGL stuff */\r
-\r
-#ifdef WIN32\r
-\r
-/* sets the DC */\r
-\r
-void _wglSetDC(HDC dc);\r
-\r
-#endif /* WIN32 */\r
-\r
-/* helpers end */\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif /* __EXTGL_H__ */
\ No newline at end of file
+/* 
+    Copyright (c) 2001-2002 Lev Povalahev
+  
+    levp@gmx.net
+
+    http://www.uni-karlsruhe.de/~uli2/
+*/
+                
+#ifndef __EXTGL_H__
+#define __EXTGL_H__
+
+// Ok to include <simgear_config.h> here because extgl.h is not an
+// installed header.  If it were an installed header, this would be very bad.
+#ifdef HAVE_CONFIG_H
+#  include <simgear_config.h>
+#endif
+
+/*-----------------------------------------*/
+/*-----------------------------------------*/
+
+//#if defined(WIN32) && !defined(APIENTRY)
+//#define WIN32_LEAN_AND_MEAN 1
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GL_VERSION_1_2                              1
+#define GL_VERSION_1_3                              1
+#define GL_ARB_imaging                              1
+
+/* 1.2 and 1.3 enumerants */
+
+#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
+
+#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
+#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_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
+
+#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
+
+#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
+
+#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
+
+#define GL_TRANSPOSE_MODELVIEW_MATRIX                           0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX                          0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX                             0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX                               0x84E6
+
+#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
+
+#define GL_DOT3_RGB                                             0x86AE
+#define GL_DOT3_RGBA                                            0x86AF
+
+#define GL_CLAMP_TO_BORDER                                      0x812D
+
+
+/* 1.2 functions */
+
+typedef void (APIENTRY * glDrawRangeElementsPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
+typedef void (APIENTRY * glTexImage3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
+typedef void (APIENTRY * glTexSubImage3DPROC) (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 (APIENTRY * glCopyTexSubImage3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height );
+typedef void (APIENTRY * glColorTablePROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table );
+typedef void (APIENTRY * glColorSubTablePROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data );
+typedef void (APIENTRY * glColorTableParameterivPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * glColorTableParameterfvPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * glCopyColorSubTablePROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width );
+typedef void (APIENTRY * glCopyColorTablePROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width );
+typedef void (APIENTRY * glGetColorTablePROC) (GLenum target, GLenum format, GLenum type, GLvoid *table );
+typedef void (APIENTRY * glGetColorTableParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRY * glGetColorTableParameterivPROC) (GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRY * glBlendEquationPROC) (GLenum mode );
+typedef void (APIENTRY * glBlendColorPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
+typedef void (APIENTRY * glHistogramPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink );
+typedef void (APIENTRY * glResetHistogramPROC) (GLenum target );
+typedef void (APIENTRY * glGetHistogramPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values );
+typedef void (APIENTRY * glGetHistogramParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRY * glGetHistogramParameterivPROC) (GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRY * glMinmaxPROC) (GLenum target, GLenum internalformat, GLboolean sink );
+typedef void (APIENTRY * glResetMinmaxPROC) (GLenum target );
+typedef void (APIENTRY * glGetMinmaxPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values );
+typedef void (APIENTRY * glGetMinmaxParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRY * glGetMinmaxParameterivPROC) (GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRY * glConvolutionFilter1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image );
+typedef void (APIENTRY * glConvolutionFilter2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image );
+typedef void (APIENTRY * glConvolutionParameterfPROC) (GLenum target, GLenum pname, GLfloat params );
+typedef void (APIENTRY * glConvolutionParameterfvPROC) (GLenum target, GLenum pname, const GLfloat *params );
+typedef void (APIENTRY * glConvolutionParameteriPROC) (GLenum target, GLenum pname, GLint params );
+typedef void (APIENTRY * glConvolutionParameterivPROC) (GLenum target, GLenum pname, const GLint *params );
+typedef void (APIENTRY * glCopyConvolutionFilter1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width );
+typedef void (APIENTRY * glCopyConvolutionFilter2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRY * glGetConvolutionFilterPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image );
+typedef void (APIENTRY * glGetConvolutionParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRY * glGetConvolutionParameterivPROC) (GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRY * glSeparableFilter2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column );
+typedef void (APIENTRY * glGetSeparableFilterPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span );
+
+/* 1.3 functions */
+
+typedef void (APIENTRY * glActiveTexturePROC) (GLenum texture );
+typedef void (APIENTRY * glClientActiveTexturePROC) (GLenum texture );
+typedef void (APIENTRY * glCompressedTexImage1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexImage2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexImage3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage3DPROC) (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 (APIENTRY * glGetCompressedTexImagePROC) (GLenum target, GLint lod, GLvoid *img );
+typedef void (APIENTRY * glMultiTexCoord1dPROC) (GLenum target, GLdouble s );
+typedef void (APIENTRY * glMultiTexCoord1dvPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord1fPROC) (GLenum target, GLfloat s );
+typedef void (APIENTRY * glMultiTexCoord1fvPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord1iPROC) (GLenum target, GLint s );
+typedef void (APIENTRY * glMultiTexCoord1ivPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord1sPROC) (GLenum target, GLshort s );
+typedef void (APIENTRY * glMultiTexCoord1svPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord2dPROC) (GLenum target, GLdouble s, GLdouble t );
+typedef void (APIENTRY * glMultiTexCoord2dvPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord2fPROC) (GLenum target, GLfloat s, GLfloat t );
+typedef void (APIENTRY * glMultiTexCoord2fvPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord2iPROC) (GLenum target, GLint s, GLint t );
+typedef void (APIENTRY * glMultiTexCoord2ivPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord2sPROC) (GLenum target, GLshort s, GLshort t );
+typedef void (APIENTRY * glMultiTexCoord2svPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord3dPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r );
+typedef void (APIENTRY * glMultiTexCoord3dvPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord3fPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r );
+typedef void (APIENTRY * glMultiTexCoord3fvPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord3iPROC) (GLenum target, GLint s, GLint t, GLint r );
+typedef void (APIENTRY * glMultiTexCoord3ivPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord3sPROC) (GLenum target, GLshort s, GLshort t, GLshort r );
+typedef void (APIENTRY * glMultiTexCoord3svPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord4dPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );
+typedef void (APIENTRY * glMultiTexCoord4dvPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord4fPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
+typedef void (APIENTRY * glMultiTexCoord4fvPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord4iPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q );
+typedef void (APIENTRY * glMultiTexCoord4ivPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord4sPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );
+typedef void (APIENTRY * glMultiTexCoord4svPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glLoadTransposeMatrixdPROC) (const GLdouble m[16] );
+typedef void (APIENTRY * glLoadTransposeMatrixfPROC) (const GLfloat m[16] );
+typedef void (APIENTRY * glMultTransposeMatrixdPROC) (const GLdouble m[16] );
+typedef void (APIENTRY * glMultTransposeMatrixfPROC) (const GLfloat m[16] );
+typedef void (APIENTRY * glSampleCoveragePROC) (GLclampf value, GLboolean invert );
+
+extern glBlendColorPROC glBlendColor;
+extern glBlendEquationPROC glBlendEquation;
+extern glDrawRangeElementsPROC glDrawRangeElements;
+extern glColorTablePROC glColorTable;
+extern glColorTableParameterfvPROC glColorTableParameterfv;
+extern glColorTableParameterivPROC glColorTableParameteriv;
+extern glCopyColorTablePROC glCopyColorTable;
+extern glGetColorTablePROC glGetColorTable;
+extern glGetColorTableParameterfvPROC glGetColorTableParameterfv;
+extern glGetColorTableParameterivPROC glGetColorTableParameteriv;
+extern glColorSubTablePROC glColorSubTable;
+extern glCopyColorSubTablePROC glCopyColorSubTable;
+extern glConvolutionFilter1DPROC glConvolutionFilter1D;
+extern glConvolutionFilter2DPROC glConvolutionFilter2D;
+extern glConvolutionParameterfPROC glConvolutionParameterf;
+extern glConvolutionParameterfvPROC glConvolutionParameterfv;
+extern glConvolutionParameteriPROC glConvolutionParameteri;
+extern glConvolutionParameterivPROC glConvolutionParameteriv;
+extern glCopyConvolutionFilter1DPROC glCopyConvolutionFilter1D;
+extern glCopyConvolutionFilter2DPROC glCopyConvolutionFilter2D;
+extern glGetConvolutionFilterPROC glGetConvolutionFilter;
+extern glGetConvolutionParameterfvPROC glGetConvolutionParameterfv;
+extern glGetConvolutionParameterivPROC glGetConvolutionParameteriv;
+extern glGetSeparableFilterPROC glGetSeparableFilter;
+extern glSeparableFilter2DPROC glSeparableFilter2D;
+extern glGetHistogramPROC glGetHistogram;
+extern glGetHistogramParameterfvPROC glGetHistogramParameterfv;
+extern glGetHistogramParameterivPROC glGetHistogramParameteriv;
+extern glGetMinmaxPROC glGetMinmax;
+extern glGetMinmaxParameterfvPROC glGetMinmaxParameterfv;
+extern glGetMinmaxParameterivPROC glGetMinmaxParameteriv;
+extern glHistogramPROC glHistogram;
+extern glMinmaxPROC glMinmax;
+extern glResetHistogramPROC glResetHistogram;
+extern glResetMinmaxPROC glResetMinmax;
+extern glTexImage3DPROC glTexImage3D;
+extern glTexSubImage3DPROC glTexSubImage3D;
+extern glCopyTexSubImage3DPROC glCopyTexSubImage3D;
+
+/* 1.3 */
+
+extern glActiveTexturePROC glActiveTexture;
+extern glClientActiveTexturePROC glClientActiveTexture;
+extern glMultiTexCoord1dPROC glMultiTexCoord1d;
+extern glMultiTexCoord1dvPROC glMultiTexCoord1dv;
+extern glMultiTexCoord1fPROC glMultiTexCoord1f;
+extern glMultiTexCoord1fvPROC glMultiTexCoord1fv;
+extern glMultiTexCoord1iPROC glMultiTexCoord1i;
+extern glMultiTexCoord1ivPROC glMultiTexCoord1iv;
+extern glMultiTexCoord1sPROC glMultiTexCoord1s;
+extern glMultiTexCoord1svPROC glMultiTexCoord1sv;
+extern glMultiTexCoord2dPROC glMultiTexCoord2d;
+extern glMultiTexCoord2dvPROC glMultiTexCoord2dv;
+extern glMultiTexCoord2fPROC glMultiTexCoord2f;
+extern glMultiTexCoord2fvPROC glMultiTexCoord2fv;
+extern glMultiTexCoord2iPROC glMultiTexCoord2i;
+extern glMultiTexCoord2ivPROC glMultiTexCoord2iv;
+extern glMultiTexCoord2sPROC glMultiTexCoord2s;
+extern glMultiTexCoord2svPROC glMultiTexCoord2sv;
+extern glMultiTexCoord3dPROC glMultiTexCoord3d;
+extern glMultiTexCoord3dvPROC glMultiTexCoord3dv;
+extern glMultiTexCoord3fPROC glMultiTexCoord3f;
+extern glMultiTexCoord3fvPROC glMultiTexCoord3fv;
+extern glMultiTexCoord3iPROC glMultiTexCoord3i;
+extern glMultiTexCoord3ivPROC glMultiTexCoord3iv;
+extern glMultiTexCoord3sPROC glMultiTexCoord3s;
+extern glMultiTexCoord3svPROC glMultiTexCoord3sv;
+extern glMultiTexCoord4dPROC glMultiTexCoord4d;
+extern glMultiTexCoord4dvPROC glMultiTexCoord4dv;
+extern glMultiTexCoord4fPROC glMultiTexCoord4f;
+extern glMultiTexCoord4fvPROC glMultiTexCoord4fv;
+extern glMultiTexCoord4iPROC glMultiTexCoord4i;
+extern glMultiTexCoord4ivPROC glMultiTexCoord4iv;
+extern glMultiTexCoord4sPROC glMultiTexCoord4s;
+extern glMultiTexCoord4svPROC glMultiTexCoord4sv;
+extern glLoadTransposeMatrixfPROC glLoadTransposeMatrixf;
+extern glLoadTransposeMatrixdPROC glLoadTransposeMatrixd;
+extern glMultTransposeMatrixfPROC glMultTransposeMatrixf;
+extern glMultTransposeMatrixdPROC glMultTransposeMatrixd;
+extern glCompressedTexImage3DPROC glCompressedTexImage3D;
+extern glCompressedTexImage2DPROC glCompressedTexImage2D;
+extern glCompressedTexImage1DPROC glCompressedTexImage1D;
+extern glCompressedTexSubImage3DPROC glCompressedTexSubImage3D;
+extern glCompressedTexSubImage2DPROC glCompressedTexSubImage2D;
+extern glCompressedTexSubImage1DPROC glCompressedTexSubImage1D;
+extern glGetCompressedTexImagePROC glGetCompressedTexImage;
+extern glSampleCoveragePROC glSampleCoverage;
+
+/*-------------------------------------------------------------------*/
+/*------------EXTENSIONS---------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_MULTITEXTURE---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#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
+
+extern glActiveTexturePROC glActiveTextureARB;
+extern glClientActiveTexturePROC glClientActiveTextureARB;
+extern glMultiTexCoord1dPROC glMultiTexCoord1dARB;
+extern glMultiTexCoord1dvPROC glMultiTexCoord1dvARB;
+extern glMultiTexCoord1fPROC glMultiTexCoord1fARB;
+extern glMultiTexCoord1fvPROC glMultiTexCoord1fvARB;
+extern glMultiTexCoord1iPROC glMultiTexCoord1iARB;
+extern glMultiTexCoord1ivPROC glMultiTexCoord1ivARB;
+extern glMultiTexCoord1sPROC glMultiTexCoord1sARB;
+extern glMultiTexCoord1svPROC glMultiTexCoord1svARB;
+extern glMultiTexCoord2dPROC glMultiTexCoord2dARB;
+extern glMultiTexCoord2dvPROC glMultiTexCoord2dvARB;
+extern glMultiTexCoord2fPROC glMultiTexCoord2fARB;
+extern glMultiTexCoord2fvPROC glMultiTexCoord2fvARB;
+extern glMultiTexCoord2iPROC glMultiTexCoord2iARB;
+extern glMultiTexCoord2ivPROC glMultiTexCoord2ivARB;
+extern glMultiTexCoord2sPROC glMultiTexCoord2sARB;
+extern glMultiTexCoord2svPROC glMultiTexCoord2svARB;
+extern glMultiTexCoord3dPROC glMultiTexCoord3dARB;
+extern glMultiTexCoord3dvPROC glMultiTexCoord3dvARB;
+extern glMultiTexCoord3fPROC glMultiTexCoord3fARB;
+extern glMultiTexCoord3fvPROC glMultiTexCoord3fvARB;
+extern glMultiTexCoord3iPROC glMultiTexCoord3iARB;
+extern glMultiTexCoord3ivPROC glMultiTexCoord3ivARB;
+extern glMultiTexCoord3sPROC glMultiTexCoord3sARB;
+extern glMultiTexCoord3svPROC glMultiTexCoord3svARB;
+extern glMultiTexCoord4dPROC glMultiTexCoord4dARB;
+extern glMultiTexCoord4dvPROC glMultiTexCoord4dvARB;
+extern glMultiTexCoord4fPROC glMultiTexCoord4fARB;
+extern glMultiTexCoord4fvPROC glMultiTexCoord4fvARB;
+extern glMultiTexCoord4iPROC glMultiTexCoord4iARB;
+extern glMultiTexCoord4ivPROC glMultiTexCoord4ivARB;
+extern glMultiTexCoord4sPROC glMultiTexCoord4sARB;
+extern glMultiTexCoord4svPROC glMultiTexCoord4svARB;
+
+#endif /* GL_ARB_multitexture */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TRANSPOSE_MATRIX-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_transpose_matrix
+#define GL_ARB_transpose_matrix 1
+
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB                       0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB                      0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB                         0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB                           0x84E6
+
+extern glLoadTransposeMatrixfPROC glLoadTransposeMatrixfARB;
+extern glLoadTransposeMatrixdPROC glLoadTransposeMatrixdARB;
+extern glMultTransposeMatrixfPROC glMultTransposeMatrixfARB;
+extern glMultTransposeMatrixdPROC glMultTransposeMatrixdARB;
+
+#endif /* GL_ARB_transpose_matrix */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_COMPRESSION--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_compression
+#define GL_ARB_texture_compression 1
+
+#define GL_COMPRESSED_ALPHA_ARB                                 0x84E9
+#define GL_COMPRESSED_LUMINANCE_ARB                             0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB                       0x84EB
+#define GL_COMPRESSED_INTENSITY_ARB                             0x84EC
+#define GL_COMPRESSED_RGB_ARB                                   0x84ED
+#define GL_COMPRESSED_RGBA_ARB                                  0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT_ARB                         0x84EF
+#define GL_TEXTURE_IMAGE_SIZE_ARB                               0x86A0
+#define GL_TEXTURE_COMPRESSED_ARB                               0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB                   0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB                       0x86A3
+
+extern glCompressedTexImage3DPROC glCompressedTexImage3DARB;
+extern glCompressedTexImage2DPROC glCompressedTexImage2DARB;
+extern glCompressedTexImage1DPROC glCompressedTexImage1DARB; 
+extern glCompressedTexSubImage3DPROC glCompressedTexSubImage3DARB;
+extern glCompressedTexSubImage2DPROC glCompressedTexSubImage2DARB;
+extern glCompressedTexSubImage1DPROC glCompressedTexSubImage1DARB;
+extern glGetCompressedTexImagePROC glGetCompressedTexImageARB;
+
+#endif /* GL_ARB_texture_compression */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_CUBE_MAP-------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_cube_map
+#define GL_ARB_texture_cube_map 1
+
+#define GL_NORMAL_MAP_ARB                                       0x8511
+#define GL_REFLECTION_MAP_ARB                                   0x8512
+#define GL_TEXTURE_CUBE_MAP_ARB                                 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB                         0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB                      0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB                      0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB                      0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB                      0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB                      0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB                      0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB                           0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB                        0x851C
+
+#endif /* GL_ARB_texture_cube_map */
+
+/*-------------------------------------------------------------------*/
+/*------------SGIX_SHADOW--------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_SGIX_shadow
+#define GL_SGIX_shadow 1
+
+#define GL_TEXTURE_COMPARE_SGIX                                 0x819A
+#define GL_TEXTURE_COMPARE_OPERATOR_SGIX                        0x819B
+#define GL_TEXTURE_LEQUAL_R_SGIX                                0x819C
+#define GL_TEXTURE_GEQUAL_R_SGIX                                0x819D
+
+#endif /* GL_SGIX_shadow */
+
+/*-------------------------------------------------------------------*/
+/*------------SGIX_DEPTH_TEXTURE-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_SGIX_depth_texture
+#define GL_SGIX_depth_texture 1
+
+#define GL_DEPTH_COMPONENT16_SGIX                               0x81A5
+#define GL_DEPTH_COMPONENT24_SGIX                               0x81A6
+#define GL_DEPTH_COMPONENT32_SGIX                               0x81A7
+
+#endif /* GL_SGIX_depth_texture */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_COMPILED_VERTEX_ARRAY------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_compiled_vertex_array
+#define GL_EXT_compiled_vertex_array 1
+
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT                         0x81A8
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT                         0x81A9
+
+typedef void (APIENTRY * glLockArraysEXTPROC) (GLint first, GLsizei count);
+typedef void (APIENTRY * glUnlockArraysEXTPROC) ();
+
+extern glLockArraysEXTPROC glLockArraysEXT;
+extern glUnlockArraysEXTPROC glUnlockArraysEXT;
+
+#endif /* GL_EXT_compiled_vertex_array */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_ENV_COMBINE--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_env_combine
+#define GL_ARB_texture_env_combine 1
+
+#define GL_COMBINE_ARB                                          0x8570
+#define GL_COMBINE_RGB_ARB                                      0x8571
+#define GL_COMBINE_ALPHA_ARB                                    0x8572
+#define GL_RGB_SCALE_ARB                                        0x8573
+#define GL_ADD_SIGNED_ARB                                       0x8574
+#define GL_INTERPOLATE_ARB                                      0x8575
+#define GL_CONSTANT_ARB                                         0x8576
+#define GL_PRIMARY_COLOR_ARB                                    0x8577
+#define GL_PREVIOUS_ARB                                         0x8578
+#define GL_SOURCE0_RGB_ARB                                      0x8580
+#define GL_SOURCE1_RGB_ARB                                      0x8581
+#define GL_SOURCE2_RGB_ARB                                      0x8582
+#define GL_SOURCE0_ALPHA_ARB                                    0x8588
+#define GL_SOURCE1_ALPHA_ARB                                    0x8589
+#define GL_SOURCE2_ALPHA_ARB                                    0x858A
+#define GL_OPERAND0_RGB_ARB                                     0x8590
+#define GL_OPERAND1_RGB_ARB                                     0x8591
+#define GL_OPERAND2_RGB_ARB                                     0x8592
+#define GL_OPERAND0_ALPHA_ARB                                   0x8598
+#define GL_OPERAND1_ALPHA_ARB                                   0x8599
+#define GL_OPERAND2_ALPHA_ARB                                   0x859A
+
+#endif /* GL_ARB_texture_env_combine */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_ENV_DOT3-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_env_dot3
+#define GL_ARB_texture_env_dot3 1
+
+#define GL_DOT3_RGB_ARB                                         0x86AE
+#define GL_DOT3_RGBA_ARB                                        0x86AF
+
+#endif /* GL_ARB_texture_env_dot3 */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_BORDER_CLAMP-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_border_clamp
+#define GL_ARB_texture_border_clamp 1
+
+#define GL_CLAMP_TO_BORDER_ARB                                  0x812D
+
+#endif /* GL_ARB_texture_border_clamp */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_ENV_ADD------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_env_add
+#define GL_ARB_texture_env_add 1
+
+
+#endif /* GL_ARB_texture_env_add */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_SECONDARY_COLOR------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_secondary_color
+#define GL_EXT_secondary_color 1
+
+#define GL_COLOR_SUM_EXT                                        0x8458
+#define GL_CURRENT_SECONDARY_COLOR_EXT                          0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT                       0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT                       0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT                     0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT                    0x845D
+#define GL_SECONDARY_COLOR_ARRAY_EXT                            0x845E
+
+typedef void (APIENTRY * glSecondaryColor3bEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
+typedef void (APIENTRY * glSecondaryColor3bvEXTPROC) (const GLbyte *v);
+typedef void (APIENTRY * glSecondaryColor3dEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
+typedef void (APIENTRY * glSecondaryColor3dvEXTPROC) (const GLdouble *v);
+typedef void (APIENTRY * glSecondaryColor3fEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
+typedef void (APIENTRY * glSecondaryColor3fvEXTPROC) (const GLfloat *v);
+typedef void (APIENTRY * glSecondaryColor3iEXTPROC) (GLint red, GLint green, GLint blue);
+typedef void (APIENTRY * glSecondaryColor3ivEXTPROC) (const GLint *v);
+typedef void (APIENTRY * glSecondaryColor3sEXTPROC) (GLshort red, GLshort green, GLshort blue);
+typedef void (APIENTRY * glSecondaryColor3svEXTPROC) (const GLshort *v);
+typedef void (APIENTRY * glSecondaryColor3ubEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
+typedef void (APIENTRY * glSecondaryColor3ubvEXTPROC) (const GLubyte *v);
+typedef void (APIENTRY * glSecondaryColor3uiEXTPROC) (GLuint red, GLuint green, GLuint blue);
+typedef void (APIENTRY * glSecondaryColor3uivEXTPROC) (const GLuint *v);
+typedef void (APIENTRY * glSecondaryColor3usEXTPROC) (GLushort red, GLushort green, GLushort blue);
+typedef void (APIENTRY * glSecondaryColor3usvEXTPROC) (const GLushort *v);
+typedef void (APIENTRY * glSecondaryColorPointerEXTPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+
+extern glSecondaryColor3bEXTPROC glSecondaryColor3bEXT;
+extern glSecondaryColor3bvEXTPROC glSecondaryColor3bvEXT;
+extern glSecondaryColor3dEXTPROC glSecondaryColor3dEXT;
+extern glSecondaryColor3dvEXTPROC glSecondaryColor3dvEXT;
+extern glSecondaryColor3fEXTPROC glSecondaryColor3fEXT;
+extern glSecondaryColor3fvEXTPROC glSecondaryColor3fvEXT;
+extern glSecondaryColor3iEXTPROC glSecondaryColor3iEXT;
+extern glSecondaryColor3ivEXTPROC glSecondaryColor3ivEXT;
+extern glSecondaryColor3sEXTPROC glSecondaryColor3sEXT;
+extern glSecondaryColor3svEXTPROC glSecondaryColor3svEXT;
+extern glSecondaryColor3ubEXTPROC glSecondaryColor3ubEXT;
+extern glSecondaryColor3ubvEXTPROC glSecondaryColor3ubvEXT;
+extern glSecondaryColor3uiEXTPROC glSecondaryColor3uiEXT;
+extern glSecondaryColor3uivEXTPROC glSecondaryColor3uivEXT;
+extern glSecondaryColor3usEXTPROC glSecondaryColor3usEXT;
+extern glSecondaryColor3usvEXTPROC glSecondaryColor3usvEXT;
+extern glSecondaryColorPointerEXTPROC glSecondaryColorPointerEXT;
+
+#endif /* GL_EXT_secondary_color */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_FOG_COORD------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_fog_coord
+#define GL_EXT_fog_coord 1
+
+#define GL_FOG_COORDINATE_SOURCE_EXT                            0x8450
+#define GL_FOG_COORDINATE_EXT                                   0x8451
+#define GL_FRAGMENT_DEPTH_EXT                                   0x8452
+#define GL_CURRENT_FOG_COORDINATE_EXT                           0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT                        0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT                      0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT                     0x8456
+#define GL_FOG_COORDINATE_ARRAY_EXT                             0x8457
+
+typedef void (APIENTRY * glFogCoordfEXTPROC) (GLfloat coord);
+typedef void (APIENTRY * glFogCoordfvEXTPROC) (const GLfloat *coord);
+typedef void (APIENTRY * glFogCoorddEXTPROC) (GLdouble coord);
+typedef void (APIENTRY * glFogCoorddvEXTPROC) (const GLdouble *coord);
+typedef void (APIENTRY * glFogCoordPointerEXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
+
+extern glFogCoordfEXTPROC glFogCoordfEXT;
+extern glFogCoordfvEXTPROC glFogCoordfvEXT;
+extern glFogCoorddEXTPROC glFogCoorddEXT;
+extern glFogCoorddvEXTPROC glFogCoorddvEXT;
+extern glFogCoordPointerEXTPROC glFogCoordPointerEXT;
+
+#endif /* GL_EXT_fog_coord */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_VERTEX_ARRAY_RANGE----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_array_range
+#define GL_NV_vertex_array_range 1
+
+#define GL_VERTEX_ARRAY_RANGE_NV                                0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV                         0x851E
+#define GL_VERTEX_ARRAY_RANGE_VALID_NV                          0x851F
+#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV                    0x8520
+#define GL_VERTEX_ARRAY_RANGE_POINTER_NV                        0x8521
+
+typedef void (APIENTRY * glFlushVertexArrayRangeNVPROC) (void);
+typedef void (APIENTRY * glVertexArrayRangeNVPROC) (GLsizei size, const GLvoid *pointer);
+
+extern glFlushVertexArrayRangeNVPROC glFlushVertexArrayRangeNV;
+extern glVertexArrayRangeNVPROC glVertexArrayRangeNV;
+
+#ifdef WIN32
+
+typedef void * (APIENTRY * wglAllocateMemoryNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
+typedef void (APIENTRY * wglFreeMemoryNVPROC) (void *pointer);
+
+extern wglAllocateMemoryNVPROC wglAllocateMemoryNV;
+extern wglFreeMemoryNVPROC wglFreeMemoryNV;
+
+#endif /* WIN32 */
+
+#endif /* GL_NV_vertex_array_range */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_VERTEX_ARRAY_RANGE2---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_array_range2
+#define GL_NV_vertex_array_range2 1
+
+#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV                  0x8533
+
+#endif /* GL_NV_vertex_array_range2 */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_POINT_PARAMETERS-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_point_parameters
+#define GL_EXT_point_parameters 1
+
+#define GL_POINT_SIZE_MIN_EXT                                   0x8126
+#define GL_POINT_SIZE_MAX_EXT                                   0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT                        0x8128
+#define GL_DISTANCE_ATTENUATION_EXT                             0x8129
+
+typedef void (APIENTRY * glPointParameterfEXTPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glPointParameterfvEXTPROC) (GLenum pname, const GLfloat *params);
+
+extern glPointParameterfEXTPROC glPointParameterfEXT;
+extern glPointParameterfvEXTPROC glPointParameterfvEXT;
+
+#endif /* GL_EXT_point_parameters */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_REGISTER_COMBINERS----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_register_combiners
+#define GL_NV_register_combiners 1
+
+#define GL_REGISTER_COMBINERS_NV                                0x8522
+#define GL_COMBINER0_NV                                         0x8550
+#define GL_COMBINER1_NV                                         0x8551
+#define GL_COMBINER2_NV                                         0x8552
+#define GL_COMBINER3_NV                                         0x8553
+#define GL_COMBINER4_NV                                         0x8554
+#define GL_COMBINER5_NV                                         0x8555
+#define GL_COMBINER6_NV                                         0x8556
+#define GL_COMBINER7_NV                                         0x8557
+#define GL_VARIABLE_A_NV                                        0x8523
+#define GL_VARIABLE_B_NV                                        0x8524
+#define GL_VARIABLE_C_NV                                        0x8525
+#define GL_VARIABLE_D_NV                                        0x8526
+#define GL_VARIABLE_E_NV                                        0x8527
+#define GL_VARIABLE_F_NV                                        0x8528
+#define GL_VARIABLE_G_NV                                        0x8529
+#define GL_CONSTANT_COLOR0_NV                                   0x852A
+#define GL_CONSTANT_COLOR1_NV                                   0x852B
+#define GL_PRIMARY_COLOR_NV                                     0x852C
+#define GL_SECONDARY_COLOR_NV                                   0x852D
+#define GL_SPARE0_NV                                            0x852E
+#define GL_SPARE1_NV                                            0x852F
+#define GL_UNSIGNED_IDENTITY_NV                                 0x8536
+#define GL_UNSIGNED_INVERT_NV                                   0x8537
+#define GL_EXPAND_NORMAL_NV                                     0x8538
+#define GL_EXPAND_NEGATE_NV                                     0x8539
+#define GL_HALF_BIAS_NORMAL_NV                                  0x853A
+#define GL_HALF_BIAS_NEGATE_NV                                  0x853B
+#define GL_SIGNED_IDENTITY_NV                                   0x853C
+#define GL_SIGNED_NEGATE_NV                                     0x853D
+#define GL_E_TIMES_F_NV                                         0x8531
+#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV                       0x8532
+#define GL_SCALE_BY_TWO_NV                                      0x853E
+#define GL_SCALE_BY_FOUR_NV                                     0x853F
+#define GL_SCALE_BY_ONE_HALF_NV                                 0x8540
+#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV                         0x8541
+#define GL_DISCARD_NV                                           0x8530
+#define GL_COMBINER_INPUT_NV                                    0x8542
+#define GL_COMBINER_MAPPING_NV                                  0x8543
+#define GL_COMBINER_COMPONENT_USAGE_NV                          0x8544
+#define GL_COMBINER_AB_DOT_PRODUCT_NV                           0x8545
+#define GL_COMBINER_CD_DOT_PRODUCT_NV                           0x8546
+#define GL_COMBINER_MUX_SUM_NV                                  0x8547
+#define GL_COMBINER_SCALE_NV                                    0x8548
+#define GL_COMBINER_BIAS_NV                                     0x8549
+#define GL_COMBINER_AB_OUTPUT_NV                                0x854A
+#define GL_COMBINER_CD_OUTPUT_NV                                0x854B
+#define GL_COMBINER_SUM_OUTPUT_NV                               0x854C
+#define GL_NUM_GENERAL_COMBINERS_NV                             0x854E
+#define GL_COLOR_SUM_CLAMP_NV                                   0x854F
+#define GL_MAX_GENERAL_COMBINERS_NV                             0x854D
+
+typedef void (APIENTRY * glCombinerParameterfvNVPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * glCombinerParameterfNVPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glCombinerParameterivNVPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRY * glCombinerParameteriNVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * glCombinerInputNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRY * glCombinerOutputNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+typedef void (APIENTRY * glFinalCombinerInputNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRY * glGetCombinerInputParameterfvNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetCombinerInputParameterivNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetCombinerOutputParameterfvNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetCombinerOutputParameterivNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetFinalCombinerInputParameterfvNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetFinalCombinerInputParameterivNVPROC) (GLenum variable, GLenum pname, GLint *params);
+
+extern glCombinerParameterfvNVPROC glCombinerParameterfvNV;
+extern glCombinerParameterfNVPROC  glCombinerParameterfNV;
+extern glCombinerParameterivNVPROC glCombinerParameterivNV;
+extern glCombinerParameteriNVPROC glCombinerParameteriNV;
+extern glCombinerInputNVPROC glCombinerInputNV;
+extern glCombinerOutputNVPROC glCombinerOutputNV;
+extern glFinalCombinerInputNVPROC glFinalCombinerInputNV;
+extern glGetCombinerInputParameterfvNVPROC glGetCombinerInputParameterfvNV;
+extern glGetCombinerInputParameterivNVPROC glGetCombinerInputParameterivNV;
+extern glGetCombinerOutputParameterfvNVPROC glGetCombinerOutputParameterfvNV;
+extern glGetCombinerOutputParameterivNVPROC glGetCombinerOutputParameterivNV;
+extern glGetFinalCombinerInputParameterfvNVPROC glGetFinalCombinerInputParameterfvNV;
+extern glGetFinalCombinerInputParameterivNVPROC glGetFinalCombinerInputParameterivNV;
+
+#endif /* GL_NV_register_combiners */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_MULTISAMPLE----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_multisample
+#define GL_ARB_multisample 1
+
+#define GL_MULTISAMPLE_ARB                                      0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB                         0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB                              0x809F
+#define GL_SAMPLE_COVERAGE_ARB                                  0x80A0
+#define GL_SAMPLE_BUFFERS_ARB                                   0x80A8
+#define GL_SAMPLES_ARB                                          0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE_ARB                            0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT_ARB                           0x80AB
+#define GL_MULTISAMPLE_BIT_ARB                                  0x20000000
+
+extern glSampleCoveragePROC glSampleCoverageARB;
+
+#endif /* GL_ARB_multisample */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXTURE_SHADER--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_shader
+#define GL_NV_texture_shader 1
+
+#define GL_TEXTURE_SHADER_NV                                    0x86DE
+#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV                 0x86D9
+#define GL_SHADER_OPERATION_NV                                  0x86DF
+#define GL_CULL_MODES_NV                                        0x86E0
+#define GL_OFFSET_TEXTURE_MATRIX_NV                             0x86E1
+#define GL_OFFSET_TEXTURE_SCALE_NV                              0x86E2
+#define GL_OFFSET_TEXTURE_BIAS_NV                               0x86E3
+#define GL_PREVIOUS_TEXTURE_INPUT_NV                            0x86E4
+#define GL_CONST_EYE_NV                                         0x86E5
+#define GL_SHADER_CONSISTENT_NV                                 0x86DD
+#define GL_PASS_THROUGH_NV                                      0x86E6
+#define GL_CULL_FRAGMENT_NV                                     0x86E7
+#define GL_OFFSET_TEXTURE_2D_NV                                 0x86E8
+#define GL_OFFSET_TEXTURE_RECTANGLE_NV                          0x864C
+#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV                    0x864D
+#define GL_DEPENDENT_AR_TEXTURE_2D_NV                           0x86E9
+#define GL_DEPENDENT_GB_TEXTURE_2D_NV                           0x86EA
+#define GL_DOT_PRODUCT_NV                                       0x86EC
+#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV                         0x86ED
+#define GL_DOT_PRODUCT_TEXTURE_2D_NV                            0x86EE
+#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV                     0x864E
+#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV                      0x86F0
+#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV                      0x86F1
+#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV                      0x86F2
+#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV            0x86F3
+#define GL_HILO_NV                                              0x86F4
+#define GL_DSDT_NV                                              0x86F5
+#define GL_DSDT_MAG_NV                                          0x86F6
+#define GL_DSDT_MAG_VIB_NV                                      0x86F7
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV                            0x86DA
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV                        0x86DB
+#define GL_SIGNED_RGBA_NV                                       0x86FB
+#define GL_SIGNED_RGBA8_NV                                      0x86FC
+#define GL_SIGNED_RGB_NV                                        0x86FE
+#define GL_SIGNED_RGB8_NV                                       0x86FF
+#define GL_SIGNED_LUMINANCE_NV                                  0x8701
+#define GL_SIGNED_LUMINANCE8_NV                                 0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV                            0x8703
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV                          0x8704
+#define GL_SIGNED_ALPHA_NV                                      0x8705
+#define GL_SIGNED_ALPHA8_NV                                     0x8706
+#define GL_SIGNED_INTENSITY_NV                                  0x8707
+#define GL_SIGNED_INTENSITY8_NV                                 0x8708
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV                         0x870C
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV                       0x870D
+#define GL_HILO16_NV                                            0x86F8
+#define GL_SIGNED_HILO_NV                                       0x86F9
+#define GL_SIGNED_HILO16_NV                                     0x86FA
+#define GL_DSDT8_NV                                             0x8709
+#define GL_DSDT8_MAG8_NV                                        0x870A
+#define GL_DSDT_MAG_INTENSITY_NV                                0x86DC
+#define GL_DSDT8_MAG8_INTENSITY8_NV                             0x870B
+#define GL_HI_SCALE_NV                                          0x870E
+#define GL_LO_SCALE_NV                                          0x870F
+#define GL_DS_SCALE_NV                                          0x8710
+#define GL_DT_SCALE_NV                                          0x8711
+#define GL_MAGNITUDE_SCALE_NV                                   0x8712
+#define GL_VIBRANCE_SCALE_NV                                    0x8713
+#define GL_HI_BIAS_NV                                           0x8714
+#define GL_LO_BIAS_NV                                           0x8715
+#define GL_DS_BIAS_NV                                           0x8716
+#define GL_DT_BIAS_NV                                           0x8717
+#define GL_MAGNITUDE_BIAS_NV                                    0x8718
+#define GL_VIBRANCE_BIAS_NV                                     0x8719
+#define GL_TEXTURE_BORDER_VALUES_NV                             0x871A
+#define GL_TEXTURE_HI_SIZE_NV                                   0x871B
+#define GL_TEXTURE_LO_SIZE_NV                                   0x871C
+#define GL_TEXTURE_DS_SIZE_NV                                   0x871D
+#define GL_TEXTURE_DT_SIZE_NV                                   0x871E
+#define GL_TEXTURE_MAG_SIZE_NV                                  0x871F
+
+#endif /* GL_NV_texture_shader */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_NV_TEXTURE_RECTANGLE--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_rectangle
+#define GL_NV_texture_rectangle 1
+
+#define GL_TEXTURE_RECTANGLE_NV                                 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_NV                         0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_NV                           0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV                        0x84F8
+
+#endif /* GL_NV_texture_recrangle */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXTURE_ENV_COMBINE4--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_env_combine4
+#define GL_NV_texture_env_combine4 1
+
+#define GL_COMBINE4_NV                                          0x8503
+#define GL_SOURCE3_RGB_NV                                       0x8583
+#define GL_SOURCE3_ALPHA_NV                                     0x858B
+#define GL_OPERAND3_RGB_NV                                      0x8593
+#define GL_OPERAND3_ALPHA_NV                                    0x859B
+
+#endif /* GL_NV_texture_env_combine */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_FOG_DISTANCE----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_fog_distance
+#define GL_NV_fog_distance 1
+
+#define GL_FOG_DISTANCE_MODE_NV                                 0x855A
+#define GL_EYE_RADIAL_NV                                        0x855B
+#define GL_EYE_PLANE_ABSOLUTE_NV                                0x855C
+
+#endif /* GL_NV_fog_distance */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_TEXTURE_FILTER_ANISOTROPIC-------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_texture_filter_anisotropic
+#define GL_EXT_texture_filter_anisotropic 1
+
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
+
+#endif /* GL_EXT_texture_filter_anisotropic */
+
+/*-------------------------------------------------------------------*/
+/*------------SGIS_GENERATE_MIPMAP-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_SGIS_generate_mipmap
+#define GL_SGIS_generate_mipmap 1
+
+#define GL_GENERATE_MIPMAP_SGIS                                 0x8191
+#define GL_GENERATE_MIPMAP_HINT_SGIS                            0x8192
+
+#endif /* GL_SGIS_generate_mipmap */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXGEN_REFLECTION-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texgen_reflection
+#define GL_NV_texgen_reflection 1
+
+#define GL_NORMAL_MAP_NV                                        0x8511
+#define GL_REFLECTION_MAP_NV                                    0x8512
+
+#endif /* GL_NV_texgen_reflection */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_VERTEX_WEIGHTING-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_vertex_weighting
+#define GL_EXT_vertex_weighting 1
+
+#define GL_MODELVIEW0_STACK_DEPTH_EXT                           0x0BA3  /* alias to GL_MODELVIEW_STACK_DEPTH */
+#define GL_MODELVIEW1_STACK_DEPTH_EXT                           0x8502
+#define GL_MODELVIEW0_MATRIX_EXT                                0x0BA6  /* alias to GL_MODELVIEW_MATRIX */
+#define GL_MODELVIEW1_MATRIX_EXT                                0x8506
+#define GL_VERTEX_WEIGHTING_EXT                                 0x8509
+#define GL_MODELVIEW0_EXT                                       0x1700  /* alias to GL_MODELVIEW */
+#define GL_MODELVIEW1_EXT                                       0x850A
+#define GL_CURRENT_VERTEX_WEIGHT_EXT                            0x850B
+#define GL_VERTEX_WEIGHT_ARRAY_EXT                              0x850C
+#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT                         0x850D
+#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT                         0x850E
+#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT                       0x850F
+#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT                      0x8510
+
+typedef void (APIENTRY * glVertexWeightfEXTPROC) (GLfloat weight);
+typedef void (APIENTRY * glVertexWeightfvEXTPROC) (const GLfloat *weight);
+typedef void (APIENTRY * glVertexWeightPointerEXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
+
+extern glVertexWeightfEXTPROC glVertexWeightfEXT;
+extern glVertexWeightfvEXTPROC glVertexWeightfvEXT;
+extern glVertexWeightPointerEXTPROC glVertexWeightPointerEXT;
+
+#endif /* GL_EXT_vertex_weighting */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_VERTEX_PROGRAM--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_program
+#define GL_NV_vertex_program 1
+
+#define GL_VERTEX_PROGRAM_NV                                    0x8620
+#define GL_VERTEX_PROGRAM_POINT_SIZE_NV                         0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_NV                           0x8643
+#define GL_VERTEX_STATE_PROGRAM_NV                              0x8621
+#define GL_ATTRIB_ARRAY_SIZE_NV                                 0x8623
+#define GL_ATTRIB_ARRAY_STRIDE_NV                               0x8624
+#define GL_ATTRIB_ARRAY_TYPE_NV                                 0x8625
+#define GL_CURRENT_ATTRIB_NV                                    0x8626
+#define GL_PROGRAM_PARAMETER_NV                                 0x8644
+#define GL_ATTRIB_ARRAY_POINTER_NV                              0x8645
+#define GL_PROGRAM_TARGET_NV                                    0x8646
+#define GL_PROGRAM_LENGTH_NV                                    0x8627
+#define GL_PROGRAM_RESIDENT_NV                                  0x8647
+#define GL_PROGRAM_STRING_NV                                    0x8628
+#define GL_TRACK_MATRIX_NV                                      0x8648
+#define GL_TRACK_MATRIX_TRANSFORM_NV                            0x8649
+#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV                      0x862E
+#define GL_MAX_TRACK_MATRICES_NV                                0x862F
+#define GL_CURRENT_MATRIX_STACK_DEPTH_NV                        0x8640
+#define GL_CURRENT_MATRIX_NV                                    0x8641
+#define GL_VERTEX_PROGRAM_BINDING_NV                            0x864A
+#define GL_PROGRAM_ERROR_POSITION_NV                            0x864B
+#define GL_MODELVIEW_PROJECTION_NV                              0x8629
+#define GL_MATRIX0_NV                                           0x8630
+#define GL_MATRIX1_NV                                           0x8631
+#define GL_MATRIX2_NV                                           0x8632
+#define GL_MATRIX3_NV                                           0x8633
+#define GL_MATRIX4_NV                                           0x8634
+#define GL_MATRIX5_NV                                           0x8635
+#define GL_MATRIX6_NV                                           0x8636
+#define GL_MATRIX7_NV                                           0x8637
+#define GL_IDENTITY_NV                                          0x862A
+#define GL_INVERSE_NV                                           0x862B
+#define GL_TRANSPOSE_NV                                         0x862C
+#define GL_INVERSE_TRANSPOSE_NV                                 0x862D
+#define GL_VERTEX_ATTRIB_ARRAY0_NV                              0x8650
+#define GL_VERTEX_ATTRIB_ARRAY1_NV                              0x8651
+#define GL_VERTEX_ATTRIB_ARRAY2_NV                              0x8652
+#define GL_VERTEX_ATTRIB_ARRAY3_NV                              0x8653
+#define GL_VERTEX_ATTRIB_ARRAY4_NV                              0x8654
+#define GL_VERTEX_ATTRIB_ARRAY5_NV                              0x8655
+#define GL_VERTEX_ATTRIB_ARRAY6_NV                              0x8656
+#define GL_VERTEX_ATTRIB_ARRAY7_NV                              0x8657
+#define GL_VERTEX_ATTRIB_ARRAY8_NV                              0x8658
+#define GL_VERTEX_ATTRIB_ARRAY9_NV                              0x8659
+#define GL_VERTEX_ATTRIB_ARRAY10_NV                             0x865A
+#define GL_VERTEX_ATTRIB_ARRAY11_NV                             0x865B
+#define GL_VERTEX_ATTRIB_ARRAY12_NV                             0x865C
+#define GL_VERTEX_ATTRIB_ARRAY13_NV                             0x865D
+#define GL_VERTEX_ATTRIB_ARRAY14_NV                             0x865E
+#define GL_VERTEX_ATTRIB_ARRAY15_NV                             0x865F
+#define GL_MAP1_VERTEX_ATTRIB0_4_NV                             0x8660
+#define GL_MAP1_VERTEX_ATTRIB1_4_NV                             0x8661
+#define GL_MAP1_VERTEX_ATTRIB2_4_NV                             0x8662
+#define GL_MAP1_VERTEX_ATTRIB3_4_NV                             0x8663
+#define GL_MAP1_VERTEX_ATTRIB4_4_NV                             0x8664
+#define GL_MAP1_VERTEX_ATTRIB5_4_NV                             0x8665
+#define GL_MAP1_VERTEX_ATTRIB6_4_NV                             0x8666
+#define GL_MAP1_VERTEX_ATTRIB7_4_NV                             0x8667
+#define GL_MAP1_VERTEX_ATTRIB8_4_NV                             0x8668
+#define GL_MAP1_VERTEX_ATTRIB9_4_NV                             0x8669
+#define GL_MAP1_VERTEX_ATTRIB10_4_NV                            0x866A
+#define GL_MAP1_VERTEX_ATTRIB11_4_NV                            0x866B
+#define GL_MAP1_VERTEX_ATTRIB12_4_NV                            0x866C
+#define GL_MAP1_VERTEX_ATTRIB13_4_NV                            0x866D
+#define GL_MAP1_VERTEX_ATTRIB14_4_NV                            0x866E
+#define GL_MAP1_VERTEX_ATTRIB15_4_NV                            0x866F
+#define GL_MAP2_VERTEX_ATTRIB0_4_NV                             0x8670
+#define GL_MAP2_VERTEX_ATTRIB1_4_NV                             0x8671
+#define GL_MAP2_VERTEX_ATTRIB2_4_NV                             0x8672
+#define GL_MAP2_VERTEX_ATTRIB3_4_NV                             0x8673
+#define GL_MAP2_VERTEX_ATTRIB4_4_NV                             0x8674
+#define GL_MAP2_VERTEX_ATTRIB5_4_NV                             0x8675
+#define GL_MAP2_VERTEX_ATTRIB6_4_NV                             0x8676
+#define GL_MAP2_VERTEX_ATTRIB7_4_NV                             0x8677
+#define GL_MAP2_VERTEX_ATTRIB8_4_NV                             0x8678
+#define GL_MAP2_VERTEX_ATTRIB9_4_NV                             0x8679
+#define GL_MAP2_VERTEX_ATTRIB10_4_NV                            0x867A
+#define GL_MAP2_VERTEX_ATTRIB11_4_NV                            0x867B
+#define GL_MAP2_VERTEX_ATTRIB12_4_NV                            0x867C
+#define GL_MAP2_VERTEX_ATTRIB13_4_NV                            0x867D
+#define GL_MAP2_VERTEX_ATTRIB14_4_NV                            0x867E
+#define GL_MAP2_VERTEX_ATTRIB15_4_NV                            0x867F
+
+typedef void (APIENTRY * glBindProgramNVPROC) (GLenum target, GLuint id);
+typedef void (APIENTRY * glDeleteProgramsNVPROC) (GLsizei n, const GLuint *ids);
+typedef void (APIENTRY * glExecuteProgramNVPROC) (GLenum target, GLuint id, const GLfloat *params);
+typedef void (APIENTRY * glGenProgramsNVPROC) (GLsizei n, GLuint *ids);
+typedef GLboolean (APIENTRY * glAreProgramsResidentNVPROC) (GLsizei n, const GLuint *ids, GLboolean *residences);
+typedef void (APIENTRY * glRequestResidentProgramsNVPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRY * glGetProgramParameterfvNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetProgramParameterdvNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRY * glGetProgramivNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetProgramStringNVPROC) (GLuint id, GLenum pname, GLubyte *program);
+typedef void (APIENTRY * glGetTrackMatrixivNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetVertexAttribdvNVPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRY * glGetVertexAttribfvNVPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetVertexAttribivNVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetVertexAttribPointervNVPROC) (GLuint index, GLenum pname, GLvoid **pointer);
+typedef GLboolean (APIENTRY * glIsProgramNVPROC) (GLuint id);
+typedef void (APIENTRY * glLoadProgramNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
+typedef void (APIENTRY * glProgramParameter4fNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glProgramParameter4dNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glProgramParameter4dvNVPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRY * glProgramParameter4fvNVPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRY * glProgramParameters4dvNVPROC) (GLenum target, GLuint index, GLuint num, const GLdouble *params);
+typedef void (APIENTRY * glProgramParameters4fvNVPROC) (GLenum target, GLuint index, GLuint num, const GLfloat *params);
+typedef void (APIENTRY * glTrackMatrixNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
+typedef void (APIENTRY * glVertexAttribPointerNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * glVertexAttrib1sNVPROC) (GLuint index, GLshort x);
+typedef void (APIENTRY * glVertexAttrib1fNVPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRY * glVertexAttrib1dNVPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRY * glVertexAttrib2sNVPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRY * glVertexAttrib2fNVPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRY * glVertexAttrib2dNVPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRY * glVertexAttrib3sNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glVertexAttrib3fNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glVertexAttrib3dNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glVertexAttrib4sNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * glVertexAttrib4fNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glVertexAttrib4dNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glVertexAttrib4ubNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRY * glVertexAttrib1svNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib1fvNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib1dvNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib2svNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib2fvNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib2dvNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib3svNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib3fvNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib3dvNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib4svNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib4fvNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib4dvNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib4ubvNVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRY * glVertexAttribs1svNVPROC) (GLuint index, GLsizei n, const GLshort *v);
+typedef void (APIENTRY * glVertexAttribs1fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttribs1dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttribs2svNVPROC) (GLuint index, GLsizei n, const GLshort *v);
+typedef void (APIENTRY * glVertexAttribs2fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttribs2dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttribs3svNVPROC) (GLuint index, GLsizei n, const GLshort *v);
+typedef void (APIENTRY * glVertexAttribs3fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttribs3dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttribs4svNVPROC) (GLuint index, GLsizei n, const GLshort *v);
+typedef void (APIENTRY * glVertexAttribs4fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttribs4dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttribs4ubvNVPROC) (GLuint index, GLsizei n, const GLubyte *v);
+
+extern glBindProgramNVPROC glBindProgramNV;
+extern glDeleteProgramsNVPROC glDeleteProgramsNV;
+extern glExecuteProgramNVPROC glExecuteProgramNV;
+extern glGenProgramsNVPROC glGenProgramsNV;
+extern glAreProgramsResidentNVPROC glAreProgramsResidentNV;
+extern glRequestResidentProgramsNVPROC glRequestResidentProgramsNV;
+extern glGetProgramParameterfvNVPROC glGetProgramParameterfvNV;
+extern glGetProgramParameterdvNVPROC glGetProgramParameterdvNV;
+extern glGetProgramivNVPROC glGetProgramivNV;
+extern glGetProgramStringNVPROC glGetProgramStringNV;
+extern glGetTrackMatrixivNVPROC glGetTrackMatrixivNV;
+extern glGetVertexAttribdvNVPROC glGetVertexAttribdvNV;
+extern glGetVertexAttribfvNVPROC glGetVertexAttribfvNV;
+extern glGetVertexAttribivNVPROC glGetVertexAttribivNV;
+extern glGetVertexAttribPointervNVPROC glGetVertexAttribPointervNV;
+extern glIsProgramNVPROC glIsProgramNV;
+extern glLoadProgramNVPROC glLoadProgramNV;
+extern glProgramParameter4fNVPROC glProgramParameter4fNV;
+extern glProgramParameter4dNVPROC glProgramParameter4dNV;
+extern glProgramParameter4dvNVPROC glProgramParameter4dvNV;
+extern glProgramParameter4fvNVPROC glProgramParameter4fvNV;
+extern glProgramParameters4dvNVPROC glProgramParameters4dvNV;
+extern glProgramParameters4fvNVPROC glProgramParameters4fvNV;
+extern glTrackMatrixNVPROC glTrackMatrixNV;
+extern glVertexAttribPointerNVPROC glVertexAttribPointerNV;
+extern glVertexAttrib1sNVPROC glVertexAttrib1sNV;
+extern glVertexAttrib1fNVPROC glVertexAttrib1fNV;
+extern glVertexAttrib1dNVPROC glVertexAttrib1dNV;
+extern glVertexAttrib2sNVPROC glVertexAttrib2sNV;
+extern glVertexAttrib2fNVPROC glVertexAttrib2fNV;
+extern glVertexAttrib2dNVPROC glVertexAttrib2dNV;
+extern glVertexAttrib3sNVPROC glVertexAttrib3sNV;
+extern glVertexAttrib3fNVPROC glVertexAttrib3fNV;
+extern glVertexAttrib3dNVPROC glVertexAttrib3dNV;
+extern glVertexAttrib4sNVPROC glVertexAttrib4sNV;
+extern glVertexAttrib4fNVPROC glVertexAttrib4fNV;
+extern glVertexAttrib4dNVPROC glVertexAttrib4dNV;
+extern glVertexAttrib4ubNVPROC glVertexAttrib4ubNV;
+extern glVertexAttrib1svNVPROC glVertexAttrib1svNV;
+extern glVertexAttrib1fvNVPROC glVertexAttrib1fvNV;
+extern glVertexAttrib1dvNVPROC glVertexAttrib1dvNV;
+extern glVertexAttrib2svNVPROC glVertexAttrib2svNV;
+extern glVertexAttrib2fvNVPROC glVertexAttrib2fvNV;
+extern glVertexAttrib2dvNVPROC glVertexAttrib2dvNV;
+extern glVertexAttrib3svNVPROC glVertexAttrib3svNV;
+extern glVertexAttrib3fvNVPROC glVertexAttrib3fvNV;
+extern glVertexAttrib3dvNVPROC glVertexAttrib3dvNV;
+extern glVertexAttrib4svNVPROC glVertexAttrib4svNV;
+extern glVertexAttrib4fvNVPROC glVertexAttrib4fvNV;
+extern glVertexAttrib4dvNVPROC glVertexAttrib4dvNV;
+extern glVertexAttrib4ubvNVPROC glVertexAttrib4ubvNV;
+extern glVertexAttribs1svNVPROC glVertexAttribs1svNV;
+extern glVertexAttribs1fvNVPROC glVertexAttribs1fvNV;
+extern glVertexAttribs1dvNVPROC glVertexAttribs1dvNV;
+extern glVertexAttribs2svNVPROC glVertexAttribs2svNV;
+extern glVertexAttribs2fvNVPROC glVertexAttribs2fvNV;
+extern glVertexAttribs2dvNVPROC glVertexAttribs2dvNV;
+extern glVertexAttribs3svNVPROC glVertexAttribs3svNV;
+extern glVertexAttribs3fvNVPROC glVertexAttribs3fvNV;
+extern glVertexAttribs3dvNVPROC glVertexAttribs3dvNV;
+extern glVertexAttribs4svNVPROC glVertexAttribs4svNV;
+extern glVertexAttribs4fvNVPROC glVertexAttribs4fvNV;
+extern glVertexAttribs4dvNVPROC glVertexAttribs4dvNV;
+extern glVertexAttribs4ubvNVPROC glVertexAttribs4ubvNV;
+
+#endif /* GL_NV_vertex_program */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_FENCE-----------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_fence
+#define GL_NV_fance 1
+
+#define GL_ALL_COMPLETED_NV                                     0x84F2
+#define GL_FENCE_STATUS_NV                                      0x84F3
+#define GL_FENCE_CONDITION_NV                                   0x84F4
+
+typedef void (APIENTRY * glGenFencesNVPROC) (GLsizei n, GLuint *fences);
+typedef void (APIENTRY * glDeleteFencesNVPROC) (GLsizei n, const GLuint *fences);
+typedef void (APIENTRY * glSetFenceNVPROC) (GLuint fence, GLenum condition);
+typedef GLboolean (APIENTRY * glTestFenceNVPROC) (GLuint fence);
+typedef void (APIENTRY * glFinishFenceNVPROC) (GLuint fence);
+typedef GLboolean (APIENTRY * glIsFenceNVPROC) (GLuint fence);
+typedef void (APIENTRY * glGetFenceivNVPROC) (GLuint fence, GLenum pname, GLint *params);
+
+extern glGenFencesNVPROC glGenFencesNV;
+extern glDeleteFencesNVPROC glDeleteFencesNV;
+extern glSetFenceNVPROC glSetFenceNV;
+extern glTestFenceNVPROC glTestFenceNV;
+extern glFinishFenceNVPROC glFinishFenceNV;
+extern glIsFenceNVPROC glIsFenceNV;
+extern glGetFenceivNVPROC glGetFenceivNV;
+
+#endif /* GL_NV_fence */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXTURE_SHADER2-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_shader2
+#define GL_NV_texture_shader2
+
+#define GL_DOT_PRODUCT_TEXTURE_3D_NV                            0x86EF
+#define GL_HILO_NV                                              0x86F4
+#define GL_DSDT_NV                                              0x86F5
+#define GL_DSDT_MAG_NV                                          0x86F6
+#define GL_DSDT_MAG_VIB_NV                                      0x86F7
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV                            0x86DA
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV                        0x86DB
+#define GL_SIGNED_RGBA_NV                                       0x86FB
+#define GL_SIGNED_RGBA8_NV                                      0x86FC
+#define GL_SIGNED_RGB_NV                                        0x86FE
+#define GL_SIGNED_RGB8_NV                                       0x86FF
+#define GL_SIGNED_LUMINANCE_NV                                  0x8701
+#define GL_SIGNED_LUMINANCE8_NV                                 0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV                            0x8703
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV                          0x8704
+#define GL_SIGNED_ALPHA_NV                                      0x8705
+#define GL_SIGNED_ALPHA8_NV                                     0x8706
+#define GL_SIGNED_INTENSITY_NV                                  0x8707
+#define GL_SIGNED_INTENSITY8_NV                                 0x8708
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV                         0x870C
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV                       0x870D
+#define GL_HILO16_NV                                            0x86F8
+#define GL_SIGNED_HILO_NV                                       0x86F9
+#define GL_SIGNED_HILO16_NV                                     0x86FA
+#define GL_DSDT8_NV                                             0x8709
+#define GL_DSDT8_MAG8_NV                                        0x870A
+#define GL_DSDT_MAG_INTENSITY_NV                                0x86DC
+#define GL_DSDT8_MAG8_INTENSITY8_NV                             0x870B 
+
+#endif /* GL_NV_texture_shader2 */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_BLEND_SQUARE----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_blend_square
+#define GL_NV_blend_square 1
+
+#endif /* GL_NV_blend_square */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_LIGHT_MAX_EXPONENT----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_light_max_exponent
+#define GL_NV_light_max_exponent 1
+
+#define GL_MAX_SHININESS_NV                                     0x8504
+#define GL_MAX_SPOT_EXPONENT_NV                                 0x8505
+
+#endif /* GL_NV_light_max_exponent */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_PACKED_DEPTH_STENCIL--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_packed_depth_stencil
+#define GL_NV_packed_depth_stencil 1
+
+#define GL_DEPTH_STENCIL_NV                                     0x84F9
+#define GL_UNSIGNED_INT_24_8_NV                                 0x84FA
+
+#endif /* GL_NV_packed_depth_stencil */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_REGISTER_COMBINERS2---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_register_combiners2
+#define GL_NV_register_combiners2
+
+#define GL_PER_STAGE_CONSTANTS_NV                               0x8535
+
+typedef void (APIENTRY * glCombinerStageParameterfvNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * glGetCombinerStageParameterfvNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
+
+extern glCombinerStageParameterfvNVPROC glCombinerStageParameterfvNV;
+extern glGetCombinerStageParameterfvNVPROC glGetCombinerStageParameterfvNV;
+
+#endif /* GL_NV_register_combiners2 */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_ABGR-----------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_abgr
+#define GL_EXT_abgr 1
+
+#define GL_ABGR_EXT                                             0x8000
+
+#endif /* GL_EXT_abgr */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_STENCIL_WRAP---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_stencil_wrap
+#define GL_EXT_stencil_wrap 1
+
+#define GL_INCR_WRAP_EXT             0x8507
+#define GL_DECR_WRAP_EXT             0x8508
+
+#endif /* GL_EXT_stencil_wrap */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_TEXTURE_LOD_BIAS-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_texture_lod_bias
+#define GL_EXT_texture_lod_bias 1
+
+#define GL_TEXTURE_FILTER_CONTROL_EXT                           0x8500
+#define GL_TEXTURE_LOD_BIAS_EXT                                 0x8501
+#define GL_MAX_TEXTURE_LOD_BIAS_EXT                             0x84FD
+
+#endif /* GL_EXT_texture_lod_bias */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_EVALUATORS------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_evaluators
+#define GL_NV_evaluators 1
+
+#define GL_EVAL_2D_NV                                           0x86C0
+#define GL_EVAL_TRIANGULAR_2D_NV                                0x86C1
+#define GL_MAP_TESSELLATION_NV                                  0x86C2
+#define GL_MAP_ATTRIB_U_ORDER_NV                                0x86C3
+#define GL_MAP_ATTRIB_V_ORDER_NV                                0x86C4
+#define GL_EVAL_FRACTIONAL_TESSELLATION_NV                      0x86C5
+#define GL_EVAL_VERTEX_ATTRIB0_NV                               0x86C6
+#define GL_EVAL_VERTEX_ATTRIB1_NV                               0x86C7
+#define GL_EVAL_VERTEX_ATTRIB2_NV                               0x86C8
+#define GL_EVAL_VERTEX_ATTRIB3_NV                               0x86C9
+#define GL_EVAL_VERTEX_ATTRIB4_NV                               0x86CA
+#define GL_EVAL_VERTEX_ATTRIB5_NV                               0x86CB
+#define GL_EVAL_VERTEX_ATTRIB6_NV                               0x86CC
+#define GL_EVAL_VERTEX_ATTRIB7_NV                               0x86CD
+#define GL_EVAL_VERTEX_ATTRIB8_NV                               0x86CE
+#define GL_EVAL_VERTEX_ATTRIB9_NV                               0x86CF
+#define GL_EVAL_VERTEX_ATTRIB10_NV                              0x86D0
+#define GL_EVAL_VERTEX_ATTRIB11_NV                              0x86D1
+#define GL_EVAL_VERTEX_ATTRIB12_NV                              0x86D2
+#define GL_EVAL_VERTEX_ATTRIB13_NV                              0x86D3
+#define GL_EVAL_VERTEX_ATTRIB14_NV                              0x86D4
+#define GL_EVAL_VERTEX_ATTRIB15_NV                              0x86D5
+#define GL_MAX_MAP_TESSELLATION_NV                              0x86D6
+#define GL_MAX_RATIONAL_EVAL_ORDER_NV                           0x86D7
+
+typedef void (APIENTRY * glMapControlPointsNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
+typedef void (APIENTRY * glMapParameterivNVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * glMapParameterfvNVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * glGetMapControlPointsNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
+typedef void (APIENTRY * glGetMapParameterivNVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetMapParameterfvNVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetMapAttribParameterivNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetMapAttribParameterfvNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glEvalMapsNVPROC) (GLenum target, GLenum mode);
+
+extern glMapControlPointsNVPROC glMapControlPointsNV;
+extern glMapParameterivNVPROC glMapParameterivNV;
+extern glMapParameterfvNVPROC glMapParameterfvNV;
+extern glGetMapControlPointsNVPROC glGetMapControlPointsNV;
+extern glGetMapParameterivNVPROC glGetMapParameterivNV;
+extern glGetMapParameterfvNVPROC glGetMapParameterfvNV;
+extern glGetMapAttribParameterivNVPROC glGetMapAttribParameterivNV;
+extern glGetMapAttribParameterfvNVPROC glGetMapAttribParameterfvNV;
+extern glEvalMapsNVPROC glEvalMapsNV;
+
+#endif /* GL_NV_evaluators */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_COPY_DEPTH_TO_COLOR---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_copy_depth_to_color
+#define GL_NV_copy_depth_to_color 1
+
+#define GL_DEPTH_STENCIL_TO_RGBA_NV                             0x886E
+#define GL_DEPTH_STENCIL_TO_BGRA_NV                             0x886F
+
+#endif /* GL_NV_copy_depth_to_color */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_PN_TRIANGLES---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_pn_triangles
+#define GL_ATI_pn_triangles 1
+
+#define GL_PN_TRIANGLES_ATI                                     0x87F0
+#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI               0x87F1
+#define GL_PN_TRIANGLES_POINT_MODE_ATI                          0x87F2
+#define GL_PN_TRIANGLES_NORMAL_MODE_ATI                         0x87F3
+#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI                   0x87F4
+#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI                   0x87F5
+#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI                    0x87F6
+#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI                  0x87F7
+#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI               0x87F8
+
+typedef void (APIENTRY * glPNTrianglesiATIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * glPNTrianglesfATIPROC) (GLenum pname, GLfloat param);
+
+extern glPNTrianglesiATIPROC glPNTrianglesiATI;
+extern glPNTrianglesfATIPROC glPNTrianglesfATI;
+
+#endif /* GL_ATI_pn_triangles */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_POINT_PARAMETERS-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_point_parameters
+#define GL_ARB_point_parameters 1
+
+#define GL_POINT_SIZE_MIN_ARB                                   0x8126
+#define GL_POINT_SIZE_MAX_ARB                                   0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB                        0x8128
+#define GL_POINT_DISTANCE_ATTENUATION_ARB                       0x8129
+
+typedef void (APIENTRY * glPointParameterfARBPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glPointParameterfvARBPROC) (GLenum pname, GLfloat *params);
+
+extern glPointParameterfARBPROC glPointParameterfARB;
+extern glPointParameterfvARBPROC glPointParameterfvARB;
+
+#endif /* GL_ARB_point_parameters */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_ENV_CROSSBAR-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_env_crossbar
+#define GL_ARB_texture_env_crossbar 1
+
+#endif
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_VERTEX_BLEND---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_vertex_blend
+#define GL_ARB_vertex_blend 1
+
+#define GL_MAX_VERTEX_UNITS_ARB                                 0x86A4
+#define GL_ACTIVE_VERTEX_UNITS_ARB                              0x86A5
+#define GL_WEIGHT_SUM_UNITY_ARB                                 0x86A6      
+#define GL_VERTEX_BLEND_ARB                                     0x86A7
+#define GL_CURRENT_WEIGHT_ARB                                   0x86A8
+#define GL_WEIGHT_ARRAY_TYPE_ARB                                0x86A9
+#define GL_WEIGHT_ARRAY_STRIDE_ARB                              0x86AA
+#define GL_WEIGHT_ARRAY_SIZE_ARB                                0x86AB
+#define GL_WEIGHT_ARRAY_POINTER_ARB                             0x86AC
+#define GL_WEIGHT_ARRAY_ARB                                     0x86AD
+#define GL_MODELVIEW0_ARB                                       0x1700
+#define GL_MODELVIEW1_ARB                                       0x850a
+#define GL_MODELVIEW2_ARB                                       0x8722
+#define GL_MODELVIEW3_ARB                                       0x8723
+#define GL_MODELVIEW4_ARB                                       0x8724
+#define GL_MODELVIEW5_ARB                                       0x8725
+#define GL_MODELVIEW6_ARB                                       0x8726
+#define GL_MODELVIEW7_ARB                                       0x8727
+#define GL_MODELVIEW8_ARB                                       0x8728
+#define GL_MODELVIEW9_ARB                                       0x8729
+#define GL_MODELVIEW10_ARB                                      0x872A
+#define GL_MODELVIEW11_ARB                                      0x872B
+#define GL_MODELVIEW12_ARB                                      0x872C
+#define GL_MODELVIEW13_ARB                                      0x872D
+#define GL_MODELVIEW14_ARB                                      0x872E
+#define GL_MODELVIEW15_ARB                                      0x872F
+#define GL_MODELVIEW16_ARB                                      0x8730
+#define GL_MODELVIEW17_ARB                                      0x8731
+#define GL_MODELVIEW18_ARB                                      0x8732
+#define GL_MODELVIEW19_ARB                                      0x8733
+#define GL_MODELVIEW20_ARB                                      0x8734
+#define GL_MODELVIEW21_ARB                                      0x8735
+#define GL_MODELVIEW22_ARB                                      0x8736
+#define GL_MODELVIEW23_ARB                                      0x8737
+#define GL_MODELVIEW24_ARB                                      0x8738
+#define GL_MODELVIEW25_ARB                                      0x8739
+#define GL_MODELVIEW26_ARB                                      0x873A
+#define GL_MODELVIEW27_ARB                                      0x873B
+#define GL_MODELVIEW28_ARB                                      0x873C
+#define GL_MODELVIEW29_ARB                                      0x873D
+#define GL_MODELVIEW30_ARB                                      0x873E
+#define GL_MODELVIEW31_ARB                                      0x873F
+
+typedef void (APIENTRY * glWeightbvARBPROC) (GLint size, GLbyte *weights);
+typedef void (APIENTRY * glWeightsvARBPROC) (GLint size, GLshort *weights);
+typedef void (APIENTRY * glWeightivARBPROC) (GLint size, GLint *weights);
+typedef void (APIENTRY * glWeightfvARBPROC) (GLint size, GLfloat *weights);
+typedef void (APIENTRY * glWeightdvARBPROC) (GLint size, GLdouble *weights);
+typedef void (APIENTRY * glWeightubvARBPROC) (GLint size, GLubyte *weights);
+typedef void (APIENTRY * glWeightusvARBPROC) (GLint size, GLushort *weights);
+typedef void (APIENTRY * glWeightuivARBPROC) (GLint size, GLuint *weights);
+typedef void (APIENTRY * glWeightPointerARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+typedef void (APIENTRY * glVertexBlendARBPROC) (GLint count);
+
+extern glWeightbvARBPROC glWeightbvARB;
+extern glWeightsvARBPROC glWeightsvARB;
+extern glWeightivARBPROC glWeightivARB;
+extern glWeightfvARBPROC glWeightfvARB;
+extern glWeightdvARBPROC glWeightdvARB;
+extern glWeightubvARBPROC glWeightubvARB;
+extern glWeightusvARBPROC glWeightusvARB;
+extern glWeightuivARBPROC glWeightuivARB;
+extern glWeightPointerARBPROC glWeightPointerARB;
+extern glVertexBlendARBPROC glVertexBlendARB;
+
+#endif /* GL_ARB_vertex_blend */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_MULTI_DRAW_ARRAYS----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_multi_draw_arrays
+#define GL_EXT_multi_draw_arrays 1
+
+typedef void (APIENTRY * glMultiDrawArraysEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * glMultiDrawElementsEXTPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
+
+extern glMultiDrawArraysEXTPROC glMultiDrawArraysEXT;
+extern glMultiDrawElementsEXTPROC glMultiDrawElementsEXT;
+
+#endif /* GL_EXT_multi_draw_arrays */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_MATRIX_PALETTE-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_matrix_palette
+#define GL_ARB_matrix_palette 1
+
+#define GL_MATRIX_PALETTE_ARB                                   0x8840
+#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB                   0x8841
+#define GL_MAX_PALETTE_MATRICES_ARB                             0x8842
+#define GL_CURRENT_PALETTE_MATRIX_ARB                           0x8843
+#define GL_MATRIX_INDEX_ARRAY_ARB                               0x8844
+#define GL_CURRENT_MATRIX_INDEX_ARB                             0x8845
+#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB                          0x8846
+#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB                          0x8847
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB                        0x8848
+#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB                       0x8849
+
+typedef void (APIENTRY * glCurrentPaletteMatrixARBPROC) (GLint index);
+typedef void (APIENTRY * glMatrixIndexubvARBPROC) (GLint size, GLubyte *indices);
+typedef void (APIENTRY * glMatrixIndexusvARBPROC) (GLint size, GLushort *indices);
+typedef void (APIENTRY * glMatrixIndexuivARBPROC) (GLint size, GLuint *indices);
+typedef void (APIENTRY * glMatrixIndexPointerARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+
+extern glCurrentPaletteMatrixARBPROC glCurrentPaletteMatrixARB;
+extern glMatrixIndexubvARBPROC glMatrixIndexubvARB;
+extern glMatrixIndexusvARBPROC glMatrixIndexusvARB;
+extern glMatrixIndexuivARBPROC glMatrixIndexuivARB;
+extern glMatrixIndexPointerARBPROC glMatrixIndexPointerARB;
+
+#endif /* GL_ARB_matrix_palette */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_VERTEX_SHADER--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_vertex_shader
+#define GL_EXT_vertex_shader 1
+
+#define GL_VERTEX_SHADER_EXT                                    0x8780
+#define GL_VERTEX_SHADER_BINDING_EXT                            0x8781
+#define GL_OP_INDEX_EXT                                         0x8782
+#define GL_OP_NEGATE_EXT                                        0x8783
+#define GL_OP_DOT3_EXT                                          0x8784
+#define GL_OP_DOT4_EXT                                          0x8785
+#define GL_OP_MUL_EXT                                           0x8786
+#define GL_OP_ADD_EXT                                           0x8787
+#define GL_OP_MADD_EXT                                          0x8788
+#define GL_OP_FRAC_EXT                                          0x8789
+#define GL_OP_MAX_EXT                                           0x878A
+#define GL_OP_MIN_EXT                                           0x878B
+#define GL_OP_SET_GE_EXT                                        0x878C
+#define GL_OP_SET_LT_EXT                                        0x878D
+#define GL_OP_CLAMP_EXT                                         0x878E
+#define GL_OP_FLOOR_EXT                                         0x878F
+#define GL_OP_ROUND_EXT                                         0x8790
+#define GL_OP_EXP_BASE_2_EXT                                    0x8791
+#define GL_OP_LOG_BASE_2_EXT                                    0x8792
+#define GL_OP_POWER_EXT                                         0x8793
+#define GL_OP_RECIP_EXT                                         0x8794
+#define GL_OP_RECIP_SQRT_EXT                                    0x8795
+#define GL_OP_SUB_EXT                                           0x8796
+#define GL_OP_CROSS_PRODUCT_EXT                                 0x8797
+#define GL_OP_MULTIPLY_MATRIX_EXT                               0x8798
+#define GL_OP_MOV_EXT                                           0x8799
+#define GL_OUTPUT_VERTEX_EXT                                    0x879A
+#define GL_OUTPUT_COLOR0_EXT                                    0x879B
+#define GL_OUTPUT_COLOR1_EXT                                    0x879C
+#define GL_OUTPUT_TEXTURE_COORD0_EXT                            0x879D
+#define GL_OUTPUT_TEXTURE_COORD1_EXT                            0x879E
+#define GL_OUTPUT_TEXTURE_COORD2_EXT                            0x879F
+#define GL_OUTPUT_TEXTURE_COORD3_EXT                            0x87A0
+#define GL_OUTPUT_TEXTURE_COORD4_EXT                            0x87A1
+#define GL_OUTPUT_TEXTURE_COORD5_EXT                            0x87A2
+#define GL_OUTPUT_TEXTURE_COORD6_EXT                            0x87A3
+#define GL_OUTPUT_TEXTURE_COORD7_EXT                            0x87A4
+#define GL_OUTPUT_TEXTURE_COORD8_EXT                            0x87A5
+#define GL_OUTPUT_TEXTURE_COORD9_EXT                            0x87A6
+#define GL_OUTPUT_TEXTURE_COORD10_EXT                           0x87A7
+#define GL_OUTPUT_TEXTURE_COORD11_EXT                           0x87A8
+#define GL_OUTPUT_TEXTURE_COORD12_EXT                           0x87A9
+#define GL_OUTPUT_TEXTURE_COORD13_EXT                           0x87AA
+#define GL_OUTPUT_TEXTURE_COORD14_EXT                           0x87AB
+#define GL_OUTPUT_TEXTURE_COORD15_EXT                           0x87AC
+#define GL_OUTPUT_TEXTURE_COORD16_EXT                           0x87AD
+#define GL_OUTPUT_TEXTURE_COORD17_EXT                           0x87AE
+#define GL_OUTPUT_TEXTURE_COORD18_EXT                           0x87AF
+#define GL_OUTPUT_TEXTURE_COORD19_EXT                           0x87B0
+#define GL_OUTPUT_TEXTURE_COORD20_EXT                           0x87B1
+#define GL_OUTPUT_TEXTURE_COORD21_EXT                           0x87B2
+#define GL_OUTPUT_TEXTURE_COORD22_EXT                           0x87B3
+#define GL_OUTPUT_TEXTURE_COORD23_EXT                           0x87B4
+#define GL_OUTPUT_TEXTURE_COORD24_EXT                           0x87B5
+#define GL_OUTPUT_TEXTURE_COORD25_EXT                           0x87B6
+#define GL_OUTPUT_TEXTURE_COORD26_EXT                           0x87B7
+#define GL_OUTPUT_TEXTURE_COORD27_EXT                           0x87B8
+#define GL_OUTPUT_TEXTURE_COORD28_EXT                           0x87B9
+#define GL_OUTPUT_TEXTURE_COORD29_EXT                           0x87BA
+#define GL_OUTPUT_TEXTURE_COORD30_EXT                           0x87BB
+#define GL_OUTPUT_TEXTURE_COORD31_EXT                           0x87BC
+#define GL_OUTPUT_FOG_EXT                                       0x87BD
+#define GL_SCALAR_EXT                                           0x87BE
+#define GL_VECTOR_EXT                                           0x87BF
+#define GL_MATRIX_EXT                                           0x87C0
+#define GL_VARIANT_EXT                                          0x87C1
+#define GL_INVARIANT_EXT                                        0x87C2
+#define GL_LOCAL_CONSTANT_EXT                                   0x87C3
+#define GL_LOCAL_EXT                                            0x87C4
+#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT                   0x87C5
+#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT                       0x87C6
+#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT                     0x87C7
+#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                0x87C8
+#define GL_MAX_VERTEX_SHADER_LOCALS_EXT                         0x87C9
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT         0x87CA
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT             0x87CB
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT           0x87CC
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT      0x87CD
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT               0x87CE
+#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT                       0x87CF
+#define GL_VERTEX_SHADER_VARIANTS_EXT                           0x87D0
+#define GL_VERTEX_SHADER_INVARIANTS_EXT                         0x87D1
+#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                    0x87D2
+#define GL_VERTEX_SHADER_LOCALS_EXT                             0x87D3
+#define GL_VERTEX_SHADER_OPTIMIZED_EXT                          0x87D4
+#define GL_X_EXT                                                0x87D5
+#define GL_Y_EXT                                                0x87D6
+#define GL_Z_EXT                                                0x87D7
+#define GL_W_EXT                                                0x87D8
+#define GL_NEGATIVE_X_EXT                                       0x87D9
+#define GL_NEGATIVE_Y_EXT                                       0x87DA
+#define GL_NEGATIVE_Z_EXT                                       0x87DB
+#define GL_NEGATIVE_W_EXT                                       0x87DC
+#define GL_ZERO_EXT                                             0x87DD
+#define GL_ONE_EXT                                              0x87DE
+#define GL_NEGATIVE_ONE_EXT                                     0x87DF
+#define GL_NORMALIZED_RANGE_EXT                                 0x87E0
+#define GL_FULL_RANGE_EXT                                       0x87E1
+#define GL_CURRENT_VERTEX_EXT                                   0x87E2
+#define GL_MVP_MATRIX_EXT                                       0x87E3
+#define GL_VARIANT_VALUE_EXT                                    0x87E4
+#define GL_VARIANT_DATATYPE_EXT                                 0x87E5
+#define GL_VARIANT_ARRAY_STRIDE_EXT                             0x87E6
+#define GL_VARIANT_ARRAY_TYPE_EXT                               0x87E7
+#define GL_VARIANT_ARRAY_EXT                                    0x87E8
+#define GL_VARIANT_ARRAY_POINTER_EXT                            0x87E9
+#define GL_INVARIANT_VALUE_EXT                                  0x87EA
+#define GL_INVARIANT_DATATYPE_EXT                               0x87EB
+#define GL_LOCAL_CONSTANT_VALUE_EXT                             0x87EC
+#define GL_LOCAL_CONSTANT_DATATYPE_EXT                          0x87ED
+
+typedef void (APIENTRY * glBeginVertexShaderEXTPROC) ();
+typedef void (APIENTRY * glEndVertexShaderEXTPROC) ();
+typedef void (APIENTRY * glBindVertexShaderEXTPROC) (GLuint id);
+typedef GLuint (APIENTRY * glGenVertexShadersEXTPROC) (GLuint range);
+typedef void (APIENTRY * glDeleteVertexShaderEXTPROC) (GLuint id);
+typedef void (APIENTRY * glShaderOp1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
+typedef void (APIENTRY * glShaderOp2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+typedef void (APIENTRY * glShaderOp3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
+typedef void (APIENTRY * glSwizzleEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (APIENTRY * glWriteMaskEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (APIENTRY * glInsertComponentEXTPROC) (GLuint res, GLuint src, GLuint num);
+typedef void (APIENTRY * glExtractComponentEXTPROC) (GLuint res, GLuint src, GLuint num);
+typedef GLuint (APIENTRY * glGenSymbolsEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components);
+typedef void (APIENTRY * glSetInvariantEXTPROC) (GLuint id, GLenum type, GLvoid *addr);
+typedef void (APIENTRY * glSetLocalConstantEXTPROC) (GLuint id, GLenum type, GLvoid *addr);
+typedef void (APIENTRY * glVariantbvEXTPROC) (GLuint id, GLbyte *addr);
+typedef void (APIENTRY * glVariantsvEXTPROC) (GLuint id, GLshort *addr);
+typedef void (APIENTRY * glVariantivEXTPROC) (GLuint id, GLint *addr);
+typedef void (APIENTRY * glVariantfvEXTPROC) (GLuint id, GLfloat *addr);
+typedef void (APIENTRY * glVariantdvEXTPROC) (GLuint id, GLdouble *addr);
+typedef void (APIENTRY * glVariantubvEXTPROC) (GLuint id, GLubyte *addr);
+typedef void (APIENTRY * glVariantusvEXTPROC) (GLuint id, GLushort *addr);
+typedef void (APIENTRY * glVariantuivEXTPROC) (GLuint id, GLuint *addr);
+typedef void (APIENTRY * glVariantPointerEXTPROC) (GLuint id, GLenum type, GLuint stride, GLvoid *addr);
+typedef void (APIENTRY * glEnableVariantClientStateEXTPROC) (GLuint id);
+typedef void (APIENTRY * glDisableVariantClientStateEXTPROC) (GLuint id);
+typedef GLuint (APIENTRY * glBindLightParameterEXTPROC) (GLenum light, GLenum value);
+typedef GLuint (APIENTRY * glBindMaterialParameterEXTPROC) (GLenum face, GLenum value);
+typedef GLuint (APIENTRY * glBindTexGenParameterEXTPROC) (GLenum unit, GLenum coord, GLenum value);
+typedef GLuint (APIENTRY * glBindTextureUnitParameterEXTPROC) (GLenum unit, GLenum value);
+typedef GLuint (APIENTRY * glBindParameterEXTPROC) (GLenum value);
+typedef GLboolean (APIENTRY * glIsVariantEnabledEXTPROC) (GLuint id, GLenum cap);
+typedef void (APIENTRY * glGetVariantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * glGetVariantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * glGetVariantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+typedef void (APIENTRY * glGetVariantPointervEXTPROC) (GLuint id, GLenum value, GLvoid **data);
+typedef void (APIENTRY * glGetInvariantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * glGetInvariantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * glGetInvariantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+typedef void (APIENTRY * glGetLocalConstantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * glGetLocalConstantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * glGetLocalConstantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+
+extern glBeginVertexShaderEXTPROC glBeginVertexShaderEXT;
+extern glEndVertexShaderEXTPROC glEndVertexShaderEXT;
+extern glBindVertexShaderEXTPROC glBindVertexShaderEXT;
+extern glGenVertexShadersEXTPROC glGenVertexShadersEXT;
+extern glDeleteVertexShaderEXTPROC glDeleteVertexShaderEXT;
+extern glShaderOp1EXTPROC glShaderOp1EXT;
+extern glShaderOp2EXTPROC glShaderOp2EXT;
+extern glShaderOp3EXTPROC glShaderOp3EXT;
+extern glSwizzleEXTPROC glSwizzleEXT;
+extern glWriteMaskEXTPROC glWriteMaskEXT;
+extern glInsertComponentEXTPROC glInsertComponentEXT;
+extern glExtractComponentEXTPROC glExtractComponentEXT;
+extern glGenSymbolsEXTPROC glGenSymbolsEXT;
+extern glSetInvariantEXTPROC glSetInvariantEXT;
+extern glSetLocalConstantEXTPROC glSetLocalConstantEXT;
+extern glVariantbvEXTPROC glVariantbvEXT;
+extern glVariantsvEXTPROC glVariantsvEXT;
+extern glVariantivEXTPROC glVariantivEXT;
+extern glVariantfvEXTPROC glVariantfvEXT;
+extern glVariantdvEXTPROC glVariantdvEXT;
+extern glVariantubvEXTPROC glVariantubvEXT;
+extern glVariantusvEXTPROC glVariantusvEXT;
+extern glVariantuivEXTPROC glVariantuivEXT;
+extern glVariantPointerEXTPROC glVariantPointerEXT;
+extern glEnableVariantClientStateEXTPROC glEnableVariantClientStateEXT;
+extern glDisableVariantClientStateEXTPROC glDisableVariantClientStateEXT;
+extern glBindLightParameterEXTPROC glBindLightParameterEXT;
+extern glBindMaterialParameterEXTPROC glBindMaterialParameterEXT;
+extern glBindTexGenParameterEXTPROC glBindTexGenParameterEXT;
+extern glBindTextureUnitParameterEXTPROC glBindTextureUnitParameterEXT;
+extern glBindParameterEXTPROC glBindParameterEXT;
+extern glIsVariantEnabledEXTPROC glIsVariantEnabledEXT;
+extern glGetVariantBooleanvEXTPROC glGetVariantBooleanvEXT;
+extern glGetVariantIntegervEXTPROC glGetVariantIntegervEXT;
+extern glGetVariantFloatvEXTPROC glGetVariantFloatvEXT;
+extern glGetVariantPointervEXTPROC glGetVariantPointervEXT;
+extern glGetInvariantBooleanvEXTPROC glGetInvariantBooleanvEXT;
+extern glGetInvariantIntegervEXTPROC glGetInvariantIntegervEXT;
+extern glGetInvariantFloatvEXTPROC glGetInvariantFloatvEXT;
+extern glGetLocalConstantBooleanvEXTPROC glGetLocalConstantBooleanvEXT;
+extern glGetLocalConstantIntegervEXTPROC glGetLocalConstantIntegervEXT;
+extern glGetLocalConstantFloatvEXTPROC glGetLocalConstantFloatvEXT;
+
+#endif /* GL_EXT_vertex_shader */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_ENVMAP_BUMPMAP-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_envmap_bumpmap
+#define GL_ATI_envmap_bumpmap 1
+
+#define GL_BUMP_ROT_MATRIX_ATI                                  0x8775
+#define GL_BUMP_ROT_MATRIX_SIZE_ATI                             0x8776
+#define GL_BUMP_NUM_TEX_UNITS_ATI                               0x8777
+#define GL_BUMP_TEX_UNITS_ATI                                   0x8778
+#define GL_DUDV_ATI                                             0x8779
+#define GL_DU8DV8_ATI                                           0x877A
+#define GL_BUMP_ENVMAP_ATI                                      0x877B
+#define GL_BUMP_TARGET_ATI                                      0x877C
+
+typedef void (APIENTRY * glTexBumpParameterivATIPROC) (GLenum pname, GLint *param);
+typedef void (APIENTRY * glTexBumpParameterfvATIPROC) (GLenum pname, GLfloat *param);
+typedef void (APIENTRY * glGetTexBumpParameterivATIPROC) (GLenum pname, GLint *param);
+typedef void (APIENTRY * glGetTexBumpParameterfvATIPROC) (GLenum pname, GLfloat *param);
+
+extern glTexBumpParameterivATIPROC glTexBumpParameterivATI;
+extern glTexBumpParameterfvATIPROC glTexBumpParameterfvATI;
+extern glGetTexBumpParameterivATIPROC glGetTexBumpParameterivATI;
+extern glGetTexBumpParameterfvATIPROC glGetTexBumpParameterfvATI;
+
+#endif /* GL_ATI_envmap_bumpmap */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_FRAGMENT_SHADER------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_fragment_shader
+#define GL_ATI_fragment_shader 1
+
+#define GL_FRAGMENT_SHADER_ATI                                  0x8920
+#define GL_REG_0_ATI                                            0x8921
+#define GL_REG_1_ATI                                            0x8922
+#define GL_REG_2_ATI                                            0x8923
+#define GL_REG_3_ATI                                            0x8924
+#define GL_REG_4_ATI                                            0x8925
+#define GL_REG_5_ATI                                            0x8926
+#define GL_REG_6_ATI                                            0x8927
+#define GL_REG_7_ATI                                            0x8928
+#define GL_REG_8_ATI                                            0x8929
+#define GL_REG_9_ATI                                            0x892A
+#define GL_REG_10_ATI                                           0x892B
+#define GL_REG_11_ATI                                           0x892C
+#define GL_REG_12_ATI                                           0x892D
+#define GL_REG_13_ATI                                           0x892E
+#define GL_REG_14_ATI                                           0x892F
+#define GL_REG_15_ATI                                           0x8930
+#define GL_REG_16_ATI                                           0x8931
+#define GL_REG_17_ATI                                           0x8932
+#define GL_REG_18_ATI                                           0x8933
+#define GL_REG_19_ATI                                           0x8934
+#define GL_REG_20_ATI                                           0x8935
+#define GL_REG_21_ATI                                           0x8936
+#define GL_REG_22_ATI                                           0x8937
+#define GL_REG_23_ATI                                           0x8938
+#define GL_REG_24_ATI                                           0x8939
+#define GL_REG_25_ATI                                           0x893A
+#define GL_REG_26_ATI                                           0x893B
+#define GL_REG_27_ATI                                           0x893C
+#define GL_REG_28_ATI                                           0x893D
+#define GL_REG_29_ATI                                           0x893E
+#define GL_REG_30_ATI                                           0x893F
+#define GL_REG_31_ATI                                           0x8940
+#define GL_CON_0_ATI                                            0x8941
+#define GL_CON_1_ATI                                            0x8942
+#define GL_CON_2_ATI                                            0x8943
+#define GL_CON_3_ATI                                            0x8944
+#define GL_CON_4_ATI                                            0x8945
+#define GL_CON_5_ATI                                            0x8946
+#define GL_CON_6_ATI                                            0x8947
+#define GL_CON_7_ATI                                            0x8948
+#define GL_CON_8_ATI                                            0x8949
+#define GL_CON_9_ATI                                            0x894A
+#define GL_CON_10_ATI                                           0x894B
+#define GL_CON_11_ATI                                           0x894C
+#define GL_CON_12_ATI                                           0x894D
+#define GL_CON_13_ATI                                           0x894E
+#define GL_CON_14_ATI                                           0x894F
+#define GL_CON_15_ATI                                           0x8950
+#define GL_CON_16_ATI                                           0x8951
+#define GL_CON_17_ATI                                           0x8952
+#define GL_CON_18_ATI                                           0x8953
+#define GL_CON_19_ATI                                           0x8954
+#define GL_CON_20_ATI                                           0x8955
+#define GL_CON_21_ATI                                           0x8956
+#define GL_CON_22_ATI                                           0x8957
+#define GL_CON_23_ATI                                           0x8958
+#define GL_CON_24_ATI                                           0x8959
+#define GL_CON_25_ATI                                           0x895A
+#define GL_CON_26_ATI                                           0x895B
+#define GL_CON_27_ATI                                           0x895C
+#define GL_CON_28_ATI                                           0x895D
+#define GL_CON_29_ATI                                           0x895E
+#define GL_CON_30_ATI                                           0x895F
+#define GL_CON_31_ATI                                           0x8960
+#define GL_MOV_ATI                                              0x8961
+#define GL_ADD_ATI                                              0x8963
+#define GL_MUL_ATI                                              0x8964
+#define GL_SUB_ATI                                              0x8965
+#define GL_DOT3_ATI                                             0x8966
+#define GL_DOT4_ATI                                             0x8967
+#define GL_MAD_ATI                                              0x8968
+#define GL_LERP_ATI                                             0x8969
+#define GL_CND_ATI                                              0x896A
+#define GL_CND0_ATI                                             0x896B
+#define GL_DOT2_ADD_ATI                                         0x896C
+#define GL_SECONDARY_INTERPOLATOR_ATI                           0x896D
+#define GL_NUM_FRAGMENT_REGISTERS_ATI                           0x896E
+#define GL_NUM_FRAGMENT_CONSTANTS_ATI                           0x896F
+#define GL_NUM_PASSES_ATI                                       0x8970
+#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI                        0x8971
+#define GL_NUM_INSTRUCTIONS_TOTAL_ATI                           0x8972
+#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI                0x8973
+#define GL_NUM_LOOPBACK_COMPONENTS_ATI                          0x8974
+#define GL_COLOR_ALPHA_PAIRING_ATI                              0x8975
+#define GL_SWIZZLE_STR_ATI                                      0x8976
+#define GL_SWIZZLE_STQ_ATI                                      0x8977
+#define GL_SWIZZLE_STR_DR_ATI                                   0x8978
+#define GL_SWIZZLE_STQ_DQ_ATI                                   0x8979
+#define GL_SWIZZLE_STRQ_ATI                                     0x897A
+#define GL_SWIZZLE_STRQ_DQ_ATI                                  0x897B
+#define GL_RED_BIT_ATI                                          0x00000001
+#define GL_GREEN_BIT_ATI                                        0x00000002
+#define GL_BLUE_BIT_ATI                                         0x00000004
+#define GL_2X_BIT_ATI                                           0x00000001
+#define GL_4X_BIT_ATI                                           0x00000002
+#define GL_8X_BIT_ATI                                           0x00000004
+#define GL_HALF_BIT_ATI                                         0x00000008
+#define GL_QUARTER_BIT_ATI                                      0x00000010
+#define GL_EIGHTH_BIT_ATI                                       0x00000020
+#define GL_SATURATE_BIT_ATI                                     0x00000040
+#define GL_COMP_BIT_ATI                                         0x00000002
+#define GL_NEGATE_BIT_ATI                                       0x00000004
+#define GL_BIAS_BIT_ATI                                         0x00000008
+
+typedef GLuint (APIENTRY * glGenFragmentShadersATIPROC) (GLuint range);
+typedef void (APIENTRY * glBindFragmentShaderATIPROC) (GLuint id);
+typedef void (APIENTRY * glDeleteFragmentShaderATIPROC) (GLuint id);
+typedef void (APIENTRY * glBeginFragmentShaderATIPROC) (GLvoid);
+typedef void (APIENTRY * glEndFragmentShaderATIPROC) (GLvoid);
+typedef void (APIENTRY * glPassTexCoordATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
+typedef void (APIENTRY * glSampleMapATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
+typedef void (APIENTRY * glColorFragmentOp1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (APIENTRY * glColorFragmentOp2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (APIENTRY * glColorFragmentOp3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (APIENTRY * glAlphaFragmentOp1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (APIENTRY * glAlphaFragmentOp2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (APIENTRY * glAlphaFragmentOp3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (APIENTRY * glSetFragmentShaderConstantATIPROC) (GLuint dst, const GLfloat *value);
+
+extern glGenFragmentShadersATIPROC glGenFragmentShadersATI;
+extern glBindFragmentShaderATIPROC glBindFragmentShaderATI;
+extern glDeleteFragmentShaderATIPROC glDeleteFragmentShaderATI;
+extern glBeginFragmentShaderATIPROC glBeginFragmentShaderATI;
+extern glEndFragmentShaderATIPROC glEndFragmentShaderATI;
+extern glPassTexCoordATIPROC glPassTexCoordATI;
+extern glSampleMapATIPROC glSampleMapATI;
+extern glColorFragmentOp1ATIPROC glColorFragmentOp1ATI;
+extern glColorFragmentOp2ATIPROC glColorFragmentOp2ATI;
+extern glColorFragmentOp3ATIPROC glColorFragmentOp3ATI;
+extern glAlphaFragmentOp1ATIPROC glAlphaFragmentOp1ATI;
+extern glAlphaFragmentOp2ATIPROC glAlphaFragmentOp2ATI;
+extern glAlphaFragmentOp3ATIPROC glAlphaFragmentOp3ATI;
+extern glSetFragmentShaderConstantATIPROC glSetFragmentShaderConstantATI;
+
+#endif /* GL_ATI_fragment_shader */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_TEXTURE_MIRROR_ONCE--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_texture_mirror_once
+#define GL_ATI_texture_mirror_once 1
+
+#define GL_MIRROR_CLAMP_ATI                                     0x8742
+#define GL_MIRROR_CLAMP_TO_EDGE_ATI                             0x8743
+
+#endif
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_ELEMENT_ARRAY--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_element_array
+#define GL_ATI_element_array 1
+
+#define GL_ELEMENT_ARRAY_ATI                                    0x8768
+#define GL_ELEMENT_ARRAY_TYPE_ATI                               0x8769
+#define GL_ELEMENT_ARRAY_POINTER_ATI                            0x876A
+
+typedef void (APIENTRY * glElementPointerATIPROC) (GLenum type, const GLvoid *pointer);
+typedef void (APIENTRY * glDrawElementArrayATIPROC) (GLenum mode, GLsizei count);
+typedef void (APIENTRY * glDrawRangeElementArrayATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
+
+extern glElementPointerATIPROC glElementPointerATI;
+extern glDrawElementArrayATIPROC glDrawElementArrayATI;
+extern glDrawRangeElementArrayATIPROC glDrawRangeElementArrayATI;
+
+#endif /* GL_ATI_element_array */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_VERTEX_STREAMS-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_vertex_streams 
+#define GL_ATI_vertex_streams 1
+
+#define GL_MAX_VERTEX_STREAMS_ATI                               0x876B  
+#define GL_VERTEX_SOURCE_ATI                                    0x876C
+#define GL_VERTEX_STREAM0_ATI                                   0x876D
+#define GL_VERTEX_STREAM1_ATI                                   0x876E
+#define GL_VERTEX_STREAM2_ATI                                   0x876F
+#define GL_VERTEX_STREAM3_ATI                                   0x8770
+#define GL_VERTEX_STREAM4_ATI                                   0x8771
+#define GL_VERTEX_STREAM5_ATI                                   0x8772
+#define GL_VERTEX_STREAM6_ATI                                   0x8773
+#define GL_VERTEX_STREAM7_ATI                                   0x8774
+
+typedef void (APIENTRY * glClientActiveVertexStreamATIPROC) (GLenum stream);
+typedef void (APIENTRY * glVertexBlendEnviATIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * glVertexBlendEnvfATIPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glVertexStream2sATIPROC) (GLenum stream, GLshort x, GLshort y);
+typedef void (APIENTRY * glVertexStream2svATIPROC) (GLenum stream, const GLshort *v);
+typedef void (APIENTRY * glVertexStream2iATIPROC) (GLenum stream, GLint x, GLint y);
+typedef void (APIENTRY * glVertexStream2ivATIPROC) (GLenum stream, const GLint *v);
+typedef void (APIENTRY * glVertexStream2fATIPROC) (GLenum stream, GLfloat x, GLfloat y);
+typedef void (APIENTRY * glVertexStream2fvATIPROC) (GLenum stream, const GLfloat *v);
+typedef void (APIENTRY * glVertexStream2dATIPROC) (GLenum stream, GLdouble x, GLdouble y);
+typedef void (APIENTRY * glVertexStream2dvATIPROC) (GLenum stream, const GLdouble *v);
+typedef void (APIENTRY * glVertexStream3sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glVertexStream3svATIPROC) (GLenum stream, const GLshort *v);
+typedef void (APIENTRY * glVertexStream3iATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
+typedef void (APIENTRY * glVertexStream3ivATIPROC) (GLenum stream, const GLint *v);
+typedef void (APIENTRY * glVertexStream3fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glVertexStream3fvATIPROC) (GLenum stream, const GLfloat *v);
+typedef void (APIENTRY * glVertexStream3dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glVertexStream3dvATIPROC) (GLenum stream, const GLdouble *v);
+typedef void (APIENTRY * glVertexStream4sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * glVertexStream4svATIPROC) (GLenum stream, const GLshort *v);
+typedef void (APIENTRY * glVertexStream4iATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRY * glVertexStream4ivATIPROC) (GLenum stream, const GLint *v);
+typedef void (APIENTRY * glVertexStream4fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glVertexStream4fvATIPROC) (GLenum stream, const GLfloat *v);
+typedef void (APIENTRY * glVertexStream4dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glVertexStream4dvATIPROC) (GLenum stream, const GLdouble *v);
+typedef void (APIENTRY * glNormalStream3bATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z);
+typedef void (APIENTRY * glNormalStream3bvATIPROC) (GLenum stream, const GLbyte *v);
+typedef void (APIENTRY * glNormalStream3sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glNormalStream3svATIPROC) (GLenum stream, const GLshort *v);
+typedef void (APIENTRY * glNormalStream3iATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
+typedef void (APIENTRY * glNormalStream3ivATIPROC) (GLenum stream, const GLint *v);
+typedef void (APIENTRY * glNormalStream3fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glNormalStream3fvATIPROC) (GLenum stream, const GLfloat *v);
+typedef void (APIENTRY * glNormalStream3dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glNormalStream3dvATIPROC) (GLenum stream, const GLdouble *v);
+
+extern glClientActiveVertexStreamATIPROC glClientActiveVertexStreamATI;
+extern glVertexBlendEnviATIPROC glVertexBlendEnviATI;
+extern glVertexBlendEnvfATIPROC glVertexBlendEnvfATI;
+extern glVertexStream2sATIPROC glVertexStream2sATI;
+extern glVertexStream2svATIPROC glVertexStream2svATI;
+extern glVertexStream2iATIPROC glVertexStream2iATI;
+extern glVertexStream2ivATIPROC glVertexStream2ivATI;
+extern glVertexStream2fATIPROC glVertexStream2fATI;
+extern glVertexStream2fvATIPROC glVertexStream2fvATI;
+extern glVertexStream2dATIPROC glVertexStream2dATI;
+extern glVertexStream2dvATIPROC glVertexStream2dvATI;
+extern glVertexStream3sATIPROC glVertexStream3sATI;
+extern glVertexStream3svATIPROC glVertexStream3svATI;
+extern glVertexStream3iATIPROC glVertexStream3iATI;
+extern glVertexStream3ivATIPROC glVertexStream3ivATI;
+extern glVertexStream3fATIPROC glVertexStream3fATI;
+extern glVertexStream3fvATIPROC glVertexStream3fvATI;
+extern glVertexStream3dATIPROC glVertexStream3dATI;
+extern glVertexStream3dvATIPROC glVertexStream3dvATI;
+extern glVertexStream4sATIPROC glVertexStream4sATI;
+extern glVertexStream4svATIPROC glVertexStream4svATI;
+extern glVertexStream4iATIPROC glVertexStream4iATI;
+extern glVertexStream4ivATIPROC glVertexStream4ivATI;
+extern glVertexStream4fATIPROC glVertexStream4fATI;
+extern glVertexStream4fvATIPROC glVertexStream4fvATI;
+extern glVertexStream4dATIPROC glVertexStream4dATI;
+extern glVertexStream4dvATIPROC glVertexStream4dvATI;
+extern glNormalStream3bATIPROC glNormalStream3bATI;
+extern glNormalStream3bvATIPROC glNormalStream3bvATI;
+extern glNormalStream3sATIPROC glNormalStream3sATI;
+extern glNormalStream3svATIPROC glNormalStream3svATI;
+extern glNormalStream3iATIPROC glNormalStream3iATI;
+extern glNormalStream3ivATIPROC glNormalStream3ivATI;
+extern glNormalStream3fATIPROC glNormalStream3fATI;
+extern glNormalStream3fvATIPROC glNormalStream3fvATI;
+extern glNormalStream3dATIPROC glNormalStream3dATI;
+extern glNormalStream3dvATIPROC glNormalStream3dvATI;
+
+#endif /* GL_ATI_vertex_streams */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_VERTEX_ARRAY_OBJECT--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_vertex_array_object
+#define GL_ATI_vertex_array_object 1
+
+#define GL_STATIC_ATI                                           0x8760
+#define GL_DYNAMIC_ATI                                          0x8761
+#define GL_PRESERVE_ATI                                         0x8762
+#define GL_DISCARD_ATI                                          0x8763
+#define GL_OBJECT_BUFFER_SIZE_ATI                               0x8764
+#define GL_OBJECT_BUFFER_USAGE_ATI                              0x8765
+#define GL_ARRAY_OBJECT_BUFFER_ATI                              0x8766
+#define GL_ARRAY_OBJECT_OFFSET_ATI                              0x8767
+
+typedef GLuint (APIENTRY * glNewObjectBufferATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);
+typedef GLboolean (APIENTRY * glIsObjectBufferATIPROC) (GLuint buffer);
+typedef void (APIENTRY * glUpdateObjectBufferATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
+typedef void (APIENTRY * glGetObjectBufferfvATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetObjectBufferivATIPROC) (GLuint buffer, GLenum pname, GLint *params);
+typedef void (APIENTRY * glFreeObjectBufferATIPROC) (GLuint buffer);
+typedef void (APIENTRY * glArrayObjectATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRY * glGetArrayObjectfvATIPROC) (GLenum array, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetArrayObjectivATIPROC) (GLenum array, GLenum pname, GLint *params);
+typedef void (APIENTRY * glVariantArrayObjectATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRY * glGetVariantArrayObjectfvATIPROC) (GLuint id, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetVariantArrayObjectivATIPROC) (GLuint id, GLenum pname, GLint *params);
+
+extern glNewObjectBufferATIPROC glNewObjectBufferATI;
+extern glIsObjectBufferATIPROC glIsObjectBufferATI;
+extern glUpdateObjectBufferATIPROC glUpdateObjectBufferATI;
+extern glGetObjectBufferfvATIPROC glGetObjectBufferfvATI;
+extern glGetObjectBufferivATIPROC glGetObjectBufferivATI;
+extern glFreeObjectBufferATIPROC glFreeObjectBufferATI;
+extern glArrayObjectATIPROC glArrayObjectATI;
+extern glGetArrayObjectfvATIPROC glGetArrayObjectfvATI;
+extern glGetArrayObjectivATIPROC glGetArrayObjectivATI;
+extern glVariantArrayObjectATIPROC glVariantArrayObjectATI;
+extern glGetVariantArrayObjectfvATIPROC glGetVariantArrayObjectfvATI;
+extern glGetVariantArrayObjectivATIPROC glGetVariantArrayObjectivATI;
+
+#endif /* GL_ATI_vertex_array_object */
+
+/*-------------------------------------------------------------------*/
+/*------------HP_OCCLUSION_TEST--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_HP_occlusion_test
+#define GL_HP_occlusion_test 1
+
+#define GL_OCCLUSION_TEST_HP                                    0x8165;
+#define GL_OCCLUSION_TEST_RESULT_HP                             0x8166;
+
+#endif /* GL_HP_occlusion_test */
+
+/*-------------------------------------------------------------------*/
+/*------------ATIX_POINT_SPRITES-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATIX_point_sprites
+#define GL_ATIX_point_sprites 1
+
+#define GL_TEXTURE_POINT_MODE_ATIX                              0x60b0
+#define        GL_TEXTURE_POINT_ONE_COORD_ATIX                         0x60b1
+#define        GL_TEXTURE_POINT_SPRITE_ATIX                            0x60b2
+#define GL_POINT_SPRITE_CULL_MODE_ATIX                          0x60b3
+#define GL_POINT_SPRITE_CULL_CENTER_ATIX                        0x60b4
+#define GL_POINT_SPRITE_CULL_CLIP_ATIX                          0x60b5
+
+#endif /* GL_ATIX_point_sprites */
+
+/*-------------------------------------------------------------------*/
+/*------------ATIX_TEXTURE_ENV_ROUTE---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATIX_texture_env_route
+#define GL_ATIX_texture_env_route 1
+
+#define GL_SECONDARY_COLOR_ATIX                                 0x8747
+#define GL_TEXTURE_OUTPUT_RGB_ATIX                              0x8748
+#define GL_TEXTURE_OUTPUT_ALPHA_ATIX                            0x8749
+
+#endif /* GL_ATIX_texture_env_route */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_DEPTH_CLAMP-----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_depth_clamp
+#define GL_NV_depth_clamp 1
+
+#define GL_DEPTH_CLAMP_NV                                       0x864F
+
+#endif /* GL_NV_depth_clamp */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_OCCLUSION_QUERY-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_occlusion_query
+#define GL_NV_occlusion_query 1
+
+#ifndef GL_HP_occlusion_test
+#define GL_OCCLUSION_TEST_HP                                    0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP                             0x8166
+#endif /* GL_HP_occlusion_test */
+#define GL_PIXEL_COUNTER_BITS_NV                                0x8864
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV                        0x8865
+#define GL_PIXEL_COUNT_NV                                       0x8866
+#define GL_PIXEL_COUNT_AVAILABLE_NV                             0x8867
+
+typedef void (APIENTRY * glGenOcclusionQueriesNVPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRY * glDeleteOcclusionQueriesNVPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRY * glIsOcclusionQueryNVPROC) (GLuint id);
+typedef void (APIENTRY * glBeginOcclusionQueryNVPROC) (GLuint id);
+typedef void (APIENTRY * glEndOcclusionQueryNVPROC) (void);
+typedef void (APIENTRY * glGetOcclusionQueryivNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetOcclusionQueryuivNVPROC) (GLuint id, GLenum pname, GLuint *params);
+
+extern glGenOcclusionQueriesNVPROC glGenOcclusionQueriesNV;
+extern glDeleteOcclusionQueriesNVPROC glDeleteOcclusionQueriesNV;
+extern glIsOcclusionQueryNVPROC glIsOcclusionQueryNV;
+extern glBeginOcclusionQueryNVPROC glBeginOcclusionQueryNV;
+extern glEndOcclusionQueryNVPROC glEndOcclusionQueryNV;
+extern glGetOcclusionQueryivNVPROC glGetOcclusionQueryivNV;
+extern glGetOcclusionQueryuivNVPROC glGetOcclusionQueryuivNV;
+
+#endif /* GL_NV_occlusion_query */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_POINT_SPRITE----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_point_sprite
+#define GL_NV_point_sprite 1
+
+#define GL_POINT_SPRITE_NV                                      0x8861
+#define GL_COORD_REPLACE_NV                                     0x8862
+#define GL_POINT_SPRITE_R_MODE_NV                               0x8863
+
+typedef void (APIENTRY * glPointParameteriNVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * glPointParameterivNVPROC) (GLenum pname, const GLint *params);
+
+extern glPointParameteriNVPROC glPointParameteriNV;
+extern glPointParameterivNVPROC glPointParameterivNV;
+
+#endif /* GL_NV_point_sprite */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXTURE_SHADER3-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_shader3
+#define GL_NV_texture_shader3 1
+
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV                      0x8850
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV                0x8851
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV               0x8852
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV         0x8853
+#define GL_OFFSET_HILO_TEXTURE_2D_NV                            0x8854
+#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV                     0x8855
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV                 0x8856
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV          0x8857
+#define GL_DEPENDENT_HILO_TEXTURE_2D_NV                         0x8858
+#define GL_DEPENDENT_RGB_TEXTURE_3D_NV                          0x8859
+#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV                    0x885A
+#define GL_DOT_PRODUCT_PASS_THROUGH_NV                          0x885B
+#define GL_DOT_PRODUCT_TEXTURE_1D_NV                            0x885C
+#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV                  0x885D
+#define GL_HILO8_NV                                             0x885E
+#define GL_SIGNED_HILO8_NV                                      0x885F
+#define GL_FORCE_BLUE_TO_ONE_NV                                 0x8860
+
+#endif /* GL_NV_texture_shader3 */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_VERTEX_PROGRAM1_1-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_program1_1
+#define GL_NV_vertex_program1_1
+
+#endif /* GL_NV_vertex_program1_1 */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_MIRRORED_REPEAT----------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_mirrored_repeat
+#define GL_ARB_texture_mirrored_repeat 1
+
+#define GL_GL_MIRRORED_REPEAT_ARB                               0x8370
+
+#endif /* GL_ARB_texture_mirrored_repeat */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_SHADOW---------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_shadow
+#define GL_ARB_shadow 1
+
+#define GL_TEXTURE_COMPARE_MODE_ARB                             0x884C
+#define GL_TEXTURE_COMPARE_FUNC_ARB                             0x884D
+#define GL_COMPARE_R_TO_TEXTURE_ARB                             0x884E
+
+#endif /* GL_ARB_shadow */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_SHADOW_AMBIENT-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_shadow_ambient
+#define GL_ARB_shadow_ambient 1
+
+#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB                       0x80BF 
+
+#endif /* GL_ARB_shadow_ambient */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_DEPTH_TEXTURE--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_depth_texture
+#define GL_ARB_depth_texture 1
+
+#define GL_DEPTH_COMPONENT16_ARB                                0x81A5
+#define GL_DEPTH_COMPONENT24_ARB                                0x81A6
+#define GL_DEPTH_COMPONENT32_ARB                                0x81A7
+#define GL_TEXTURE_DEPTH_SIZE_ARB                               0x884A
+#define GL_DEPTH_TEXTURE_MODE_ARB                               0x884B
+
+#endif /* GL_ARB_depth_texture */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_WINDOW_POS-----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_window_pos
+#define GL_ARB_window_pos 1
+
+typedef void (APIENTRY * glWindowPos2dARBPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRY * glWindowPos2fARBPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRY * glWindowPos2iARBPROC) (GLint x, GLint y);
+typedef void (APIENTRY * glWindowPos2sARBPROC) (GLshort x, GLshort y);
+typedef void (APIENTRY * glWindowPos2dvARBPROC) (const GLdouble *p);
+typedef void (APIENTRY * glWindowPos2fvARBPROC) (const GLfloat *p);
+typedef void (APIENTRY * glWindowPos2ivARBPROC) (const GLint *p);
+typedef void (APIENTRY * glWindowPos2svARBPROC) (const GLshort *p);
+typedef void (APIENTRY * glWindowPos3dARBPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glWindowPos3fARBPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glWindowPos3iARBPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRY * glWindowPos3sARBPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glWindowPos3dvARBPROC) (const GLdouble *p);
+typedef void (APIENTRY * glWindowPos3fvARBPROC) (const GLfloat *p);
+typedef void (APIENTRY * glWindowPos3ivARBPROC) (const GLint *p);
+typedef void (APIENTRY * glWindowPos3svARBPROC) (const GLshort *p);
+
+extern glWindowPos2dARBPROC glWindowPos2dARB;
+extern glWindowPos2fARBPROC glWindowPos2fARB;
+extern glWindowPos2iARBPROC glWindowPos2iARB;
+extern glWindowPos2sARBPROC glWindowPos2sARB;
+extern glWindowPos2dvARBPROC glWindowPos2dvARB;
+extern glWindowPos2fvARBPROC glWindowPos2fvARB;
+extern glWindowPos2ivARBPROC glWindowPos2ivARB;
+extern glWindowPos2svARBPROC glWindowPos2svARB;
+extern glWindowPos3dARBPROC glWindowPos3dARB;
+extern glWindowPos3fARBPROC glWindowPos3fARB;
+extern glWindowPos3iARBPROC glWindowPos3iARB;
+extern glWindowPos3sARBPROC glWindowPos3sARB;
+extern glWindowPos3dvARBPROC glWindowPos3dvARB;
+extern glWindowPos3fvARBPROC glWindowPos3fvARB;
+extern glWindowPos3ivARBPROC glWindowPos3ivARB;
+extern glWindowPos3svARBPROC glWindowPos3svARB;
+
+#endif /* GL_ARB_window_pos */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_SHADOW_FUNCS---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_shadow_funcs
+#define GL_EXT_shadow_funcs 1
+
+#endif /* GL_EXT_shadow_funcs */
+
+/*-------------------------------------------------------------------*/
+/*------------END GL EXTENSIONS--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------*/
+/*------------WGL EXTENSIONS HERE------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifdef WIN32
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_EXT_EXTENSION_STRING-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_EXT_extensions_string
+#define WGL_EXT_extensions_string 1
+
+typedef const char* (APIENTRY * wglGetExtensionsStringEXTPROC) ();
+
+extern wglGetExtensionsStringEXTPROC wglGetExtensionsStringEXT;
+
+#endif /* WGL_EXT_extensions_string */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_BUFFER_REGION----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_buffer_region
+#define WGL_ARB_buffer_region 1
+
+#define WGL_FRONT_COLOR_BUFFER_BIT_ARB                          0x00000001
+#define WGL_BACK_COLOR_BUFFER_BIT_ARB                           0x00000002
+#define WGL_DEPTH_BUFFER_BIT_ARB                                0x00000004
+#define WGL_STENCIL_BUFFER_BIT_ARB                              0x00000008
+
+typedef HANDLE (APIENTRY * wglCreateBufferRegionARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
+typedef VOID (APIENTRY * wglDeleteBufferRegionARBPROC) (HANDLE hRegion);
+typedef BOOL (APIENTRY * wglSaveBufferRegionARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
+typedef BOOL (APIENTRY * wglRestoreBufferRegionARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
+
+extern wglCreateBufferRegionARBPROC wglCreateBufferRegionARB;
+extern wglDeleteBufferRegionARBPROC wglDeleteBufferRegionARB;
+extern wglSaveBufferRegionARBPROC wglSaveBufferRegionARB;
+extern wglRestoreBufferRegionARBPROC wglRestoreBufferRegionARB;
+
+#endif /* WGL_ARB_buffer_region */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_EXTENSION_STRING-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_extensions_string
+#define WGL_ARB_extensions_string 1
+
+typedef const char* (APIENTRY * wglGetExtensionsStringARBPROC) (HDC hdc);
+
+extern wglGetExtensionsStringARBPROC wglGetExtensionsStringARB;
+
+#endif /* WGL_ARB_extensions_string */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_PBUFFER----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_pbuffer
+#define WGL_ARB_pbuffer 1
+
+#define WGL_DRAW_TO_PBUFFER_ARB                                 0x202D
+#define WGL_DRAW_TO_PBUFFER_ARB                                 0x202D
+#define WGL_MAX_PBUFFER_PIXELS_ARB                              0x202E
+#define WGL_MAX_PBUFFER_WIDTH_ARB                               0x202F
+#define WGL_MAX_PBUFFER_HEIGHT_ARB                              0x2030
+#define WGL_PBUFFER_LARGEST_ARB                                 0x2033
+#define WGL_PBUFFER_WIDTH_ARB                                   0x2034
+#define WGL_PBUFFER_HEIGHT_ARB                                  0x2035
+#define WGL_PBUFFER_LOST_ARB                                    0x2036
+
+DECLARE_HANDLE(HPBUFFERARB);
+
+typedef HPBUFFERARB (APIENTRY * wglCreatePbufferARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+typedef HDC (APIENTRY * wglGetPbufferDCARBPROC) (HPBUFFERARB hPbuffer);
+typedef int (APIENTRY * wglReleasePbufferDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
+typedef BOOL (APIENTRY * wglDestroyPbufferARBPROC) (HPBUFFERARB hPbuffer);
+typedef BOOL (APIENTRY * wglQueryPbufferARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+
+extern wglCreatePbufferARBPROC wglCreatePbufferARB;
+extern wglGetPbufferDCARBPROC wglGetPbufferDCARB;
+extern wglReleasePbufferDCARBPROC wglReleasePbufferDCARB;
+extern wglDestroyPbufferARBPROC wglDestroyPbufferARB;
+extern wglQueryPbufferARBPROC wglQueryPbufferARB;
+
+#endif /* WGL_ARB_pbuffer */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_PIXEL_FORMAT-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_pixel_format
+#define WGL_ARB_pixel_format 1
+
+#define WGL_NUMBER_PIXEL_FORMATS_ARB                            0x2000
+#define WGL_DRAW_TO_WINDOW_ARB                                  0x2001
+#define WGL_DRAW_TO_BITMAP_ARB                                  0x2002
+#define WGL_ACCELERATION_ARB                                    0x2003
+#define WGL_NEED_PALETTE_ARB                                    0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB                             0x2005
+#define WGL_SWAP_LAYER_BUFFERS_ARB                              0x2006
+#define WGL_SWAP_METHOD_ARB                                     0x2007
+#define WGL_NUMBER_OVERLAYS_ARB                                 0x2008
+#define WGL_NUMBER_UNDERLAYS_ARB                                0x2009
+#define WGL_TRANSPARENT_ARB                                     0x200A
+#define WGL_TRANSPARENT_RED_VALUE_ARB                           0x2037
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB                         0x2038
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB                          0x2039
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB                         0x203A
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB                         0x203B
+#define WGL_SHARE_DEPTH_ARB                                     0x200C
+#define WGL_SHARE_STENCIL_ARB                                   0x200D
+#define WGL_SHARE_ACCUM_ARB                                     0x200E
+#define WGL_SUPPORT_GDI_ARB                                     0x200F
+#define WGL_SUPPORT_OPENGL_ARB                                  0x2010
+#define WGL_DOUBLE_BUFFER_ARB                                   0x2011
+#define WGL_STEREO_ARB                                          0x2012
+#define WGL_PIXEL_TYPE_ARB                                      0x2013
+#define WGL_COLOR_BITS_ARB                                      0x2014
+#define WGL_RED_BITS_ARB                                        0x2015
+#define WGL_RED_SHIFT_ARB                                       0x2016
+#define WGL_GREEN_BITS_ARB                                      0x2017
+#define WGL_GREEN_SHIFT_ARB                                     0x2018
+#define WGL_BLUE_BITS_ARB                                       0x2019
+#define WGL_BLUE_SHIFT_ARB                                      0x201A
+#define WGL_ALPHA_BITS_ARB                                      0x201B
+#define WGL_ALPHA_SHIFT_ARB                                     0x201C
+#define WGL_ACCUM_BITS_ARB                                      0x201D
+#define WGL_ACCUM_RED_BITS_ARB                                  0x201E
+#define WGL_ACCUM_GREEN_BITS_ARB                                0x201F
+#define WGL_ACCUM_BLUE_BITS_ARB                                 0x2020
+#define WGL_ACCUM_ALPHA_BITS_ARB                                0x2021
+#define WGL_DEPTH_BITS_ARB                                      0x2022
+#define WGL_STENCIL_BITS_ARB                                    0x2023
+#define WGL_AUX_BUFFERS_ARB                                     0x2024
+#define WGL_NO_ACCELERATION_ARB                                 0x2025
+#define WGL_GENERIC_ACCELERATION_ARB                            0x2026
+#define WGL_FULL_ACCELERATION_ARB                               0x2027
+#define WGL_SWAP_EXCHANGE_ARB                                   0x2028
+#define WGL_SWAP_COPY_ARB                                       0x2029
+#define WGL_SWAP_UNDEFINED_ARB                                  0x202A
+#define WGL_TYPE_RGBA_ARB                                       0x202B
+#define WGL_TYPE_COLORINDEX_ARB                                 0x202C
+
+typedef BOOL (APIENTRY * wglGetPixelFormatAttribivARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+typedef BOOL (APIENTRY * wglGetPixelFormatAttribfvARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+typedef BOOL (APIENTRY * wglChoosePixelFormatARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+
+extern wglGetPixelFormatAttribivARBPROC wglGetPixelFormatAttribivARB;
+extern wglGetPixelFormatAttribfvARBPROC wglGetPixelFormatAttribfvARB;
+extern wglChoosePixelFormatARBPROC wglChoosePixelFormatARB;
+
+#endif /* WGL_ARB_pixel_format */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_RENDER_TEXTURE---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_render_texture
+#define WGL_ARB_render_texture 1
+
+#define WGL_BIND_TO_TEXTURE_RGB_ARB                             0x2070
+#define WGL_BIND_TO_TEXTURE_RGBA_ARB                            0x2071
+#define WGL_TEXTURE_FORMAT_ARB                                  0x2072
+#define WGL_TEXTURE_TARGET_ARB                                  0x2073
+#define WGL_MIPMAP_TEXTURE_ARB                                  0x2074
+#define WGL_TEXTURE_RGB_ARB                                     0x2075
+#define WGL_TEXTURE_RGBA_ARB                                    0x2076
+#define WGL_NO_TEXTURE_ARB                                      0x2077
+#define WGL_TEXTURE_CUBE_MAP_ARB                                0x2078
+#define WGL_TEXTURE_1D_ARB                                      0x2079
+#define WGL_TEXTURE_2D_ARB                                      0x207A
+#define WGL_NO_TEXTURE_ARB                                      0x2077
+#define WGL_MIPMAP_LEVEL_ARB                                    0x207B
+#define WGL_CUBE_MAP_FACE_ARB                                   0x207C
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB                     0x207D
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB                     0x207E
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB                     0x207F
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB                     0x2080
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB                     0x2081
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB                     0x2082
+#define WGL_FRONT_LEFT_ARB                                      0x2083
+#define WGL_FRONT_RIGHT_ARB                                     0x2084
+#define WGL_BACK_LEFT_ARB                                       0x2085
+#define WGL_BACK_RIGHT_ARB                                      0x2086
+#define WGL_AUX0_ARB                                            0x2087
+#define WGL_AUX1_ARB                                            0x2088
+#define WGL_AUX2_ARB                                            0x2089
+#define WGL_AUX3_ARB                                            0x208A
+#define WGL_AUX4_ARB                                            0x208B
+#define WGL_AUX5_ARB                                            0x208C
+#define WGL_AUX6_ARB                                            0x208D
+#define WGL_AUX7_ARB                                            0x208E
+#define WGL_AUX8_ARB                                            0x208F
+#define WGL_AUX9_ARB                                            0x2090
+
+typedef BOOL (APIENTRY * wglBindTexImageARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL (APIENTRY * wglReleaseTexImageARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL (APIENTRY * wglSetPbufferAttribARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
+
+extern wglBindTexImageARBPROC wglBindTexImageARB;
+extern wglReleaseTexImageARBPROC wglReleaseTexImageARB;
+extern wglSetPbufferAttribARBPROC wglSetPbufferAttribARB;
+
+#endif /*WGL_ARB_render_texture */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_EXT_SWAP_CONTROL-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_EXT_swap_control
+#define WGL_EXT_swap_control 1
+
+typedef BOOL (APIENTRY * wglSwapIntervalEXTPROC) (int interval);
+typedef int (APIENTRY * wglGetSwapIntervalEXTPROC) (void);
+
+extern wglSwapIntervalEXTPROC wglSwapIntervalEXT;
+extern wglGetSwapIntervalEXTPROC wglGetSwapIntervalEXT;
+
+#endif /* WGL_EXT_swap_control */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_MAKE_CURRENT_READ------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_make_current_read
+#define WGL_ARB_make_current_read 1
+
+#define ERROR_INVALID_PIXEL_TYPE_ARB                            0x2043
+#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB                 0x2054
+
+typedef BOOL (APIENTRY * wglMakeContextCurrentARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (APIENTRY * wglGetCurrentReadDCARBPROC) (void);
+
+extern wglMakeContextCurrentARBPROC wglMakeContextCurrentARB;
+extern wglGetCurrentReadDCARBPROC wglGetCurrentReadDCARB;
+
+#endif /* WGL_ARB_make_current_read */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_MULTISAMPLE------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_multisample
+#define WGL_ARB_multisample 1
+
+#define WGL_SAMPLE_BUFFERS_ARB                                  0x2041
+#define WGL_SAMPLES_ARB                                         0x2042
+
+#endif /* WGL_ARB_multisample */
+
+/*-------------------------------------------------------------------*/
+/*------------END WGL EXTENSIONS-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#endif /* WIN32 */
+
+/* helper stuff */
+
+/* I use int here because C does not know bool */
+
+#ifdef WIN32
+
+struct WGLExtensionTypes
+{
+    int EXT_extensions_string;
+    int ARB_buffer_region;
+    int ARB_extensions_string;
+    int ARB_pbuffer;
+    int ARB_pixel_format;
+    int ARB_render_texture;
+    int EXT_swap_control;
+    int ARB_make_current_read;
+    int ARB_multisample;
+};
+
+#endif /* WIN32 */
+
+struct ExtensionTypes
+{
+#ifdef WIN32 /* WGL extensions */   
+    struct WGLExtensionTypes wgl;
+#endif /* WIN32 */
+    int ARB_imaging;
+    int ARB_matrix_palette;
+    int ARB_multisample;
+    int ARB_multitexture;
+    int ARB_point_parameters;
+    int ARB_texture_compression;
+    int ARB_texture_env_add;
+    int ARB_texture_env_dot3;
+    int ARB_texture_env_combine;
+    int ARB_texture_env_crossbar;
+    int ARB_texture_border_clamp;
+    int ARB_texture_cube_map;
+    int ARB_transpose_matrix;
+    int ARB_vertex_blend;
+    int EXT_abgr;
+    int EXT_compiled_vertex_array;
+    int EXT_fog_coord;
+    int EXT_multi_draw_arrays;
+    int EXT_point_parameters;
+    int EXT_secondary_color;
+    int EXT_stencil_wrap;
+    int EXT_texture_filter_anisotropic;
+    int EXT_texture_lod_bias;
+    int EXT_vertex_shader;
+    int EXT_vertex_weighting;
+    int ATI_element_array;
+    int ATI_envmap_bumpmap;
+    int ATI_fragment_shader;
+    int ATI_pn_triangles;
+    int ATI_texture_mirror_once;
+    int ATI_vertex_array_object;
+    int ATI_vertex_streams;
+    int ATIX_point_sprites;
+    int ATIX_texture_env_route;
+    int HP_occlusion_test;
+    int NV_blend_square;
+    int NV_copy_depth_to_color;
+    int NV_depth_clamp;
+    int NV_evaluators;
+    int NV_fence;
+    int NV_fog_distance;
+    int NV_light_max_exponent;
+    int NV_occlusion_query;
+    int NV_packed_depth_stencil;
+    int NV_point_sprite;
+    int NV_register_combiners;
+    int NV_register_combiners2;
+    int NV_texgen_reflection;
+    int NV_texture_env_combine4;
+    int NV_texture_rectangle;
+    int NV_texture_shader;
+    int NV_texture_shader2;
+    int NV_texture_shader3;
+    int NV_vertex_array_range;
+    int NV_vertex_array_range2;
+    int NV_vertex_program;
+    int NV_vertex_program1_1;
+    int SGIS_generate_mipmap;
+    int SGIX_shadow;
+    int SGIX_depth_texture;
+    int OpenGL12;
+    int OpenGL13;
+    int ARB_texture_mirrored_repeat;
+    int ARB_depth_texture;
+    int ARB_shadow_ambient;
+    int ARB_shadow;
+    int ARB_window_pos;
+    int EXT_shadow_funcs;
+};
+
+extern struct ExtensionTypes SupportedExtensions;
+
+/* initializes everything, call this right after the rc is created. the function returns 0 if successful */
+int glInitialize();
+
+int QueryExtension(const char *name);
+
+/* WGL stuff */
+
+#ifdef WIN32
+
+/* sets the DC */
+
+void _wglSetDC(HDC dc);
+
+#endif /* WIN32 */
+
+/* helpers end */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __EXTGL_H__ */