glh_genext.h
上传用户:ghyvgy
上传日期:2009-05-26
资源大小:547k
文件大小:66k
源码类别:

其他游戏

开发平台:

Python

  1. /* File generated by extgen.cpp -- do not modify */
  2. #ifndef GLH_GENEXT_H
  3. #define GLH_GENEXT_H
  4. #include <GL/gl.h>
  5. #include "glext.h"
  6. #ifdef _WIN32 /* supports windows, x -- need to generalize */
  7. #  include "wglext.h"
  8. #  define GLH_EXT_GET_PROC_ADDRESS(p)   wglGetProcAddress(p) 
  9. #else if GLX_VERSION_1_3
  10. #  include <GL/glxext.h>
  11. #  define GLH_EXT_GET_PROC_ADDRESS(p)   glXGetProcAddressARB(p) 
  12. #endif
  13. #ifdef GLH_EXT_SINGLE_FILE
  14. #define GLH_EXTERN
  15.  #define GLH_INITIALIZER = 0
  16. #else
  17. #define GLH_EXTERN extern
  18.  #define GLH_INITIALIZER
  19. #endif
  20. #ifdef GL_ARB_multitexture
  21.     GLH_EXTERN PFNGLMULTITEXCOORD1DARBPROC glMultiTexCoord1dARB GLH_INITIALIZER;
  22.     GLH_EXTERN PFNGLMULTITEXCOORD1DVARBPROC glMultiTexCoord1dvARB GLH_INITIALIZER;
  23.     GLH_EXTERN PFNGLMULTITEXCOORD1FARBPROC glMultiTexCoord1fARB GLH_INITIALIZER;
  24.     GLH_EXTERN PFNGLMULTITEXCOORD1FVARBPROC glMultiTexCoord1fvARB GLH_INITIALIZER;
  25.     GLH_EXTERN PFNGLMULTITEXCOORD1IARBPROC glMultiTexCoord1iARB GLH_INITIALIZER;
  26.     GLH_EXTERN PFNGLMULTITEXCOORD1IVARBPROC glMultiTexCoord1ivARB GLH_INITIALIZER;
  27.     GLH_EXTERN PFNGLMULTITEXCOORD1SARBPROC glMultiTexCoord1sARB GLH_INITIALIZER;
  28.     GLH_EXTERN PFNGLMULTITEXCOORD1SVARBPROC glMultiTexCoord1svARB GLH_INITIALIZER;
  29.     GLH_EXTERN PFNGLMULTITEXCOORD2DARBPROC glMultiTexCoord2dARB GLH_INITIALIZER;
  30.     GLH_EXTERN PFNGLMULTITEXCOORD2DVARBPROC glMultiTexCoord2dvARB GLH_INITIALIZER;
  31.     GLH_EXTERN PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB GLH_INITIALIZER;
  32.     GLH_EXTERN PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fvARB GLH_INITIALIZER;
  33.     GLH_EXTERN PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2iARB GLH_INITIALIZER;
  34.     GLH_EXTERN PFNGLMULTITEXCOORD2IVARBPROC glMultiTexCoord2ivARB GLH_INITIALIZER;
  35.     GLH_EXTERN PFNGLMULTITEXCOORD2SARBPROC glMultiTexCoord2sARB GLH_INITIALIZER;
  36.     GLH_EXTERN PFNGLMULTITEXCOORD2SVARBPROC glMultiTexCoord2svARB GLH_INITIALIZER;
  37.     GLH_EXTERN PFNGLMULTITEXCOORD3DARBPROC glMultiTexCoord3dARB GLH_INITIALIZER;
  38.     GLH_EXTERN PFNGLMULTITEXCOORD3DVARBPROC glMultiTexCoord3dvARB GLH_INITIALIZER;
  39.     GLH_EXTERN PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3fARB GLH_INITIALIZER;
  40.     GLH_EXTERN PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fvARB GLH_INITIALIZER;
  41.     GLH_EXTERN PFNGLMULTITEXCOORD3IARBPROC glMultiTexCoord3iARB GLH_INITIALIZER;
  42.     GLH_EXTERN PFNGLMULTITEXCOORD3IVARBPROC glMultiTexCoord3ivARB GLH_INITIALIZER;
  43.     GLH_EXTERN PFNGLMULTITEXCOORD3SARBPROC glMultiTexCoord3sARB GLH_INITIALIZER;
  44.     GLH_EXTERN PFNGLMULTITEXCOORD3SVARBPROC glMultiTexCoord3svARB GLH_INITIALIZER;
  45.     GLH_EXTERN PFNGLMULTITEXCOORD4DARBPROC glMultiTexCoord4dARB GLH_INITIALIZER;
  46.     GLH_EXTERN PFNGLMULTITEXCOORD4DVARBPROC glMultiTexCoord4dvARB GLH_INITIALIZER;
  47.     GLH_EXTERN PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4fARB GLH_INITIALIZER;
  48.     GLH_EXTERN PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB GLH_INITIALIZER;
  49.     GLH_EXTERN PFNGLMULTITEXCOORD4IARBPROC glMultiTexCoord4iARB GLH_INITIALIZER;
  50.     GLH_EXTERN PFNGLMULTITEXCOORD4IVARBPROC glMultiTexCoord4ivARB GLH_INITIALIZER;
  51.     GLH_EXTERN PFNGLMULTITEXCOORD4SARBPROC glMultiTexCoord4sARB GLH_INITIALIZER;
  52.     GLH_EXTERN PFNGLMULTITEXCOORD4SVARBPROC glMultiTexCoord4svARB GLH_INITIALIZER;
  53.     GLH_EXTERN PFNGLACTIVETEXTUREARBPROC glActiveTextureARB GLH_INITIALIZER;
  54.     GLH_EXTERN PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB GLH_INITIALIZER;
  55. #endif
  56. #ifdef GL_ARB_texture_border_clamp
  57. #endif
  58. #ifdef GL_ARB_texture_compression
  59.     GLH_EXTERN PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glCompressedTexImage3DARB GLH_INITIALIZER;
  60.     GLH_EXTERN PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB GLH_INITIALIZER;
  61.     GLH_EXTERN PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glCompressedTexImage1DARB GLH_INITIALIZER;
  62.     GLH_EXTERN PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glCompressedTexSubImage3DARB GLH_INITIALIZER;
  63.     GLH_EXTERN PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glCompressedTexSubImage2DARB GLH_INITIALIZER;
  64.     GLH_EXTERN PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glCompressedTexSubImage1DARB GLH_INITIALIZER;
  65.     GLH_EXTERN PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB GLH_INITIALIZER;
  66. #endif
  67. #ifdef GL_ARB_texture_cube_map
  68. #endif
  69. #ifdef GL_ARB_transpose_matrix
  70.     GLH_EXTERN PFNGLLOADTRANSPOSEMATRIXFARBPROC glLoadTransposeMatrixfARB GLH_INITIALIZER;
  71.     GLH_EXTERN PFNGLLOADTRANSPOSEMATRIXDARBPROC glLoadTransposeMatrixdARB GLH_INITIALIZER;
  72.     GLH_EXTERN PFNGLMULTTRANSPOSEMATRIXFARBPROC glMultTransposeMatrixfARB GLH_INITIALIZER;
  73.     GLH_EXTERN PFNGLMULTTRANSPOSEMATRIXDARBPROC glMultTransposeMatrixdARB GLH_INITIALIZER;
  74. #endif
  75. #ifdef GL_EXT_abgr
  76. #endif
  77. #ifdef GL_EXT_bgra
  78. #endif
  79. #ifdef GL_EXT_blend_color
  80.     GLH_EXTERN PFNGLBLENDCOLOREXTPROC glBlendColorEXT GLH_INITIALIZER;
  81. #endif
  82. #ifdef GL_EXT_blend_minmax
  83.     GLH_EXTERN PFNGLBLENDEQUATIONEXTPROC glBlendEquationEXT GLH_INITIALIZER;
  84. #endif
  85. #ifdef GL_EXT_blend_subtract
  86. #endif
  87. #ifdef GL_EXT_compiled_vertex_array
  88.     GLH_EXTERN PFNGLLOCKARRAYSEXTPROC glLockArraysEXT GLH_INITIALIZER;
  89.     GLH_EXTERN PFNGLUNLOCKARRAYSEXTPROC glUnlockArraysEXT GLH_INITIALIZER;
  90. #endif
  91. #ifdef GL_EXT_fog_coord
  92.     GLH_EXTERN PFNGLFOGCOORDDEXTPROC glFogCoorddEXT GLH_INITIALIZER;
  93.     GLH_EXTERN PFNGLFOGCOORDDVEXTPROC glFogCoorddvEXT GLH_INITIALIZER;
  94.     GLH_EXTERN PFNGLFOGCOORDFEXTPROC glFogCoordfEXT GLH_INITIALIZER;
  95.     GLH_EXTERN PFNGLFOGCOORDFVEXTPROC glFogCoordfvEXT GLH_INITIALIZER;
  96.     GLH_EXTERN PFNGLFOGCOORDPOINTEREXTPROC glFogCoordPointerEXT GLH_INITIALIZER;
  97. #endif
  98. #ifdef GL_EXT_light_max_exponent
  99. #endif
  100. #ifdef GL_EXT_packed_pixels
  101. #endif
  102. #ifdef GL_EXT_paletted_texture
  103.     GLH_EXTERN PFNGLCOLORSUBTABLEEXTPROC glColorSubTableEXT GLH_INITIALIZER;
  104.     GLH_EXTERN PFNGLCOLORTABLEEXTPROC glcolorTableEXT GLH_INITIALIZER;
  105.     GLH_EXTERN PFNGLGETCOLORTABLEEXTPROC glGetColorTableEXT GLH_INITIALIZER;
  106.     GLH_EXTERN PFNGLGETCOLORTABLEPARAMETERFVEXTPROC glGetColorTableParameterfvEXT GLH_INITIALIZER;
  107.     GLH_EXTERN PFNGLGETCOLORTABLEPARAMETERIVEXTPROC glGetColorTableParameterivEXT GLH_INITIALIZER;
  108. #endif
  109. #ifdef GL_EXT_point_parameters
  110.     GLH_EXTERN PFNGLPOINTPARAMETERFEXTPROC glPointParameterfEXT GLH_INITIALIZER;
  111.     GLH_EXTERN PFNGLPOINTPARAMETERFVEXTPROC glPointParameterfvEXT GLH_INITIALIZER;
  112. #endif
  113. #ifdef GL_EXT_rescale_normal
  114. #endif
  115. #ifdef GL_EXT_secondary_color
  116.     GLH_EXTERN PFNGLSECONDARYCOLOR3BEXTPROC glSecondaryColor3bEXT GLH_INITIALIZER;
  117.     GLH_EXTERN PFNGLSECONDARYCOLOR3BVEXTPROC glSecondaryColor3bvEXT GLH_INITIALIZER;
  118.     GLH_EXTERN PFNGLSECONDARYCOLOR3DEXTPROC glSecondaryColor3dEXT GLH_INITIALIZER;
  119.     GLH_EXTERN PFNGLSECONDARYCOLOR3DVEXTPROC glSecondaryColor3dvEXT GLH_INITIALIZER;
  120.     GLH_EXTERN PFNGLSECONDARYCOLOR3FEXTPROC glSecondaryColor3fEXT GLH_INITIALIZER;
  121.     GLH_EXTERN PFNGLSECONDARYCOLOR3FVEXTPROC glSecondaryColor3fvEXT GLH_INITIALIZER;
  122.     GLH_EXTERN PFNGLSECONDARYCOLOR3IEXTPROC glSecondaryColor3iEXT GLH_INITIALIZER;
  123.     GLH_EXTERN PFNGLSECONDARYCOLOR3IVEXTPROC glSecondaryColor3ivEXT GLH_INITIALIZER;
  124.     GLH_EXTERN PFNGLSECONDARYCOLOR3SEXTPROC glSecondaryColor3sEXT GLH_INITIALIZER;
  125.     GLH_EXTERN PFNGLSECONDARYCOLOR3SVEXTPROC glSecondaryColor3svEXT GLH_INITIALIZER;
  126.     GLH_EXTERN PFNGLSECONDARYCOLOR3UBEXTPROC glSecondaryColor3ubEXT GLH_INITIALIZER;
  127.     GLH_EXTERN PFNGLSECONDARYCOLOR3UBVEXTPROC glSecondaryColor3ubvEXT GLH_INITIALIZER;
  128.     GLH_EXTERN PFNGLSECONDARYCOLOR3UIEXTPROC glSecondaryColor3uiEXT GLH_INITIALIZER;
  129.     GLH_EXTERN PFNGLSECONDARYCOLOR3UIVEXTPROC glSecondaryColor3uivEXT GLH_INITIALIZER;
  130.     GLH_EXTERN PFNGLSECONDARYCOLOR3USEXTPROC glSecondaryColor3usEXT GLH_INITIALIZER;
  131.     GLH_EXTERN PFNGLSECONDARYCOLOR3USVEXTPROC glSecondaryColor3usvEXT GLH_INITIALIZER;
  132.     GLH_EXTERN PFNGLSECONDARYCOLORPOINTEREXTPROC glSecondaryColorPointerEXT GLH_INITIALIZER;
  133. #endif
  134. #ifdef GL_EXT_separate_specular_color
  135. #endif
  136. #ifdef GL_EXT_shared_texture_palette
  137. #endif
  138. #ifdef GL_EXT_stencil_wrap
  139. #endif
  140. #ifdef GL_EXT_texture_compression_s3tc
  141. #endif
  142. #ifdef GL_EXT_texture_cube_map
  143. #endif
  144. #ifdef GL_EXT_texture_edge_clamp
  145. #endif
  146. #ifdef GL_EXT_texture_env_add
  147. #endif
  148. #ifdef GL_EXT_texture_env_combine
  149. #endif
  150. #ifdef GL_EXT_texture_filter_anisotropic
  151. #endif
  152. #ifdef GL_EXT_texture_lod_bias
  153. #endif
  154. #ifdef GL_EXT_texture_object
  155.     GLH_EXTERN PFNGLARETEXTURESRESIDENTEXTPROC glAreTexturesResidentEXT GLH_INITIALIZER;
  156.     GLH_EXTERN PFNGLBINDTEXTUREEXTPROC glBindTextureEXT GLH_INITIALIZER;
  157.     GLH_EXTERN PFNGLDELETETEXTURESEXTPROC glDeleteTexturesEXT GLH_INITIALIZER;
  158.     GLH_EXTERN PFNGLGENTEXTURESEXTPROC glGenTexturesEXT GLH_INITIALIZER;
  159.     GLH_EXTERN PFNGLISTEXTUREEXTPROC glIsTextureEXT GLH_INITIALIZER;
  160.     GLH_EXTERN PFNGLPRIORITIZETEXTURESEXTPROC glPrioritizeTexturesEXT GLH_INITIALIZER;
  161. #endif
  162. #ifdef GL_EXT_vertex_array
  163.     GLH_EXTERN PFNGLARRAYELEMENTEXTPROC glArrayElementEXT GLH_INITIALIZER;
  164.     GLH_EXTERN PFNGLCOLORPOINTEREXTPROC glColorPointerEXT GLH_INITIALIZER;
  165.     GLH_EXTERN PFNGLEDGEFLAGPOINTEREXTPROC glEdgeFlagPointerEXT GLH_INITIALIZER;
  166.     GLH_EXTERN PFNGLGETPOINTERVEXTPROC glGetPointervEXT GLH_INITIALIZER;
  167.     GLH_EXTERN PFNGLINDEXPOINTEREXTPROC glIndexPointerEXT GLH_INITIALIZER;
  168.     GLH_EXTERN PFNGLNORMALPOINTEREXTPROC glNormalPointerEXT GLH_INITIALIZER;
  169.     GLH_EXTERN PFNGLTEXCOORDPOINTEREXTPROC glTexCoordPointerEXT GLH_INITIALIZER;
  170.     GLH_EXTERN PFNGLVERTEXPOINTEREXTPROC glVertexPointerEXT GLH_INITIALIZER;
  171.     GLH_EXTERN PFNGLDRAWARRAYSEXTPROC glDrawArraysEXT GLH_INITIALIZER;
  172. #endif
  173. #ifdef GL_EXT_vertex_weighting
  174.     GLH_EXTERN PFNGLVERTEXWEIGHTFEXTPROC glVertexWeightfEXT GLH_INITIALIZER;
  175.     GLH_EXTERN PFNGLVERTEXWEIGHTFVEXTPROC glVertexWeightfvEXT GLH_INITIALIZER;
  176.     GLH_EXTERN PFNGLVERTEXWEIGHTPOINTEREXTPROC glVertexWeightPointerEXT GLH_INITIALIZER;
  177. #endif
  178. #ifdef GL_NV_blend_square
  179. #endif
  180. #ifdef GL_NV_evaluators
  181.     GLH_EXTERN PFNGLMAPCONTROLPOINTSNVPROC glMapControlPointsNV GLH_INITIALIZER;
  182.     GLH_EXTERN PFNGLMAPPARAMETERIVNVPROC glMapParameterivNV GLH_INITIALIZER;
  183.     GLH_EXTERN PFNGLMAPPARAMETERFVNVPROC glMapParameterfvNV GLH_INITIALIZER;
  184.     GLH_EXTERN PFNGLGETMAPCONTROLPOINTSNVPROC glGetMapControlPointsNV GLH_INITIALIZER;
  185.     GLH_EXTERN PFNGLGETMAPPARAMETERIVNVPROC glGetMapParameterivNV GLH_INITIALIZER;
  186.     GLH_EXTERN PFNGLGETMAPPARAMETERFVNVPROC glGetMapParameterfvNV GLH_INITIALIZER;
  187.     GLH_EXTERN PFNGLGETMAPATTRIBPARAMETERIVNVPROC glGetMapAttribParameterivNV GLH_INITIALIZER;
  188.     GLH_EXTERN PFNGLGETMAPATTRIBPARAMETERFVNVPROC glGetMapAttribParameterfvNV GLH_INITIALIZER;
  189.     GLH_EXTERN PFNGLEVALMAPSNVPROC glEvalMapsNV GLH_INITIALIZER;
  190. #endif
  191. #ifdef GL_NV_fence
  192.     GLH_EXTERN PFNGLGENFENCESNVPROC glGenFencesNV GLH_INITIALIZER;
  193.     GLH_EXTERN PFNGLDELETEFENCESNVPROC glDeleteFencesNV GLH_INITIALIZER;
  194.     GLH_EXTERN PFNGLSETFENCENVPROC glSetFenceNV GLH_INITIALIZER;
  195.     GLH_EXTERN PFNGLTESTFENCENVPROC glTestFenceNV GLH_INITIALIZER;
  196.     GLH_EXTERN PFNGLFINISHFENCENVPROC glFinishFenceNV GLH_INITIALIZER;
  197.     GLH_EXTERN PFNGLISFENCENVPROC glIsFenceNV GLH_INITIALIZER;
  198.     GLH_EXTERN PFNGLGETFENCEIVNVPROC glGetFenceivNV GLH_INITIALIZER;
  199. #endif
  200. #ifdef GL_NV_fog_distance
  201. #endif
  202. #ifdef GL_NV_packed_depth_stencil
  203. #endif
  204. #ifdef GL_NV_register_combiners
  205.     GLH_EXTERN PFNGLCOMBINERPARAMETERFVNVPROC glCombinerParameterfvNV GLH_INITIALIZER;
  206.     GLH_EXTERN PFNGLCOMBINERPARAMETERFNVPROC glCombinerParameterfNV GLH_INITIALIZER;
  207.     GLH_EXTERN PFNGLCOMBINERPARAMETERIVNVPROC glCombinerParameterivNV GLH_INITIALIZER;
  208.     GLH_EXTERN PFNGLCOMBINERPARAMETERINVPROC glCombinerParameteriNV GLH_INITIALIZER;
  209.     GLH_EXTERN PFNGLCOMBINERINPUTNVPROC glCombinerInputNV GLH_INITIALIZER;
  210.     GLH_EXTERN PFNGLCOMBINEROUTPUTNVPROC glCombinerOutputNV GLH_INITIALIZER;
  211.     GLH_EXTERN PFNGLFINALCOMBINERINPUTNVPROC glFinalCombinerInputNV GLH_INITIALIZER;
  212.     GLH_EXTERN PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glGetCombinerInputParameterfvNV GLH_INITIALIZER;
  213.     GLH_EXTERN PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glGetCombinerInputParameterivNV GLH_INITIALIZER;
  214.     GLH_EXTERN PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glGetCombinerOutputParameterfvNV GLH_INITIALIZER;
  215.     GLH_EXTERN PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glGetCombinerOutputParameterivNV GLH_INITIALIZER;
  216.     GLH_EXTERN PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glGetFinalCombinerInputParameterfvNV GLH_INITIALIZER;
  217.     GLH_EXTERN PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glGetFinalCombinerInputParameterivNV GLH_INITIALIZER;
  218. #endif
  219. #ifdef GL_NV_register_combiners2
  220.     GLH_EXTERN PFNGLCOMBINERSTAGEPARAMETERFVNVPROC glCombinerStageParameterfvNV GLH_INITIALIZER;
  221.     GLH_EXTERN PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC glGetCombinerStageParameterfvNV GLH_INITIALIZER;
  222. #endif
  223. #ifdef GL_NV_texgen_reflection
  224. #endif
  225. #ifdef GL_NV_texture_env_combine4
  226. #endif
  227. #ifdef GL_NV_texture_rectangle
  228. #endif
  229. #ifdef GL_NV_texture_shader
  230. #endif
  231. #ifdef GL_NV_vertex_array_range
  232.     GLH_EXTERN PFNGLFLUSHVERTEXARRAYRANGENVPROC glFlushVertexArrayRangeNV GLH_INITIALIZER;
  233.     GLH_EXTERN PFNGLVERTEXARRAYRANGENVPROC glVertexArrayRangeNV GLH_INITIALIZER;
  234. # ifdef _WIN32
  235.     GLH_EXTERN PFNWGLALLOCATEMEMORYNVPROC wglAllocateMemoryNV GLH_INITIALIZER;
  236. # endif
  237. # ifdef GLX_VERSION_1_3
  238.     GLH_EXTERN PFNGLXALLOCATEMEMORYNVPROC glXAllocateMemoryNV GLH_INITIALIZER;
  239. # endif
  240. # ifdef _WIN32
  241.     GLH_EXTERN PFNWGLFREEMEMORYNVPROC wglFreeMemoryNV GLH_INITIALIZER;
  242. # endif
  243. # ifdef GLX_VERSION_1_3
  244.     GLH_EXTERN PFNGLXFREEMEMORYNVPROC glXFreeMemoryNV GLH_INITIALIZER;
  245. # endif
  246. #endif
  247. #ifdef GL_NV_vertex_program
  248.     GLH_EXTERN PFNGLAREPROGRAMSRESIDENTNVPROC glAreProgramsResidentNV GLH_INITIALIZER;
  249.     GLH_EXTERN PFNGLBINDPROGRAMNVPROC glBindProgramNV GLH_INITIALIZER;
  250.     GLH_EXTERN PFNGLDELETEPROGRAMSNVPROC glDeleteProgramsNV GLH_INITIALIZER;
  251.     GLH_EXTERN PFNGLEXECUTEPROGRAMNVPROC glExecuteProgramNV GLH_INITIALIZER;
  252.     GLH_EXTERN PFNGLGENPROGRAMSNVPROC glGenProgramsNV GLH_INITIALIZER;
  253.     GLH_EXTERN PFNGLGETPROGRAMPARAMETERDVNVPROC glGetProgramParameterdvNV GLH_INITIALIZER;
  254.     GLH_EXTERN PFNGLGETPROGRAMPARAMETERFVNVPROC glGetProgramParameterfvNV GLH_INITIALIZER;
  255.     GLH_EXTERN PFNGLGETPROGRAMIVNVPROC glGetProgramivNV GLH_INITIALIZER;
  256.     GLH_EXTERN PFNGLGETPROGRAMSTRINGNVPROC glGetProgramStringNV GLH_INITIALIZER;
  257.     GLH_EXTERN PFNGLGETTRACKMATRIXIVNVPROC glGetTrackMatrixivNV GLH_INITIALIZER;
  258.     GLH_EXTERN PFNGLGETVERTEXATTRIBDVNVPROC glGetVertexAttribdvNV GLH_INITIALIZER;
  259.     GLH_EXTERN PFNGLGETVERTEXATTRIBFVNVPROC glGetVertexAttribfvNV GLH_INITIALIZER;
  260.     GLH_EXTERN PFNGLGETVERTEXATTRIBIVNVPROC glGetVertexAttribivNV GLH_INITIALIZER;
  261.     GLH_EXTERN PFNGLGETVERTEXATTRIBPOINTERVNVPROC glGetVertexAttribPointervNV GLH_INITIALIZER;
  262.     GLH_EXTERN PFNGLISPROGRAMNVPROC glIsProgramNV GLH_INITIALIZER;
  263.     GLH_EXTERN PFNGLLOADPROGRAMNVPROC glLoadProgramNV GLH_INITIALIZER;
  264.     GLH_EXTERN PFNGLPROGRAMPARAMETER4DNVPROC glProgramParameter4dNV GLH_INITIALIZER;
  265.     GLH_EXTERN PFNGLPROGRAMPARAMETER4DVNVPROC glProgramParameter4dvNV GLH_INITIALIZER;
  266.     GLH_EXTERN PFNGLPROGRAMPARAMETER4FNVPROC glProgramParameter4fNV GLH_INITIALIZER;
  267.     GLH_EXTERN PFNGLPROGRAMPARAMETER4FVNVPROC glProgramParameter4fvNV GLH_INITIALIZER;
  268.     GLH_EXTERN PFNGLPROGRAMPARAMETERS4DVNVPROC glProgramParameters4dvNV GLH_INITIALIZER;
  269.     GLH_EXTERN PFNGLPROGRAMPARAMETERS4FVNVPROC glProgramParameters4fvNV GLH_INITIALIZER;
  270.     GLH_EXTERN PFNGLREQUESTRESIDENTPROGRAMSNVPROC glRequestResidentProgramsNV GLH_INITIALIZER;
  271.     GLH_EXTERN PFNGLTRACKMATRIXNVPROC glTrackMatrixNV GLH_INITIALIZER;
  272.     GLH_EXTERN PFNGLVERTEXATTRIBPOINTERNVPROC glVertexAttribPointerNV GLH_INITIALIZER;
  273.     GLH_EXTERN PFNGLVERTEXATTRIB1DNVPROC glVertexAttrib1dNV GLH_INITIALIZER;
  274.     GLH_EXTERN PFNGLVERTEXATTRIB1DVNVPROC glVertexAttrib1dvNV GLH_INITIALIZER;
  275.     GLH_EXTERN PFNGLVERTEXATTRIB1FNVPROC glVertexAttrib1fNV GLH_INITIALIZER;
  276.     GLH_EXTERN PFNGLVERTEXATTRIB1FVNVPROC glVertexAttrib1fvNV GLH_INITIALIZER;
  277.     GLH_EXTERN PFNGLVERTEXATTRIB1SNVPROC glVertexAttrib1sNV GLH_INITIALIZER;
  278.     GLH_EXTERN PFNGLVERTEXATTRIB1SVNVPROC glVertexAttrib1svNV GLH_INITIALIZER;
  279.     GLH_EXTERN PFNGLVERTEXATTRIB2DNVPROC glVertexAttrib2dNV GLH_INITIALIZER;
  280.     GLH_EXTERN PFNGLVERTEXATTRIB2DVNVPROC glVertexAttrib2dvNV GLH_INITIALIZER;
  281.     GLH_EXTERN PFNGLVERTEXATTRIB2FNVPROC glVertexAttrib2fNV GLH_INITIALIZER;
  282.     GLH_EXTERN PFNGLVERTEXATTRIB2FVNVPROC glVertexAttrib2fvNV GLH_INITIALIZER;
  283.     GLH_EXTERN PFNGLVERTEXATTRIB2SNVPROC glVertexAttrib2sNV GLH_INITIALIZER;
  284.     GLH_EXTERN PFNGLVERTEXATTRIB2SVNVPROC glVertexAttrib2svNV GLH_INITIALIZER;
  285.     GLH_EXTERN PFNGLVERTEXATTRIB3DNVPROC glVertexAttrib3dNV GLH_INITIALIZER;
  286.     GLH_EXTERN PFNGLVERTEXATTRIB3DVNVPROC glVertexAttrib3dvNV GLH_INITIALIZER;
  287.     GLH_EXTERN PFNGLVERTEXATTRIB3FNVPROC glVertexAttrib3fNV GLH_INITIALIZER;
  288.     GLH_EXTERN PFNGLVERTEXATTRIB3FVNVPROC glVertexAttrib3fvNV GLH_INITIALIZER;
  289.     GLH_EXTERN PFNGLVERTEXATTRIB3SNVPROC glVertexAttrib3sNV GLH_INITIALIZER;
  290.     GLH_EXTERN PFNGLVERTEXATTRIB3SVNVPROC glVertexAttrib3svNV GLH_INITIALIZER;
  291.     GLH_EXTERN PFNGLVERTEXATTRIB4DNVPROC glVertexAttrib4dNV GLH_INITIALIZER;
  292.     GLH_EXTERN PFNGLVERTEXATTRIB4DVNVPROC glVertexAttrib4dvNV GLH_INITIALIZER;
  293.     GLH_EXTERN PFNGLVERTEXATTRIB4FNVPROC glVertexAttrib4fNV GLH_INITIALIZER;
  294.     GLH_EXTERN PFNGLVERTEXATTRIB4FVNVPROC glVertexAttrib4fvNV GLH_INITIALIZER;
  295.     GLH_EXTERN PFNGLVERTEXATTRIB4SNVPROC glVertexAttrib4sNV GLH_INITIALIZER;
  296.     GLH_EXTERN PFNGLVERTEXATTRIB4SVNVPROC glVertexAttrib4svNV GLH_INITIALIZER;
  297.     GLH_EXTERN PFNGLVERTEXATTRIB4UBVNVPROC glVertexAttrib4ubvNV GLH_INITIALIZER;
  298.     GLH_EXTERN PFNGLVERTEXATTRIBS1DVNVPROC glVertexAttribs1dvNV GLH_INITIALIZER;
  299.     GLH_EXTERN PFNGLVERTEXATTRIBS1FVNVPROC glVertexAttribs1fvNV GLH_INITIALIZER;
  300.     GLH_EXTERN PFNGLVERTEXATTRIBS1SVNVPROC glVertexAttribs1svNV GLH_INITIALIZER;
  301.     GLH_EXTERN PFNGLVERTEXATTRIBS2DVNVPROC glVertexAttribs2dvNV GLH_INITIALIZER;
  302.     GLH_EXTERN PFNGLVERTEXATTRIBS2FVNVPROC glVertexAttribs2fvNV GLH_INITIALIZER;
  303.     GLH_EXTERN PFNGLVERTEXATTRIBS2SVNVPROC glVertexAttribs2svNV GLH_INITIALIZER;
  304.     GLH_EXTERN PFNGLVERTEXATTRIBS3DVNVPROC glVertexAttribs3dvNV GLH_INITIALIZER;
  305.     GLH_EXTERN PFNGLVERTEXATTRIBS3FVNVPROC glVertexAttribs3fvNV GLH_INITIALIZER;
  306.     GLH_EXTERN PFNGLVERTEXATTRIBS3SVNVPROC glVertexAttribs3svNV GLH_INITIALIZER;
  307.     GLH_EXTERN PFNGLVERTEXATTRIBS4DVNVPROC glVertexAttribs4dvNV GLH_INITIALIZER;
  308.     GLH_EXTERN PFNGLVERTEXATTRIBS4FVNVPROC glVertexAttribs4fvNV GLH_INITIALIZER;
  309.     GLH_EXTERN PFNGLVERTEXATTRIBS4SVNVPROC glVertexAttribs4svNV GLH_INITIALIZER;
  310.     GLH_EXTERN PFNGLVERTEXATTRIBS4UBVNVPROC glVertexAttribs4ubvNV GLH_INITIALIZER;
  311. #endif
  312. #ifdef GL_SGIS_texture_lod
  313. #endif
  314. #ifdef GL_SGIX_depth_texture
  315. #endif
  316. #ifdef GL_SGIX_shadow
  317. #endif
  318. #ifdef GL_VERSION_1_2
  319.     /* These routines are prefixed by an underbar because these
  320.        names without underbars are officially part of the
  321.        OpenGL 1.2 namespace. */
  322.     GLH_EXTERN PFNGLBLENDCOLORPROC _glBlendColor GLH_INITIALIZER;
  323.     GLH_EXTERN PFNGLBLENDEQUATIONPROC _glBlendEquation GLH_INITIALIZER;
  324.     GLH_EXTERN PFNGLDRAWRANGEELEMENTSPROC _glDrawRangeElements GLH_INITIALIZER;
  325.     GLH_EXTERN PFNGLCOLORTABLEPROC _glColorTable GLH_INITIALIZER;
  326.     GLH_EXTERN PFNGLCOLORTABLEPARAMETERFVPROC _glColorTableParameterfv GLH_INITIALIZER;
  327.     GLH_EXTERN PFNGLCOLORTABLEPARAMETERIVPROC _glColorTableParameteriv GLH_INITIALIZER;
  328.     GLH_EXTERN PFNGLCOPYCOLORTABLEPROC _glCopyColorTable GLH_INITIALIZER;
  329.     GLH_EXTERN PFNGLGETCOLORTABLEPROC _glGetColorTable GLH_INITIALIZER;
  330.     GLH_EXTERN PFNGLGETCOLORTABLEPARAMETERFVPROC _glGetColorTableParameterfv GLH_INITIALIZER;
  331.     GLH_EXTERN PFNGLGETCOLORTABLEPARAMETERIVPROC _glGetColorTableParameteriv GLH_INITIALIZER;
  332.     GLH_EXTERN PFNGLTEXIMAGE3DPROC _glTexImage3D GLH_INITIALIZER;
  333.     GLH_EXTERN PFNGLTEXSUBIMAGE3DPROC _glTexSubImage3D GLH_INITIALIZER;
  334.     GLH_EXTERN PFNGLCOPYTEXSUBIMAGE3DPROC _glCopyTexSubImage3D GLH_INITIALIZER;
  335. #endif
  336. #ifdef GL_WIN_swap_hint
  337.     GLH_EXTERN PFNGLADDSWAPHINTRECTWINPROC glAddSwapHintRectWIN GLH_INITIALIZER;
  338. #endif
  339. #ifdef WGL_ARB_pbuffer
  340. # ifdef _WIN32
  341.     GLH_EXTERN PFNWGLCREATEPBUFFERARBPROC wglCreatePbufferARB GLH_INITIALIZER;
  342. # endif
  343. # ifdef _WIN32
  344.     GLH_EXTERN PFNWGLGETPBUFFERDCARBPROC wglGetPbufferDCARB GLH_INITIALIZER;
  345. # endif
  346. # ifdef _WIN32
  347.     GLH_EXTERN PFNWGLRELEASEPBUFFERDCARBPROC wglReleasePbufferDCARB GLH_INITIALIZER;
  348. # endif
  349. # ifdef _WIN32
  350.     GLH_EXTERN PFNWGLDESTROYPBUFFERARBPROC wglDestroyPbufferARB GLH_INITIALIZER;
  351. # endif
  352. # ifdef _WIN32
  353.     GLH_EXTERN PFNWGLQUERYPBUFFERARBPROC wglQueryPbufferARB GLH_INITIALIZER;
  354. # endif
  355. #endif
  356. #ifdef WGL_ARB_pixel_format
  357. # ifdef _WIN32
  358.     GLH_EXTERN PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB GLH_INITIALIZER;
  359. # endif
  360. # ifdef _WIN32
  361.     GLH_EXTERN PFNWGLGETPIXELFORMATATTRIBFVARBPROC wglGetPixelFormatAttribfvARB GLH_INITIALIZER;
  362. # endif
  363. # ifdef _WIN32
  364.     GLH_EXTERN PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB GLH_INITIALIZER;
  365. # endif
  366. #endif
  367. #ifdef GLH_EXT_SINGLE_FILE
  368. int glh_init_extension(const char* extension)
  369. {
  370.     if (NULL == extension) {
  371.         return FALSE;
  372. #ifdef GL_ARB_multitexture
  373.     } else if (0 == strcmp(extension, "GL_ARB_multitexture")) {
  374.         glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1dARB");
  375.         if (NULL == glMultiTexCoord1dARB)
  376.             return FALSE;
  377.         glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1dvARB");
  378.         if (NULL == glMultiTexCoord1dvARB)
  379.             return FALSE;
  380.         glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1fARB");
  381.         if (NULL == glMultiTexCoord1fARB)
  382.             return FALSE;
  383.         glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1fvARB");
  384.         if (NULL == glMultiTexCoord1fvARB)
  385.             return FALSE;
  386.         glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1iARB");
  387.         if (NULL == glMultiTexCoord1iARB)
  388.             return FALSE;
  389.         glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1ivARB");
  390.         if (NULL == glMultiTexCoord1ivARB)
  391.             return FALSE;
  392.         glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1sARB");
  393.         if (NULL == glMultiTexCoord1sARB)
  394.             return FALSE;
  395.         glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1svARB");
  396.         if (NULL == glMultiTexCoord1svARB)
  397.             return FALSE;
  398.         glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2dARB");
  399.         if (NULL == glMultiTexCoord2dARB)
  400.             return FALSE;
  401.         glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2dvARB");
  402.         if (NULL == glMultiTexCoord2dvARB)
  403.             return FALSE;
  404.         glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2fARB");
  405.         if (NULL == glMultiTexCoord2fARB)
  406.             return FALSE;
  407.         glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2fvARB");
  408.         if (NULL == glMultiTexCoord2fvARB)
  409.             return FALSE;
  410.         glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2iARB");
  411.         if (NULL == glMultiTexCoord2iARB)
  412.             return FALSE;
  413.         glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2ivARB");
  414.         if (NULL == glMultiTexCoord2ivARB)
  415.             return FALSE;
  416.         glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2sARB");
  417.         if (NULL == glMultiTexCoord2sARB)
  418.             return FALSE;
  419.         glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2svARB");
  420.         if (NULL == glMultiTexCoord2svARB)
  421.             return FALSE;
  422.         glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3dARB");
  423.         if (NULL == glMultiTexCoord3dARB)
  424.             return FALSE;
  425.         glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3dvARB");
  426.         if (NULL == glMultiTexCoord3dvARB)
  427.             return FALSE;
  428.         glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3fARB");
  429.         if (NULL == glMultiTexCoord3fARB)
  430.             return FALSE;
  431.         glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3fvARB");
  432.         if (NULL == glMultiTexCoord3fvARB)
  433.             return FALSE;
  434.         glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3iARB");
  435.         if (NULL == glMultiTexCoord3iARB)
  436.             return FALSE;
  437.         glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3ivARB");
  438.         if (NULL == glMultiTexCoord3ivARB)
  439.             return FALSE;
  440.         glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3sARB");
  441.         if (NULL == glMultiTexCoord3sARB)
  442.             return FALSE;
  443.         glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3svARB");
  444.         if (NULL == glMultiTexCoord3svARB)
  445.             return FALSE;
  446.         glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4dARB");
  447.         if (NULL == glMultiTexCoord4dARB)
  448.             return FALSE;
  449.         glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4dvARB");
  450.         if (NULL == glMultiTexCoord4dvARB)
  451.             return FALSE;
  452.         glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4fARB");
  453.         if (NULL == glMultiTexCoord4fARB)
  454.             return FALSE;
  455.         glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4fvARB");
  456.         if (NULL == glMultiTexCoord4fvARB)
  457.             return FALSE;
  458.         glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4iARB");
  459.         if (NULL == glMultiTexCoord4iARB)
  460.             return FALSE;
  461.         glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4ivARB");
  462.         if (NULL == glMultiTexCoord4ivARB)
  463.             return FALSE;
  464.         glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4sARB");
  465.         if (NULL == glMultiTexCoord4sARB)
  466.             return FALSE;
  467.         glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4svARB");
  468.         if (NULL == glMultiTexCoord4svARB)
  469.             return FALSE;
  470.         glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC)GLH_EXT_GET_PROC_ADDRESS("glActiveTextureARB");
  471.         if (NULL == glActiveTextureARB)
  472.             return FALSE;
  473.         glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC)GLH_EXT_GET_PROC_ADDRESS("glClientActiveTextureARB");
  474.         if (NULL == glClientActiveTextureARB)
  475.             return FALSE;
  476. #endif
  477. #ifdef GL_ARB_texture_border_clamp
  478.     } else if (0 == strcmp(extension, "GL_ARB_texture_border_clamp")) {
  479. #endif
  480. #ifdef GL_ARB_texture_compression
  481.     } else if (0 == strcmp(extension, "GL_ARB_texture_compression")) {
  482.         glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage3DARB");
  483.         if (NULL == glCompressedTexImage3DARB)
  484.             return FALSE;
  485.         glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage2DARB");
  486.         if (NULL == glCompressedTexImage2DARB)
  487.             return FALSE;
  488.         glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage1DARB");
  489.         if (NULL == glCompressedTexImage1DARB)
  490.             return FALSE;
  491.         glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage3DARB");
  492.         if (NULL == glCompressedTexSubImage3DARB)
  493.             return FALSE;
  494.         glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage2DARB");
  495.         if (NULL == glCompressedTexSubImage2DARB)
  496.             return FALSE;
  497.         glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage1DARB");
  498.         if (NULL == glCompressedTexSubImage1DARB)
  499.             return FALSE;
  500.         glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCompressedTexImageARB");
  501.         if (NULL == glGetCompressedTexImageARB)
  502.             return FALSE;
  503. #endif
  504. #ifdef GL_ARB_texture_cube_map
  505.     } else if (0 == strcmp(extension, "GL_ARB_texture_cube_map")) {
  506. #endif
  507. #ifdef GL_ARB_transpose_matrix
  508.     } else if (0 == strcmp(extension, "GL_ARB_transpose_matrix")) {
  509.         glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadTransposeMatrixfARB");
  510.         if (NULL == glLoadTransposeMatrixfARB)
  511.             return FALSE;
  512.         glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadTransposeMatrixdARB");
  513.         if (NULL == glLoadTransposeMatrixdARB)
  514.             return FALSE;
  515.         glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultTransposeMatrixfARB");
  516.         if (NULL == glMultTransposeMatrixfARB)
  517.             return FALSE;
  518.         glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultTransposeMatrixdARB");
  519.         if (NULL == glMultTransposeMatrixdARB)
  520.             return FALSE;
  521. #endif
  522. #ifdef GL_EXT_abgr
  523.     } else if (0 == strcmp(extension, "GL_EXT_abgr")) {
  524. #endif
  525. #ifdef GL_EXT_bgra
  526.     } else if (0 == strcmp(extension, "GL_EXT_bgra")) {
  527. #endif
  528. #ifdef GL_EXT_blend_color
  529.     } else if (0 == strcmp(extension, "GL_EXT_blend_color")) {
  530.         glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendColorEXT");
  531.         if (NULL == glBlendColorEXT)
  532.             return FALSE;
  533. #endif
  534. #ifdef GL_EXT_blend_minmax
  535.     } else if (0 == strcmp(extension, "GL_EXT_blend_minmax")) {
  536.         glBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendEquationEXT");
  537.         if (NULL == glBlendEquationEXT)
  538.             return FALSE;
  539. #endif
  540. #ifdef GL_EXT_blend_subtract
  541.     } else if (0 == strcmp(extension, "GL_EXT_blend_subtract")) {
  542. #endif
  543. #ifdef GL_EXT_compiled_vertex_array
  544.     } else if (0 == strcmp(extension, "GL_EXT_compiled_vertex_array")) {
  545.         glLockArraysEXT = (PFNGLLOCKARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glLockArraysEXT");
  546.         if (NULL == glLockArraysEXT)
  547.             return FALSE;
  548.         glUnlockArraysEXT = (PFNGLUNLOCKARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glUnlockArraysEXT");
  549.         if (NULL == glUnlockArraysEXT)
  550.             return FALSE;
  551. #endif
  552. #ifdef GL_EXT_fog_coord
  553.     } else if (0 == strcmp(extension, "GL_EXT_fog_coord")) {
  554.         glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoorddEXT");
  555.         if (NULL == glFogCoorddEXT)
  556.             return FALSE;
  557.         glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoorddvEXT");
  558.         if (NULL == glFogCoorddvEXT)
  559.             return FALSE;
  560.         glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordfEXT");
  561.         if (NULL == glFogCoordfEXT)
  562.             return FALSE;
  563.         glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordfvEXT");
  564.         if (NULL == glFogCoordfvEXT)
  565.             return FALSE;
  566.         glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordPointerEXT");
  567.         if (NULL == glFogCoordPointerEXT)
  568.             return FALSE;
  569. #endif
  570. #ifdef GL_EXT_light_max_exponent
  571.     } else if (0 == strcmp(extension, "GL_EXT_light_max_exponent")) {
  572. #endif
  573. #ifdef GL_EXT_packed_pixels
  574.     } else if (0 == strcmp(extension, "GL_EXT_packed_pixels")) {
  575. #endif
  576. #ifdef GL_EXT_paletted_texture
  577.     } else if (0 == strcmp(extension, "GL_EXT_paletted_texture")) {
  578.         glColorSubTableEXT = (PFNGLCOLORSUBTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glColorSubTableEXT");
  579.         if (NULL == glColorSubTableEXT)
  580.             return FALSE;
  581.         glcolorTableEXT = (PFNGLCOLORTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glcolorTableEXT");
  582.         if (NULL == glcolorTableEXT)
  583.             return FALSE;
  584.         glGetColorTableEXT = (PFNGLGETCOLORTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableEXT");
  585.         if (NULL == glGetColorTableEXT)
  586.             return FALSE;
  587.         glGetColorTableParameterfvEXT = (PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterfvEXT");
  588.         if (NULL == glGetColorTableParameterfvEXT)
  589.             return FALSE;
  590.         glGetColorTableParameterivEXT = (PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterivEXT");
  591.         if (NULL == glGetColorTableParameterivEXT)
  592.             return FALSE;
  593. #endif
  594. #ifdef GL_EXT_point_parameters
  595.     } else if (0 == strcmp(extension, "GL_EXT_point_parameters")) {
  596.         glPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPointParameterfEXT");
  597.         if (NULL == glPointParameterfEXT)
  598.             return FALSE;
  599.         glPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPointParameterfvEXT");
  600.         if (NULL == glPointParameterfvEXT)
  601.             return FALSE;
  602. #endif
  603. #ifdef GL_EXT_rescale_normal
  604.     } else if (0 == strcmp(extension, "GL_EXT_rescale_normal")) {
  605. #endif
  606. #ifdef GL_EXT_secondary_color
  607.     } else if (0 == strcmp(extension, "GL_EXT_secondary_color")) {
  608.         glSecondaryColor3bEXT = (PFNGLSECONDARYCOLOR3BEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3bEXT");
  609.         if (NULL == glSecondaryColor3bEXT)
  610.             return FALSE;
  611.         glSecondaryColor3bvEXT = (PFNGLSECONDARYCOLOR3BVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3bvEXT");
  612.         if (NULL == glSecondaryColor3bvEXT)
  613.             return FALSE;
  614.         glSecondaryColor3dEXT = (PFNGLSECONDARYCOLOR3DEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3dEXT");
  615.         if (NULL == glSecondaryColor3dEXT)
  616.             return FALSE;
  617.         glSecondaryColor3dvEXT = (PFNGLSECONDARYCOLOR3DVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3dvEXT");
  618.         if (NULL == glSecondaryColor3dvEXT)
  619.             return FALSE;
  620.         glSecondaryColor3fEXT = (PFNGLSECONDARYCOLOR3FEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3fEXT");
  621.         if (NULL == glSecondaryColor3fEXT)
  622.             return FALSE;
  623.         glSecondaryColor3fvEXT = (PFNGLSECONDARYCOLOR3FVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3fvEXT");
  624.         if (NULL == glSecondaryColor3fvEXT)
  625.             return FALSE;
  626.         glSecondaryColor3iEXT = (PFNGLSECONDARYCOLOR3IEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3iEXT");
  627.         if (NULL == glSecondaryColor3iEXT)
  628.             return FALSE;
  629.         glSecondaryColor3ivEXT = (PFNGLSECONDARYCOLOR3IVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ivEXT");
  630.         if (NULL == glSecondaryColor3ivEXT)
  631.             return FALSE;
  632.         glSecondaryColor3sEXT = (PFNGLSECONDARYCOLOR3SEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3sEXT");
  633.         if (NULL == glSecondaryColor3sEXT)
  634.             return FALSE;
  635.         glSecondaryColor3svEXT = (PFNGLSECONDARYCOLOR3SVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3svEXT");
  636.         if (NULL == glSecondaryColor3svEXT)
  637.             return FALSE;
  638.         glSecondaryColor3ubEXT = (PFNGLSECONDARYCOLOR3UBEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ubEXT");
  639.         if (NULL == glSecondaryColor3ubEXT)
  640.             return FALSE;
  641.         glSecondaryColor3ubvEXT = (PFNGLSECONDARYCOLOR3UBVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ubvEXT");
  642.         if (NULL == glSecondaryColor3ubvEXT)
  643.             return FALSE;
  644.         glSecondaryColor3uiEXT = (PFNGLSECONDARYCOLOR3UIEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3uiEXT");
  645.         if (NULL == glSecondaryColor3uiEXT)
  646.             return FALSE;
  647.         glSecondaryColor3uivEXT = (PFNGLSECONDARYCOLOR3UIVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3uivEXT");
  648.         if (NULL == glSecondaryColor3uivEXT)
  649.             return FALSE;
  650.         glSecondaryColor3usEXT = (PFNGLSECONDARYCOLOR3USEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3usEXT");
  651.         if (NULL == glSecondaryColor3usEXT)
  652.             return FALSE;
  653.         glSecondaryColor3usvEXT = (PFNGLSECONDARYCOLOR3USVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3usvEXT");
  654.         if (NULL == glSecondaryColor3usvEXT)
  655.             return FALSE;
  656.         glSecondaryColorPointerEXT = (PFNGLSECONDARYCOLORPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColorPointerEXT");
  657.         if (NULL == glSecondaryColorPointerEXT)
  658.             return FALSE;
  659. #endif
  660. #ifdef GL_EXT_separate_specular_color
  661.     } else if (0 == strcmp(extension, "GL_EXT_separate_specular_color")) {
  662. #endif
  663. #ifdef GL_EXT_shared_texture_palette
  664.     } else if (0 == strcmp(extension, "GL_EXT_shared_texture_palette")) {
  665. #endif
  666. #ifdef GL_EXT_stencil_wrap
  667.     } else if (0 == strcmp(extension, "GL_EXT_stencil_wrap")) {
  668. #endif
  669. #ifdef GL_EXT_texture_compression_s3tc
  670.     } else if (0 == strcmp(extension, "GL_EXT_texture_compression_s3tc")) {
  671. #endif
  672. #ifdef GL_EXT_texture_cube_map
  673.     } else if (0 == strcmp(extension, "GL_EXT_texture_cube_map")) {
  674. #endif
  675. #ifdef GL_EXT_texture_edge_clamp
  676.     } else if (0 == strcmp(extension, "GL_EXT_texture_edge_clamp")) {
  677. #endif
  678. #ifdef GL_EXT_texture_env_add
  679.     } else if (0 == strcmp(extension, "GL_EXT_texture_env_add")) {
  680. #endif
  681. #ifdef GL_EXT_texture_env_combine
  682.     } else if (0 == strcmp(extension, "GL_EXT_texture_env_combine")) {
  683. #endif
  684. #ifdef GL_EXT_texture_filter_anisotropic
  685.     } else if (0 == strcmp(extension, "GL_EXT_texture_filter_anisotropic")) {
  686. #endif
  687. #ifdef GL_EXT_texture_lod_bias
  688.     } else if (0 == strcmp(extension, "GL_EXT_texture_lod_bias")) {
  689. #endif
  690. #ifdef GL_EXT_texture_object
  691.     } else if (0 == strcmp(extension, "GL_EXT_texture_object")) {
  692.         glAreTexturesResidentEXT = (PFNGLARETEXTURESRESIDENTEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glAreTexturesResidentEXT");
  693.         if (NULL == glAreTexturesResidentEXT)
  694.             return FALSE;
  695.         glBindTextureEXT = (PFNGLBINDTEXTUREEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBindTextureEXT");
  696.         if (NULL == glBindTextureEXT)
  697.             return FALSE;
  698.         glDeleteTexturesEXT = (PFNGLDELETETEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteTexturesEXT");
  699.         if (NULL == glDeleteTexturesEXT)
  700.             return FALSE;
  701.         glGenTexturesEXT = (PFNGLGENTEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGenTexturesEXT");
  702.         if (NULL == glGenTexturesEXT)
  703.             return FALSE;
  704.         glIsTextureEXT = (PFNGLISTEXTUREEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glIsTextureEXT");
  705.         if (NULL == glIsTextureEXT)
  706.             return FALSE;
  707.         glPrioritizeTexturesEXT = (PFNGLPRIORITIZETEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPrioritizeTexturesEXT");
  708.         if (NULL == glPrioritizeTexturesEXT)
  709.             return FALSE;
  710. #endif
  711. #ifdef GL_EXT_vertex_array
  712.     } else if (0 == strcmp(extension, "GL_EXT_vertex_array")) {
  713.         glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glArrayElementEXT");
  714.         if (NULL == glArrayElementEXT)
  715.             return FALSE;
  716.         glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glColorPointerEXT");
  717.         if (NULL == glColorPointerEXT)
  718.             return FALSE;
  719.         glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glEdgeFlagPointerEXT");
  720.         if (NULL == glEdgeFlagPointerEXT)
  721.             return FALSE;
  722.         glGetPointervEXT = (PFNGLGETPOINTERVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetPointervEXT");
  723.         if (NULL == glGetPointervEXT)
  724.             return FALSE;
  725.         glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glIndexPointerEXT");
  726.         if (NULL == glIndexPointerEXT)
  727.             return FALSE;
  728.         glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glNormalPointerEXT");
  729.         if (NULL == glNormalPointerEXT)
  730.             return FALSE;
  731.         glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glTexCoordPointerEXT");
  732.         if (NULL == glTexCoordPointerEXT)
  733.             return FALSE;
  734.         glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexPointerEXT");
  735.         if (NULL == glVertexPointerEXT)
  736.             return FALSE;
  737.         glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glDrawArraysEXT");
  738.         if (NULL == glDrawArraysEXT)
  739.             return FALSE;
  740. #endif
  741. #ifdef GL_EXT_vertex_weighting
  742.     } else if (0 == strcmp(extension, "GL_EXT_vertex_weighting")) {
  743.         glVertexWeightfEXT = (PFNGLVERTEXWEIGHTFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightfEXT");
  744.         if (NULL == glVertexWeightfEXT)
  745.             return FALSE;
  746.         glVertexWeightfvEXT = (PFNGLVERTEXWEIGHTFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightfvEXT");
  747.         if (NULL == glVertexWeightfvEXT)
  748.             return FALSE;
  749.         glVertexWeightPointerEXT = (PFNGLVERTEXWEIGHTPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightPointerEXT");
  750.         if (NULL == glVertexWeightPointerEXT)
  751.             return FALSE;
  752. #endif
  753. #ifdef GL_NV_blend_square
  754.     } else if (0 == strcmp(extension, "GL_NV_blend_square")) {
  755. #endif
  756. #ifdef GL_NV_evaluators
  757.     } else if (0 == strcmp(extension, "GL_NV_evaluators")) {
  758.         glMapControlPointsNV = (PFNGLMAPCONTROLPOINTSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapControlPointsNV");
  759.         if (NULL == glMapControlPointsNV)
  760.             return FALSE;
  761.         glMapParameterivNV = (PFNGLMAPPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapParameterivNV");
  762.         if (NULL == glMapParameterivNV)
  763.             return FALSE;
  764.         glMapParameterfvNV = (PFNGLMAPPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapParameterfvNV");
  765.         if (NULL == glMapParameterfvNV)
  766.             return FALSE;
  767.         glGetMapControlPointsNV = (PFNGLGETMAPCONTROLPOINTSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapControlPointsNV");
  768.         if (NULL == glGetMapControlPointsNV)
  769.             return FALSE;
  770.         glGetMapParameterivNV = (PFNGLGETMAPPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapParameterivNV");
  771.         if (NULL == glGetMapParameterivNV)
  772.             return FALSE;
  773.         glGetMapParameterfvNV = (PFNGLGETMAPPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapParameterfvNV");
  774.         if (NULL == glGetMapParameterfvNV)
  775.             return FALSE;
  776.         glGetMapAttribParameterivNV = (PFNGLGETMAPATTRIBPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapAttribParameterivNV");
  777.         if (NULL == glGetMapAttribParameterivNV)
  778.             return FALSE;
  779.         glGetMapAttribParameterfvNV = (PFNGLGETMAPATTRIBPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapAttribParameterfvNV");
  780.         if (NULL == glGetMapAttribParameterfvNV)
  781.             return FALSE;
  782.         glEvalMapsNV = (PFNGLEVALMAPSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glEvalMapsNV");
  783.         if (NULL == glEvalMapsNV)
  784.             return FALSE;
  785. #endif
  786. #ifdef GL_NV_fence
  787.     } else if (0 == strcmp(extension, "GL_NV_fence")) {
  788.         glGenFencesNV = (PFNGLGENFENCESNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGenFencesNV");
  789.         if (NULL == glGenFencesNV)
  790.             return FALSE;
  791.         glDeleteFencesNV = (PFNGLDELETEFENCESNVPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteFencesNV");
  792.         if (NULL == glDeleteFencesNV)
  793.             return FALSE;
  794.         glSetFenceNV = (PFNGLSETFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glSetFenceNV");
  795.         if (NULL == glSetFenceNV)
  796.             return FALSE;
  797.         glTestFenceNV = (PFNGLTESTFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glTestFenceNV");
  798.         if (NULL == glTestFenceNV)
  799.             return FALSE;
  800.         glFinishFenceNV = (PFNGLFINISHFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glFinishFenceNV");
  801.         if (NULL == glFinishFenceNV)
  802.             return FALSE;
  803.         glIsFenceNV = (PFNGLISFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glIsFenceNV");
  804.         if (NULL == glIsFenceNV)
  805.             return FALSE;
  806.         glGetFenceivNV = (PFNGLGETFENCEIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFenceivNV");
  807.         if (NULL == glGetFenceivNV)
  808.             return FALSE;
  809. #endif
  810. #ifdef GL_NV_fog_distance
  811.     } else if (0 == strcmp(extension, "GL_NV_fog_distance")) {
  812. #endif
  813. #ifdef GL_NV_packed_depth_stencil
  814.     } else if (0 == strcmp(extension, "GL_NV_packed_depth_stencil")) {
  815. #endif
  816. #ifdef GL_NV_register_combiners
  817.     } else if (0 == strcmp(extension, "GL_NV_register_combiners")) {
  818.         glCombinerParameterfvNV = (PFNGLCOMBINERPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterfvNV");
  819.         if (NULL == glCombinerParameterfvNV)
  820.             return FALSE;
  821.         glCombinerParameterfNV = (PFNGLCOMBINERPARAMETERFNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterfNV");
  822.         if (NULL == glCombinerParameterfNV)
  823.             return FALSE;
  824.         glCombinerParameterivNV = (PFNGLCOMBINERPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterivNV");
  825.         if (NULL == glCombinerParameterivNV)
  826.             return FALSE;
  827.         glCombinerParameteriNV = (PFNGLCOMBINERPARAMETERINVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameteriNV");
  828.         if (NULL == glCombinerParameteriNV)
  829.             return FALSE;
  830.         glCombinerInputNV = (PFNGLCOMBINERINPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerInputNV");
  831.         if (NULL == glCombinerInputNV)
  832.             return FALSE;
  833.         glCombinerOutputNV = (PFNGLCOMBINEROUTPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerOutputNV");
  834.         if (NULL == glCombinerOutputNV)
  835.             return FALSE;
  836.         glFinalCombinerInputNV = (PFNGLFINALCOMBINERINPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glFinalCombinerInputNV");
  837.         if (NULL == glFinalCombinerInputNV)
  838.             return FALSE;
  839.         glGetCombinerInputParameterfvNV = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerInputParameterfvNV");
  840.         if (NULL == glGetCombinerInputParameterfvNV)
  841.             return FALSE;
  842.         glGetCombinerInputParameterivNV = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerInputParameterivNV");
  843.         if (NULL == glGetCombinerInputParameterivNV)
  844.             return FALSE;
  845.         glGetCombinerOutputParameterfvNV = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerOutputParameterfvNV");
  846.         if (NULL == glGetCombinerOutputParameterfvNV)
  847.             return FALSE;
  848.         glGetCombinerOutputParameterivNV = (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerOutputParameterivNV");
  849.         if (NULL == glGetCombinerOutputParameterivNV)
  850.             return FALSE;
  851.         glGetFinalCombinerInputParameterfvNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFinalCombinerInputParameterfvNV");
  852.         if (NULL == glGetFinalCombinerInputParameterfvNV)
  853.             return FALSE;
  854.         glGetFinalCombinerInputParameterivNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFinalCombinerInputParameterivNV");
  855.         if (NULL == glGetFinalCombinerInputParameterivNV)
  856.             return FALSE;
  857. #endif
  858. #ifdef GL_NV_register_combiners2
  859.     } else if (0 == strcmp(extension, "GL_NV_register_combiners2")) {
  860.         glCombinerStageParameterfvNV = (PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerStageParameterfvNV");
  861.         if (NULL == glCombinerStageParameterfvNV)
  862.             return FALSE;
  863.         glGetCombinerStageParameterfvNV = (PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerStageParameterfvNV");
  864.         if (NULL == glGetCombinerStageParameterfvNV)
  865.             return FALSE;
  866. #endif
  867. #ifdef GL_NV_texgen_reflection
  868.     } else if (0 == strcmp(extension, "GL_NV_texgen_reflection")) {
  869. #endif
  870. #ifdef GL_NV_texture_env_combine4
  871.     } else if (0 == strcmp(extension, "GL_NV_texture_env_combine4")) {
  872. #endif
  873. #ifdef GL_NV_texture_rectangle
  874.     } else if (0 == strcmp(extension, "GL_NV_texture_rectangle")) {
  875. #endif
  876. #ifdef GL_NV_texture_shader
  877.     } else if (0 == strcmp(extension, "GL_NV_texture_shader")) {
  878. #endif
  879. #ifdef GL_NV_vertex_array_range
  880.     } else if (0 == strcmp(extension, "GL_NV_vertex_array_range")) {
  881.         glFlushVertexArrayRangeNV = (PFNGLFLUSHVERTEXARRAYRANGENVPROC)GLH_EXT_GET_PROC_ADDRESS("glFlushVertexArrayRangeNV");
  882.         if (NULL == glFlushVertexArrayRangeNV)
  883.             return FALSE;
  884.         glVertexArrayRangeNV = (PFNGLVERTEXARRAYRANGENVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexArrayRangeNV");
  885.         if (NULL == glVertexArrayRangeNV)
  886.             return FALSE;
  887. # ifdef _WIN32
  888.         wglAllocateMemoryNV = (PFNWGLALLOCATEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglAllocateMemoryNV");
  889.         if (NULL == wglAllocateMemoryNV)
  890.             return FALSE;
  891. # endif
  892. # ifdef GLX_VERSION_1_3
  893.         glXAllocateMemoryNV = (PFNGLXALLOCATEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("glXAllocateMemoryNV");
  894.         if (NULL == glXAllocateMemoryNV)
  895.             return FALSE;
  896. # endif
  897. # ifdef _WIN32
  898.         wglFreeMemoryNV = (PFNWGLFREEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglFreeMemoryNV");
  899.         if (NULL == wglFreeMemoryNV)
  900.             return FALSE;
  901. # endif
  902. # ifdef GLX_VERSION_1_3
  903.         glXFreeMemoryNV = (PFNGLXFREEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("glXFreeMemoryNV");
  904.         if (NULL == glXFreeMemoryNV)
  905.             return FALSE;
  906. # endif
  907. #endif
  908. #ifdef GL_NV_vertex_program
  909.     } else if (0 == strcmp(extension, "GL_NV_vertex_program")) {
  910.         glAreProgramsResidentNV = (PFNGLAREPROGRAMSRESIDENTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glAreProgramsResidentNV");
  911.         if (NULL == glAreProgramsResidentNV)
  912.             return FALSE;
  913.         glBindProgramNV = (PFNGLBINDPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glBindProgramNV");
  914.         if (NULL == glBindProgramNV)
  915.             return FALSE;
  916.         glDeleteProgramsNV = (PFNGLDELETEPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteProgramsNV");
  917.         if (NULL == glDeleteProgramsNV)
  918.             return FALSE;
  919.         glExecuteProgramNV = (PFNGLEXECUTEPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glExecuteProgramNV");
  920.         if (NULL == glExecuteProgramNV)
  921.             return FALSE;
  922.         glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGenProgramsNV");
  923.         if (NULL == glGenProgramsNV)
  924.             return FALSE;
  925.         glGetProgramParameterdvNV = (PFNGLGETPROGRAMPARAMETERDVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramParameterdvNV");
  926.         if (NULL == glGetProgramParameterdvNV)
  927.             return FALSE;
  928.         glGetProgramParameterfvNV = (PFNGLGETPROGRAMPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramParameterfvNV");
  929.         if (NULL == glGetProgramParameterfvNV)
  930.             return FALSE;
  931.         glGetProgramivNV = (PFNGLGETPROGRAMIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramivNV");
  932.         if (NULL == glGetProgramivNV)
  933.             return FALSE;
  934.         glGetProgramStringNV = (PFNGLGETPROGRAMSTRINGNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramStringNV");
  935.         if (NULL == glGetProgramStringNV)
  936.             return FALSE;
  937.         glGetTrackMatrixivNV = (PFNGLGETTRACKMATRIXIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetTrackMatrixivNV");
  938.         if (NULL == glGetTrackMatrixivNV)
  939.             return FALSE;
  940.         glGetVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribdvNV");
  941.         if (NULL == glGetVertexAttribdvNV)
  942.             return FALSE;
  943.         glGetVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribfvNV");
  944.         if (NULL == glGetVertexAttribfvNV)
  945.             return FALSE;
  946.         glGetVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribivNV");
  947.         if (NULL == glGetVertexAttribivNV)
  948.             return FALSE;
  949.         glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribPointervNV");
  950. // temporary hack to deal with driver bug -- Cass
  951.         if (NULL == glGetVertexAttribPointervNV)
  952. glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribPointerNV");
  953.         if (NULL == glGetVertexAttribPointervNV)
  954.             return FALSE;
  955.         glIsProgramNV = (PFNGLISPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glIsProgramNV");
  956.         if (NULL == glIsProgramNV)
  957.             return FALSE;
  958.         glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadProgramNV");
  959.         if (NULL == glLoadProgramNV)
  960.             return FALSE;
  961.         glProgramParameter4dNV = (PFNGLPROGRAMPARAMETER4DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4dNV");
  962.         if (NULL == glProgramParameter4dNV)
  963.             return FALSE;
  964.         glProgramParameter4dvNV = (PFNGLPROGRAMPARAMETER4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4dvNV");
  965.         if (NULL == glProgramParameter4dvNV)
  966.             return FALSE;
  967.         glProgramParameter4fNV = (PFNGLPROGRAMPARAMETER4FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4fNV");
  968.         if (NULL == glProgramParameter4fNV)
  969.             return FALSE;
  970.         glProgramParameter4fvNV = (PFNGLPROGRAMPARAMETER4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4fvNV");
  971.         if (NULL == glProgramParameter4fvNV)
  972.             return FALSE;
  973.         glProgramParameters4dvNV = (PFNGLPROGRAMPARAMETERS4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameters4dvNV");
  974.         if (NULL == glProgramParameters4dvNV)
  975.             return FALSE;
  976.         glProgramParameters4fvNV = (PFNGLPROGRAMPARAMETERS4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameters4fvNV");
  977.         if (NULL == glProgramParameters4fvNV)
  978.             return FALSE;
  979.         glRequestResidentProgramsNV = (PFNGLREQUESTRESIDENTPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glRequestResidentProgramsNV");
  980.         if (NULL == glRequestResidentProgramsNV)
  981.             return FALSE;
  982.         glTrackMatrixNV = (PFNGLTRACKMATRIXNVPROC)GLH_EXT_GET_PROC_ADDRESS("glTrackMatrixNV");
  983.         if (NULL == glTrackMatrixNV)
  984.             return FALSE;
  985.         glVertexAttribPointerNV = (PFNGLVERTEXATTRIBPOINTERNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribPointerNV");
  986.         if (NULL == glVertexAttribPointerNV)
  987.             return FALSE;
  988.         glVertexAttrib1dNV = (PFNGLVERTEXATTRIB1DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1dNV");
  989.         if (NULL == glVertexAttrib1dNV)
  990.             return FALSE;
  991.         glVertexAttrib1dvNV = (PFNGLVERTEXATTRIB1DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1dvNV");
  992.         if (NULL == glVertexAttrib1dvNV)
  993.             return FALSE;
  994.         glVertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1fNV");
  995.         if (NULL == glVertexAttrib1fNV)
  996.             return FALSE;
  997.         glVertexAttrib1fvNV = (PFNGLVERTEXATTRIB1FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1fvNV");
  998.         if (NULL == glVertexAttrib1fvNV)
  999.             return FALSE;
  1000.         glVertexAttrib1sNV = (PFNGLVERTEXATTRIB1SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1sNV");
  1001.         if (NULL == glVertexAttrib1sNV)
  1002.             return FALSE;
  1003.         glVertexAttrib1svNV = (PFNGLVERTEXATTRIB1SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1svNV");
  1004.         if (NULL == glVertexAttrib1svNV)
  1005.             return FALSE;
  1006.         glVertexAttrib2dNV = (PFNGLVERTEXATTRIB2DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2dNV");
  1007.         if (NULL == glVertexAttrib2dNV)
  1008.             return FALSE;
  1009.         glVertexAttrib2dvNV = (PFNGLVERTEXATTRIB2DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2dvNV");
  1010.         if (NULL == glVertexAttrib2dvNV)
  1011.             return FALSE;
  1012.         glVertexAttrib2fNV = (PFNGLVERTEXATTRIB2FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2fNV");
  1013.         if (NULL == glVertexAttrib2fNV)
  1014.             return FALSE;
  1015.         glVertexAttrib2fvNV = (PFNGLVERTEXATTRIB2FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2fvNV");
  1016.         if (NULL == glVertexAttrib2fvNV)
  1017.             return FALSE;
  1018.         glVertexAttrib2sNV = (PFNGLVERTEXATTRIB2SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2sNV");
  1019.         if (NULL == glVertexAttrib2sNV)
  1020.             return FALSE;
  1021.         glVertexAttrib2svNV = (PFNGLVERTEXATTRIB2SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2svNV");
  1022.         if (NULL == glVertexAttrib2svNV)
  1023.             return FALSE;
  1024.         glVertexAttrib3dNV = (PFNGLVERTEXATTRIB3DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3dNV");
  1025.         if (NULL == glVertexAttrib3dNV)
  1026.             return FALSE;
  1027.         glVertexAttrib3dvNV = (PFNGLVERTEXATTRIB3DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3dvNV");
  1028.         if (NULL == glVertexAttrib3dvNV)
  1029.             return FALSE;
  1030.         glVertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3fNV");
  1031.         if (NULL == glVertexAttrib3fNV)
  1032.             return FALSE;
  1033.         glVertexAttrib3fvNV = (PFNGLVERTEXATTRIB3FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3fvNV");
  1034.         if (NULL == glVertexAttrib3fvNV)
  1035.             return FALSE;
  1036.         glVertexAttrib3sNV = (PFNGLVERTEXATTRIB3SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3sNV");
  1037.         if (NULL == glVertexAttrib3sNV)
  1038.             return FALSE;
  1039.         glVertexAttrib3svNV = (PFNGLVERTEXATTRIB3SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3svNV");
  1040.         if (NULL == glVertexAttrib3svNV)
  1041.             return FALSE;
  1042.         glVertexAttrib4dNV = (PFNGLVERTEXATTRIB4DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4dNV");
  1043.         if (NULL == glVertexAttrib4dNV)
  1044.             return FALSE;
  1045.         glVertexAttrib4dvNV = (PFNGLVERTEXATTRIB4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4dvNV");
  1046.         if (NULL == glVertexAttrib4dvNV)
  1047.             return FALSE;
  1048.         glVertexAttrib4fNV = (PFNGLVERTEXATTRIB4FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4fNV");
  1049.         if (NULL == glVertexAttrib4fNV)
  1050.             return FALSE;
  1051.         glVertexAttrib4fvNV = (PFNGLVERTEXATTRIB4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4fvNV");
  1052.         if (NULL == glVertexAttrib4fvNV)
  1053.             return FALSE;
  1054.         glVertexAttrib4sNV = (PFNGLVERTEXATTRIB4SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4sNV");
  1055.         if (NULL == glVertexAttrib4sNV)
  1056.             return FALSE;
  1057.         glVertexAttrib4svNV = (PFNGLVERTEXATTRIB4SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4svNV");
  1058.         if (NULL == glVertexAttrib4svNV)
  1059.             return FALSE;
  1060.         glVertexAttrib4ubvNV = (PFNGLVERTEXATTRIB4UBVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4ubvNV");
  1061.         if (NULL == glVertexAttrib4ubvNV)
  1062.             return FALSE;
  1063.         glVertexAttribs1dvNV = (PFNGLVERTEXATTRIBS1DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1dvNV");
  1064.         if (NULL == glVertexAttribs1dvNV)
  1065.             return FALSE;
  1066.         glVertexAttribs1fvNV = (PFNGLVERTEXATTRIBS1FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1fvNV");
  1067.         if (NULL == glVertexAttribs1fvNV)
  1068.             return FALSE;
  1069.         glVertexAttribs1svNV = (PFNGLVERTEXATTRIBS1SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1svNV");
  1070.         if (NULL == glVertexAttribs1svNV)
  1071.             return FALSE;
  1072.         glVertexAttribs2dvNV = (PFNGLVERTEXATTRIBS2DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2dvNV");
  1073.         if (NULL == glVertexAttribs2dvNV)
  1074.             return FALSE;
  1075.         glVertexAttribs2fvNV = (PFNGLVERTEXATTRIBS2FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2fvNV");
  1076.         if (NULL == glVertexAttribs2fvNV)
  1077.             return FALSE;
  1078.         glVertexAttribs2svNV = (PFNGLVERTEXATTRIBS2SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2svNV");
  1079.         if (NULL == glVertexAttribs2svNV)
  1080.             return FALSE;
  1081.         glVertexAttribs3dvNV = (PFNGLVERTEXATTRIBS3DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3dvNV");
  1082.         if (NULL == glVertexAttribs3dvNV)
  1083.             return FALSE;
  1084.         glVertexAttribs3fvNV = (PFNGLVERTEXATTRIBS3FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3fvNV");
  1085.         if (NULL == glVertexAttribs3fvNV)
  1086.             return FALSE;
  1087.         glVertexAttribs3svNV = (PFNGLVERTEXATTRIBS3SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3svNV");
  1088.         if (NULL == glVertexAttribs3svNV)
  1089.             return FALSE;
  1090.         glVertexAttribs4dvNV = (PFNGLVERTEXATTRIBS4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4dvNV");
  1091.         if (NULL == glVertexAttribs4dvNV)
  1092.             return FALSE;
  1093.         glVertexAttribs4fvNV = (PFNGLVERTEXATTRIBS4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4fvNV");
  1094.         if (NULL == glVertexAttribs4fvNV)
  1095.             return FALSE;
  1096.         glVertexAttribs4svNV = (PFNGLVERTEXATTRIBS4SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4svNV");
  1097.         if (NULL == glVertexAttribs4svNV)
  1098.             return FALSE;
  1099.         glVertexAttribs4ubvNV = (PFNGLVERTEXATTRIBS4UBVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4ubvNV");
  1100.         if (NULL == glVertexAttribs4ubvNV)
  1101.             return FALSE;
  1102. #endif
  1103. #ifdef GL_SGIS_texture_lod
  1104.     } else if (0 == strcmp(extension, "GL_SGIS_texture_lod")) {
  1105. #endif
  1106. #ifdef GL_SGIX_depth_texture
  1107.     } else if (0 == strcmp(extension, "GL_SGIX_depth_texture")) {
  1108. #endif
  1109. #ifdef GL_SGIX_shadow
  1110.     } else if (0 == strcmp(extension, "GL_SGIX_shadow")) {
  1111. #endif
  1112. #ifdef GL_VERSION_1_2
  1113.     } else if (0 == strcmp(extension, "GL_VERSION_1_2")) {
  1114.         _glBlendColor = (PFNGLBLENDCOLORPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendColor");
  1115.         if (NULL == _glBlendColor)
  1116.             return FALSE;
  1117.         _glBlendEquation = (PFNGLBLENDEQUATIONPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendEquation");
  1118.         if (NULL == _glBlendEquation)
  1119.             return FALSE;
  1120.         _glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)GLH_EXT_GET_PROC_ADDRESS("glDrawRangeElements");
  1121.         if (NULL == _glDrawRangeElements)
  1122.             return FALSE;
  1123.         _glColorTable = (PFNGLCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTable");
  1124.         if (NULL == _glColorTable)
  1125.             return FALSE;
  1126.         _glColorTableParameterfv = (PFNGLCOLORTABLEPARAMETERFVPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTableParameterfv");
  1127.         if (NULL == _glColorTableParameterfv)
  1128.             return FALSE;
  1129.         _glColorTableParameteriv = (PFNGLCOLORTABLEPARAMETERIVPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTableParameteriv");
  1130.         if (NULL == _glColorTableParameteriv)
  1131.             return FALSE;
  1132.         _glCopyColorTable = (PFNGLCOPYCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glCopyColorTable");
  1133.         if (NULL == _glCopyColorTable)
  1134.             return FALSE;
  1135.         _glGetColorTable = (PFNGLGETCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTable");
  1136.         if (NULL == _glGetColorTable)
  1137.             return FALSE;
  1138.         _glGetColorTableParameterfv = (PFNGLGETCOLORTABLEPARAMETERFVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterfv");
  1139.         if (NULL == _glGetColorTableParameterfv)
  1140.             return FALSE;
  1141.         _glGetColorTableParameteriv = (PFNGLGETCOLORTABLEPARAMETERIVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameteriv");
  1142.         if (NULL == _glGetColorTableParameteriv)
  1143.             return FALSE;
  1144.         _glTexImage3D = (PFNGLTEXIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glTexImage3D");
  1145.         if (NULL == _glTexImage3D)
  1146.             return FALSE;
  1147.         _glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glTexSubImage3D");
  1148.         if (NULL == _glTexSubImage3D)
  1149.             return FALSE;
  1150.         _glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glCopyTexSubImage3D");
  1151.         if (NULL == _glCopyTexSubImage3D)
  1152.             return FALSE;
  1153. #endif
  1154. #ifdef GL_WIN_swap_hint
  1155.     } else if (0 == strcmp(extension, "GL_WIN_swap_hint")) {
  1156.         glAddSwapHintRectWIN = (PFNGLADDSWAPHINTRECTWINPROC)GLH_EXT_GET_PROC_ADDRESS("glAddSwapHintRectWIN");
  1157.         if (NULL == glAddSwapHintRectWIN)
  1158.             return FALSE;
  1159. #endif
  1160. #ifdef WGL_ARB_pbuffer
  1161.     } else if (0 == strcmp(extension, "WGL_ARB_pbuffer")) {
  1162. # ifdef _WIN32
  1163.         wglCreatePbufferARB = (PFNWGLCREATEPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglCreatePbufferARB");
  1164.         if (NULL == wglCreatePbufferARB)
  1165.             return FALSE;
  1166. # endif
  1167. # ifdef _WIN32
  1168.         wglGetPbufferDCARB = (PFNWGLGETPBUFFERDCARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPbufferDCARB");
  1169.         if (NULL == wglGetPbufferDCARB)
  1170.             return FALSE;
  1171. # endif
  1172. # ifdef _WIN32
  1173.         wglReleasePbufferDCARB = (PFNWGLRELEASEPBUFFERDCARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglReleasePbufferDCARB");
  1174.         if (NULL == wglReleasePbufferDCARB)
  1175.             return FALSE;
  1176. # endif
  1177. # ifdef _WIN32
  1178.         wglDestroyPbufferARB = (PFNWGLDESTROYPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglDestroyPbufferARB");
  1179.         if (NULL == wglDestroyPbufferARB)
  1180.             return FALSE;
  1181. # endif
  1182. # ifdef _WIN32
  1183.         wglQueryPbufferARB = (PFNWGLQUERYPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglQueryPbufferARB");
  1184.         if (NULL == wglQueryPbufferARB)
  1185.             return FALSE;
  1186. # endif
  1187. #endif
  1188. #ifdef WGL_ARB_pixel_format
  1189.     } else if (0 == strcmp(extension, "WGL_ARB_pixel_format")) {
  1190. # ifdef _WIN32
  1191.         wglGetPixelFormatAttribivARB = (PFNWGLGETPIXELFORMATATTRIBIVARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPixelFormatAttribivARB");
  1192.         if (NULL == wglGetPixelFormatAttribivARB)
  1193.             return FALSE;
  1194. # endif
  1195. # ifdef _WIN32
  1196.         wglGetPixelFormatAttribfvARB = (PFNWGLGETPIXELFORMATATTRIBFVARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPixelFormatAttribfvARB");
  1197.         if (NULL == wglGetPixelFormatAttribfvARB)
  1198.             return FALSE;
  1199. # endif
  1200. # ifdef _WIN32
  1201.         wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglChoosePixelFormatARB");
  1202.         if (NULL == wglChoosePixelFormatARB)
  1203.             return FALSE;
  1204. # endif
  1205. #endif
  1206.     } else {
  1207.         return FALSE;
  1208.     }
  1209.     return TRUE;
  1210. }
  1211. #endif
  1212. #undef GLH_EXT_SINGLE_FILE
  1213. #endif /* GLH_GENEXT_H */