--- /dev/null
+/* 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
--- /dev/null
+/* \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