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

其他游戏

开发平台:

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_make_current_read
  340. # ifdef _WIN32
  341.     GLH_EXTERN PFNWGLMAKECONTEXTCURRENTARBPROC wglMakeContextCurrentARB GLH_INITIALIZER;
  342. # endif
  343. # ifdef _WIN32
  344.     GLH_EXTERN PFNWGLGETCURRENTREADDCARBPROC wglGetCurrentReadDCARB GLH_INITIALIZER;
  345. # endif
  346. #endif
  347. #ifdef WGL_ARB_pbuffer
  348. # ifdef _WIN32
  349.     GLH_EXTERN PFNWGLCREATEPBUFFERARBPROC wglCreatePbufferARB GLH_INITIALIZER;
  350. # endif
  351. # ifdef _WIN32
  352.     GLH_EXTERN PFNWGLGETPBUFFERDCARBPROC wglGetPbufferDCARB GLH_INITIALIZER;
  353. # endif
  354. # ifdef _WIN32
  355.     GLH_EXTERN PFNWGLRELEASEPBUFFERDCARBPROC wglReleasePbufferDCARB GLH_INITIALIZER;
  356. # endif
  357. # ifdef _WIN32
  358.     GLH_EXTERN PFNWGLDESTROYPBUFFERARBPROC wglDestroyPbufferARB GLH_INITIALIZER;
  359. # endif
  360. # ifdef _WIN32
  361.     GLH_EXTERN PFNWGLQUERYPBUFFERARBPROC wglQueryPbufferARB GLH_INITIALIZER;
  362. # endif
  363. #endif
  364. #ifdef WGL_ARB_pixel_format
  365. # ifdef _WIN32
  366.     GLH_EXTERN PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB GLH_INITIALIZER;
  367. # endif
  368. # ifdef _WIN32
  369.     GLH_EXTERN PFNWGLGETPIXELFORMATATTRIBFVARBPROC wglGetPixelFormatAttribfvARB GLH_INITIALIZER;
  370. # endif
  371. # ifdef _WIN32
  372.     GLH_EXTERN PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB GLH_INITIALIZER;
  373. # endif
  374. #endif
  375. #ifdef GLH_EXT_SINGLE_FILE
  376. int glh_init_extension(const char* extension)
  377. {
  378.     if (NULL == extension) {
  379.         return FALSE;
  380. #ifdef GL_ARB_multitexture
  381.     } else if (0 == strcmp(extension, "GL_ARB_multitexture")) {
  382.         glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1dARB");
  383.         if (NULL == glMultiTexCoord1dARB)
  384.             return FALSE;
  385.         glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1dvARB");
  386.         if (NULL == glMultiTexCoord1dvARB)
  387.             return FALSE;
  388.         glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1fARB");
  389.         if (NULL == glMultiTexCoord1fARB)
  390.             return FALSE;
  391.         glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1fvARB");
  392.         if (NULL == glMultiTexCoord1fvARB)
  393.             return FALSE;
  394.         glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1iARB");
  395.         if (NULL == glMultiTexCoord1iARB)
  396.             return FALSE;
  397.         glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1ivARB");
  398.         if (NULL == glMultiTexCoord1ivARB)
  399.             return FALSE;
  400.         glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1sARB");
  401.         if (NULL == glMultiTexCoord1sARB)
  402.             return FALSE;
  403.         glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1svARB");
  404.         if (NULL == glMultiTexCoord1svARB)
  405.             return FALSE;
  406.         glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2dARB");
  407.         if (NULL == glMultiTexCoord2dARB)
  408.             return FALSE;
  409.         glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2dvARB");
  410.         if (NULL == glMultiTexCoord2dvARB)
  411.             return FALSE;
  412.         glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2fARB");
  413.         if (NULL == glMultiTexCoord2fARB)
  414.             return FALSE;
  415.         glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2fvARB");
  416.         if (NULL == glMultiTexCoord2fvARB)
  417.             return FALSE;
  418.         glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2iARB");
  419.         if (NULL == glMultiTexCoord2iARB)
  420.             return FALSE;
  421.         glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2ivARB");
  422.         if (NULL == glMultiTexCoord2ivARB)
  423.             return FALSE;
  424.         glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2sARB");
  425.         if (NULL == glMultiTexCoord2sARB)
  426.             return FALSE;
  427.         glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2svARB");
  428.         if (NULL == glMultiTexCoord2svARB)
  429.             return FALSE;
  430.         glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3dARB");
  431.         if (NULL == glMultiTexCoord3dARB)
  432.             return FALSE;
  433.         glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3dvARB");
  434.         if (NULL == glMultiTexCoord3dvARB)
  435.             return FALSE;
  436.         glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3fARB");
  437.         if (NULL == glMultiTexCoord3fARB)
  438.             return FALSE;
  439.         glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3fvARB");
  440.         if (NULL == glMultiTexCoord3fvARB)
  441.             return FALSE;
  442.         glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3iARB");
  443.         if (NULL == glMultiTexCoord3iARB)
  444.             return FALSE;
  445.         glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3ivARB");
  446.         if (NULL == glMultiTexCoord3ivARB)
  447.             return FALSE;
  448.         glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3sARB");
  449.         if (NULL == glMultiTexCoord3sARB)
  450.             return FALSE;
  451.         glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3svARB");
  452.         if (NULL == glMultiTexCoord3svARB)
  453.             return FALSE;
  454.         glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4dARB");
  455.         if (NULL == glMultiTexCoord4dARB)
  456.             return FALSE;
  457.         glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4dvARB");
  458.         if (NULL == glMultiTexCoord4dvARB)
  459.             return FALSE;
  460.         glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4fARB");
  461.         if (NULL == glMultiTexCoord4fARB)
  462.             return FALSE;
  463.         glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4fvARB");
  464.         if (NULL == glMultiTexCoord4fvARB)
  465.             return FALSE;
  466.         glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4iARB");
  467.         if (NULL == glMultiTexCoord4iARB)
  468.             return FALSE;
  469.         glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4ivARB");
  470.         if (NULL == glMultiTexCoord4ivARB)
  471.             return FALSE;
  472.         glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4sARB");
  473.         if (NULL == glMultiTexCoord4sARB)
  474.             return FALSE;
  475.         glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4svARB");
  476.         if (NULL == glMultiTexCoord4svARB)
  477.             return FALSE;
  478.         glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC)GLH_EXT_GET_PROC_ADDRESS("glActiveTextureARB");
  479.         if (NULL == glActiveTextureARB)
  480.             return FALSE;
  481.         glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC)GLH_EXT_GET_PROC_ADDRESS("glClientActiveTextureARB");
  482.         if (NULL == glClientActiveTextureARB)
  483.             return FALSE;
  484. #endif
  485. #ifdef GL_ARB_texture_border_clamp
  486.     } else if (0 == strcmp(extension, "GL_ARB_texture_border_clamp")) {
  487. #endif
  488. #ifdef GL_ARB_texture_compression
  489.     } else if (0 == strcmp(extension, "GL_ARB_texture_compression")) {
  490.         glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage3DARB");
  491.         if (NULL == glCompressedTexImage3DARB)
  492.             return FALSE;
  493.         glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage2DARB");
  494.         if (NULL == glCompressedTexImage2DARB)
  495.             return FALSE;
  496.         glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage1DARB");
  497.         if (NULL == glCompressedTexImage1DARB)
  498.             return FALSE;
  499.         glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage3DARB");
  500.         if (NULL == glCompressedTexSubImage3DARB)
  501.             return FALSE;
  502.         glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage2DARB");
  503.         if (NULL == glCompressedTexSubImage2DARB)
  504.             return FALSE;
  505.         glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage1DARB");
  506.         if (NULL == glCompressedTexSubImage1DARB)
  507.             return FALSE;
  508.         glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCompressedTexImageARB");
  509.         if (NULL == glGetCompressedTexImageARB)
  510.             return FALSE;
  511. #endif
  512. #ifdef GL_ARB_texture_cube_map
  513.     } else if (0 == strcmp(extension, "GL_ARB_texture_cube_map")) {
  514. #endif
  515. #ifdef GL_ARB_transpose_matrix
  516.     } else if (0 == strcmp(extension, "GL_ARB_transpose_matrix")) {
  517.         glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadTransposeMatrixfARB");
  518.         if (NULL == glLoadTransposeMatrixfARB)
  519.             return FALSE;
  520.         glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadTransposeMatrixdARB");
  521.         if (NULL == glLoadTransposeMatrixdARB)
  522.             return FALSE;
  523.         glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultTransposeMatrixfARB");
  524.         if (NULL == glMultTransposeMatrixfARB)
  525.             return FALSE;
  526.         glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultTransposeMatrixdARB");
  527.         if (NULL == glMultTransposeMatrixdARB)
  528.             return FALSE;
  529. #endif
  530. #ifdef GL_EXT_abgr
  531.     } else if (0 == strcmp(extension, "GL_EXT_abgr")) {
  532. #endif
  533. #ifdef GL_EXT_bgra
  534.     } else if (0 == strcmp(extension, "GL_EXT_bgra")) {
  535. #endif
  536. #ifdef GL_EXT_blend_color
  537.     } else if (0 == strcmp(extension, "GL_EXT_blend_color")) {
  538.         glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendColorEXT");
  539.         if (NULL == glBlendColorEXT)
  540.             return FALSE;
  541. #endif
  542. #ifdef GL_EXT_blend_minmax
  543.     } else if (0 == strcmp(extension, "GL_EXT_blend_minmax")) {
  544.         glBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendEquationEXT");
  545.         if (NULL == glBlendEquationEXT)
  546.             return FALSE;
  547. #endif
  548. #ifdef GL_EXT_blend_subtract
  549.     } else if (0 == strcmp(extension, "GL_EXT_blend_subtract")) {
  550. #endif
  551. #ifdef GL_EXT_compiled_vertex_array
  552.     } else if (0 == strcmp(extension, "GL_EXT_compiled_vertex_array")) {
  553.         glLockArraysEXT = (PFNGLLOCKARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glLockArraysEXT");
  554.         if (NULL == glLockArraysEXT)
  555.             return FALSE;
  556.         glUnlockArraysEXT = (PFNGLUNLOCKARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glUnlockArraysEXT");
  557.         if (NULL == glUnlockArraysEXT)
  558.             return FALSE;
  559. #endif
  560. #ifdef GL_EXT_fog_coord
  561.     } else if (0 == strcmp(extension, "GL_EXT_fog_coord")) {
  562.         glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoorddEXT");
  563.         if (NULL == glFogCoorddEXT)
  564.             return FALSE;
  565.         glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoorddvEXT");
  566.         if (NULL == glFogCoorddvEXT)
  567.             return FALSE;
  568.         glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordfEXT");
  569.         if (NULL == glFogCoordfEXT)
  570.             return FALSE;
  571.         glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordfvEXT");
  572.         if (NULL == glFogCoordfvEXT)
  573.             return FALSE;
  574.         glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordPointerEXT");
  575.         if (NULL == glFogCoordPointerEXT)
  576.             return FALSE;
  577. #endif
  578. #ifdef GL_EXT_light_max_exponent
  579.     } else if (0 == strcmp(extension, "GL_EXT_light_max_exponent")) {
  580. #endif
  581. #ifdef GL_EXT_packed_pixels
  582.     } else if (0 == strcmp(extension, "GL_EXT_packed_pixels")) {
  583. #endif
  584. #ifdef GL_EXT_paletted_texture
  585.     } else if (0 == strcmp(extension, "GL_EXT_paletted_texture")) {
  586.         glColorSubTableEXT = (PFNGLCOLORSUBTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glColorSubTableEXT");
  587.         if (NULL == glColorSubTableEXT)
  588.             return FALSE;
  589.         glcolorTableEXT = (PFNGLCOLORTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glcolorTableEXT");
  590.         if (NULL == glcolorTableEXT)
  591.             return FALSE;
  592.         glGetColorTableEXT = (PFNGLGETCOLORTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableEXT");
  593.         if (NULL == glGetColorTableEXT)
  594.             return FALSE;
  595.         glGetColorTableParameterfvEXT = (PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterfvEXT");
  596.         if (NULL == glGetColorTableParameterfvEXT)
  597.             return FALSE;
  598.         glGetColorTableParameterivEXT = (PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterivEXT");
  599.         if (NULL == glGetColorTableParameterivEXT)
  600.             return FALSE;
  601. #endif
  602. #ifdef GL_EXT_point_parameters
  603.     } else if (0 == strcmp(extension, "GL_EXT_point_parameters")) {
  604.         glPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPointParameterfEXT");
  605.         if (NULL == glPointParameterfEXT)
  606.             return FALSE;
  607.         glPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPointParameterfvEXT");
  608.         if (NULL == glPointParameterfvEXT)
  609.             return FALSE;
  610. #endif
  611. #ifdef GL_EXT_rescale_normal
  612.     } else if (0 == strcmp(extension, "GL_EXT_rescale_normal")) {
  613. #endif
  614. #ifdef GL_EXT_secondary_color
  615.     } else if (0 == strcmp(extension, "GL_EXT_secondary_color")) {
  616.         glSecondaryColor3bEXT = (PFNGLSECONDARYCOLOR3BEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3bEXT");
  617.         if (NULL == glSecondaryColor3bEXT)
  618.             return FALSE;
  619.         glSecondaryColor3bvEXT = (PFNGLSECONDARYCOLOR3BVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3bvEXT");
  620.         if (NULL == glSecondaryColor3bvEXT)
  621.             return FALSE;
  622.         glSecondaryColor3dEXT = (PFNGLSECONDARYCOLOR3DEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3dEXT");
  623.         if (NULL == glSecondaryColor3dEXT)
  624.             return FALSE;
  625.         glSecondaryColor3dvEXT = (PFNGLSECONDARYCOLOR3DVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3dvEXT");
  626.         if (NULL == glSecondaryColor3dvEXT)
  627.             return FALSE;
  628.         glSecondaryColor3fEXT = (PFNGLSECONDARYCOLOR3FEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3fEXT");
  629.         if (NULL == glSecondaryColor3fEXT)
  630.             return FALSE;
  631.         glSecondaryColor3fvEXT = (PFNGLSECONDARYCOLOR3FVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3fvEXT");
  632.         if (NULL == glSecondaryColor3fvEXT)
  633.             return FALSE;
  634.         glSecondaryColor3iEXT = (PFNGLSECONDARYCOLOR3IEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3iEXT");
  635.         if (NULL == glSecondaryColor3iEXT)
  636.             return FALSE;
  637.         glSecondaryColor3ivEXT = (PFNGLSECONDARYCOLOR3IVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ivEXT");
  638.         if (NULL == glSecondaryColor3ivEXT)
  639.             return FALSE;
  640.         glSecondaryColor3sEXT = (PFNGLSECONDARYCOLOR3SEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3sEXT");
  641.         if (NULL == glSecondaryColor3sEXT)
  642.             return FALSE;
  643.         glSecondaryColor3svEXT = (PFNGLSECONDARYCOLOR3SVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3svEXT");
  644.         if (NULL == glSecondaryColor3svEXT)
  645.             return FALSE;
  646.         glSecondaryColor3ubEXT = (PFNGLSECONDARYCOLOR3UBEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ubEXT");
  647.         if (NULL == glSecondaryColor3ubEXT)
  648.             return FALSE;
  649.         glSecondaryColor3ubvEXT = (PFNGLSECONDARYCOLOR3UBVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ubvEXT");
  650.         if (NULL == glSecondaryColor3ubvEXT)
  651.             return FALSE;
  652.         glSecondaryColor3uiEXT = (PFNGLSECONDARYCOLOR3UIEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3uiEXT");
  653.         if (NULL == glSecondaryColor3uiEXT)
  654.             return FALSE;
  655.         glSecondaryColor3uivEXT = (PFNGLSECONDARYCOLOR3UIVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3uivEXT");
  656.         if (NULL == glSecondaryColor3uivEXT)
  657.             return FALSE;
  658.         glSecondaryColor3usEXT = (PFNGLSECONDARYCOLOR3USEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3usEXT");
  659.         if (NULL == glSecondaryColor3usEXT)
  660.             return FALSE;
  661.         glSecondaryColor3usvEXT = (PFNGLSECONDARYCOLOR3USVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3usvEXT");
  662.         if (NULL == glSecondaryColor3usvEXT)
  663.             return FALSE;
  664.         glSecondaryColorPointerEXT = (PFNGLSECONDARYCOLORPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColorPointerEXT");
  665.         if (NULL == glSecondaryColorPointerEXT)
  666.             return FALSE;
  667. #endif
  668. #ifdef GL_EXT_separate_specular_color
  669.     } else if (0 == strcmp(extension, "GL_EXT_separate_specular_color")) {
  670. #endif
  671. #ifdef GL_EXT_shared_texture_palette
  672.     } else if (0 == strcmp(extension, "GL_EXT_shared_texture_palette")) {
  673. #endif
  674. #ifdef GL_EXT_stencil_wrap
  675.     } else if (0 == strcmp(extension, "GL_EXT_stencil_wrap")) {
  676. #endif
  677. #ifdef GL_EXT_texture_compression_s3tc
  678.     } else if (0 == strcmp(extension, "GL_EXT_texture_compression_s3tc")) {
  679. #endif
  680. #ifdef GL_EXT_texture_cube_map
  681.     } else if (0 == strcmp(extension, "GL_EXT_texture_cube_map")) {
  682. #endif
  683. #ifdef GL_EXT_texture_edge_clamp
  684.     } else if (0 == strcmp(extension, "GL_EXT_texture_edge_clamp")) {
  685. #endif
  686. #ifdef GL_EXT_texture_env_add
  687.     } else if (0 == strcmp(extension, "GL_EXT_texture_env_add")) {
  688. #endif
  689. #ifdef GL_EXT_texture_env_combine
  690.     } else if (0 == strcmp(extension, "GL_EXT_texture_env_combine")) {
  691. #endif
  692. #ifdef GL_EXT_texture_filter_anisotropic
  693.     } else if (0 == strcmp(extension, "GL_EXT_texture_filter_anisotropic")) {
  694. #endif
  695. #ifdef GL_EXT_texture_lod_bias
  696.     } else if (0 == strcmp(extension, "GL_EXT_texture_lod_bias")) {
  697. #endif
  698. #ifdef GL_EXT_texture_object
  699.     } else if (0 == strcmp(extension, "GL_EXT_texture_object")) {
  700.         glAreTexturesResidentEXT = (PFNGLARETEXTURESRESIDENTEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glAreTexturesResidentEXT");
  701.         if (NULL == glAreTexturesResidentEXT)
  702.             return FALSE;
  703.         glBindTextureEXT = (PFNGLBINDTEXTUREEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBindTextureEXT");
  704.         if (NULL == glBindTextureEXT)
  705.             return FALSE;
  706.         glDeleteTexturesEXT = (PFNGLDELETETEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteTexturesEXT");
  707.         if (NULL == glDeleteTexturesEXT)
  708.             return FALSE;
  709.         glGenTexturesEXT = (PFNGLGENTEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGenTexturesEXT");
  710.         if (NULL == glGenTexturesEXT)
  711.             return FALSE;
  712.         glIsTextureEXT = (PFNGLISTEXTUREEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glIsTextureEXT");
  713.         if (NULL == glIsTextureEXT)
  714.             return FALSE;
  715.         glPrioritizeTexturesEXT = (PFNGLPRIORITIZETEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPrioritizeTexturesEXT");
  716.         if (NULL == glPrioritizeTexturesEXT)
  717.             return FALSE;
  718. #endif
  719. #ifdef GL_EXT_vertex_array
  720.     } else if (0 == strcmp(extension, "GL_EXT_vertex_array")) {
  721.         glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glArrayElementEXT");
  722.         if (NULL == glArrayElementEXT)
  723.             return FALSE;
  724.         glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glColorPointerEXT");
  725.         if (NULL == glColorPointerEXT)
  726.             return FALSE;
  727.         glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glEdgeFlagPointerEXT");
  728.         if (NULL == glEdgeFlagPointerEXT)
  729.             return FALSE;
  730.         glGetPointervEXT = (PFNGLGETPOINTERVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetPointervEXT");
  731.         if (NULL == glGetPointervEXT)
  732.             return FALSE;
  733.         glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glIndexPointerEXT");
  734.         if (NULL == glIndexPointerEXT)
  735.             return FALSE;
  736.         glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glNormalPointerEXT");
  737.         if (NULL == glNormalPointerEXT)
  738.             return FALSE;
  739.         glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glTexCoordPointerEXT");
  740.         if (NULL == glTexCoordPointerEXT)
  741.             return FALSE;
  742.         glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexPointerEXT");
  743.         if (NULL == glVertexPointerEXT)
  744.             return FALSE;
  745.         glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glDrawArraysEXT");
  746.         if (NULL == glDrawArraysEXT)
  747.             return FALSE;
  748. #endif
  749. #ifdef GL_EXT_vertex_weighting
  750.     } else if (0 == strcmp(extension, "GL_EXT_vertex_weighting")) {
  751.         glVertexWeightfEXT = (PFNGLVERTEXWEIGHTFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightfEXT");
  752.         if (NULL == glVertexWeightfEXT)
  753.             return FALSE;
  754.         glVertexWeightfvEXT = (PFNGLVERTEXWEIGHTFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightfvEXT");
  755.         if (NULL == glVertexWeightfvEXT)
  756.             return FALSE;
  757.         glVertexWeightPointerEXT = (PFNGLVERTEXWEIGHTPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightPointerEXT");
  758.         if (NULL == glVertexWeightPointerEXT)
  759.             return FALSE;
  760. #endif
  761. #ifdef GL_NV_blend_square
  762.     } else if (0 == strcmp(extension, "GL_NV_blend_square")) {
  763. #endif
  764. #ifdef GL_NV_evaluators
  765.     } else if (0 == strcmp(extension, "GL_NV_evaluators")) {
  766.         glMapControlPointsNV = (PFNGLMAPCONTROLPOINTSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapControlPointsNV");
  767.         if (NULL == glMapControlPointsNV)
  768.             return FALSE;
  769.         glMapParameterivNV = (PFNGLMAPPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapParameterivNV");
  770.         if (NULL == glMapParameterivNV)
  771.             return FALSE;
  772.         glMapParameterfvNV = (PFNGLMAPPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapParameterfvNV");
  773.         if (NULL == glMapParameterfvNV)
  774.             return FALSE;
  775.         glGetMapControlPointsNV = (PFNGLGETMAPCONTROLPOINTSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapControlPointsNV");
  776.         if (NULL == glGetMapControlPointsNV)
  777.             return FALSE;
  778.         glGetMapParameterivNV = (PFNGLGETMAPPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapParameterivNV");
  779.         if (NULL == glGetMapParameterivNV)
  780.             return FALSE;
  781.         glGetMapParameterfvNV = (PFNGLGETMAPPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapParameterfvNV");
  782.         if (NULL == glGetMapParameterfvNV)
  783.             return FALSE;
  784.         glGetMapAttribParameterivNV = (PFNGLGETMAPATTRIBPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapAttribParameterivNV");
  785.         if (NULL == glGetMapAttribParameterivNV)
  786.             return FALSE;
  787.         glGetMapAttribParameterfvNV = (PFNGLGETMAPATTRIBPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapAttribParameterfvNV");
  788.         if (NULL == glGetMapAttribParameterfvNV)
  789.             return FALSE;
  790.         glEvalMapsNV = (PFNGLEVALMAPSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glEvalMapsNV");
  791.         if (NULL == glEvalMapsNV)
  792.             return FALSE;
  793. #endif
  794. #ifdef GL_NV_fence
  795.     } else if (0 == strcmp(extension, "GL_NV_fence")) {
  796.         glGenFencesNV = (PFNGLGENFENCESNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGenFencesNV");
  797.         if (NULL == glGenFencesNV)
  798.             return FALSE;
  799.         glDeleteFencesNV = (PFNGLDELETEFENCESNVPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteFencesNV");
  800.         if (NULL == glDeleteFencesNV)
  801.             return FALSE;
  802.         glSetFenceNV = (PFNGLSETFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glSetFenceNV");
  803.         if (NULL == glSetFenceNV)
  804.             return FALSE;
  805.         glTestFenceNV = (PFNGLTESTFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glTestFenceNV");
  806.         if (NULL == glTestFenceNV)
  807.             return FALSE;
  808.         glFinishFenceNV = (PFNGLFINISHFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glFinishFenceNV");
  809.         if (NULL == glFinishFenceNV)
  810.             return FALSE;
  811.         glIsFenceNV = (PFNGLISFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glIsFenceNV");
  812.         if (NULL == glIsFenceNV)
  813.             return FALSE;
  814.         glGetFenceivNV = (PFNGLGETFENCEIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFenceivNV");
  815.         if (NULL == glGetFenceivNV)
  816.             return FALSE;
  817. #endif
  818. #ifdef GL_NV_fog_distance
  819.     } else if (0 == strcmp(extension, "GL_NV_fog_distance")) {
  820. #endif
  821. #ifdef GL_NV_packed_depth_stencil
  822.     } else if (0 == strcmp(extension, "GL_NV_packed_depth_stencil")) {
  823. #endif
  824. #ifdef GL_NV_register_combiners
  825.     } else if (0 == strcmp(extension, "GL_NV_register_combiners")) {
  826.         glCombinerParameterfvNV = (PFNGLCOMBINERPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterfvNV");
  827.         if (NULL == glCombinerParameterfvNV)
  828.             return FALSE;
  829.         glCombinerParameterfNV = (PFNGLCOMBINERPARAMETERFNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterfNV");
  830.         if (NULL == glCombinerParameterfNV)
  831.             return FALSE;
  832.         glCombinerParameterivNV = (PFNGLCOMBINERPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterivNV");
  833.         if (NULL == glCombinerParameterivNV)
  834.             return FALSE;
  835.         glCombinerParameteriNV = (PFNGLCOMBINERPARAMETERINVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameteriNV");
  836.         if (NULL == glCombinerParameteriNV)
  837.             return FALSE;
  838.         glCombinerInputNV = (PFNGLCOMBINERINPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerInputNV");
  839.         if (NULL == glCombinerInputNV)
  840.             return FALSE;
  841.         glCombinerOutputNV = (PFNGLCOMBINEROUTPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerOutputNV");
  842.         if (NULL == glCombinerOutputNV)
  843.             return FALSE;
  844.         glFinalCombinerInputNV = (PFNGLFINALCOMBINERINPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glFinalCombinerInputNV");
  845.         if (NULL == glFinalCombinerInputNV)
  846.             return FALSE;
  847.         glGetCombinerInputParameterfvNV = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerInputParameterfvNV");
  848.         if (NULL == glGetCombinerInputParameterfvNV)
  849.             return FALSE;
  850.         glGetCombinerInputParameterivNV = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerInputParameterivNV");
  851.         if (NULL == glGetCombinerInputParameterivNV)
  852.             return FALSE;
  853.         glGetCombinerOutputParameterfvNV = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerOutputParameterfvNV");
  854.         if (NULL == glGetCombinerOutputParameterfvNV)
  855.             return FALSE;
  856.         glGetCombinerOutputParameterivNV = (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerOutputParameterivNV");
  857.         if (NULL == glGetCombinerOutputParameterivNV)
  858.             return FALSE;
  859.         glGetFinalCombinerInputParameterfvNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFinalCombinerInputParameterfvNV");
  860.         if (NULL == glGetFinalCombinerInputParameterfvNV)
  861.             return FALSE;
  862.         glGetFinalCombinerInputParameterivNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFinalCombinerInputParameterivNV");
  863.         if (NULL == glGetFinalCombinerInputParameterivNV)
  864.             return FALSE;
  865. #endif
  866. #ifdef GL_NV_register_combiners2
  867.     } else if (0 == strcmp(extension, "GL_NV_register_combiners2")) {
  868.         glCombinerStageParameterfvNV = (PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerStageParameterfvNV");
  869.         if (NULL == glCombinerStageParameterfvNV)
  870.             return FALSE;
  871.         glGetCombinerStageParameterfvNV = (PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerStageParameterfvNV");
  872.         if (NULL == glGetCombinerStageParameterfvNV)
  873.             return FALSE;
  874. #endif
  875. #ifdef GL_NV_texgen_reflection
  876.     } else if (0 == strcmp(extension, "GL_NV_texgen_reflection")) {
  877. #endif
  878. #ifdef GL_NV_texture_env_combine4
  879.     } else if (0 == strcmp(extension, "GL_NV_texture_env_combine4")) {
  880. #endif
  881. #ifdef GL_NV_texture_rectangle
  882.     } else if (0 == strcmp(extension, "GL_NV_texture_rectangle")) {
  883. #endif
  884. #ifdef GL_NV_texture_shader
  885.     } else if (0 == strcmp(extension, "GL_NV_texture_shader")) {
  886. #endif
  887. #ifdef GL_NV_vertex_array_range
  888.     } else if (0 == strcmp(extension, "GL_NV_vertex_array_range")) {
  889.         glFlushVertexArrayRangeNV = (PFNGLFLUSHVERTEXARRAYRANGENVPROC)GLH_EXT_GET_PROC_ADDRESS("glFlushVertexArrayRangeNV");
  890.         if (NULL == glFlushVertexArrayRangeNV)
  891.             return FALSE;
  892.         glVertexArrayRangeNV = (PFNGLVERTEXARRAYRANGENVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexArrayRangeNV");
  893.         if (NULL == glVertexArrayRangeNV)
  894.             return FALSE;
  895. # ifdef _WIN32
  896.         wglAllocateMemoryNV = (PFNWGLALLOCATEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglAllocateMemoryNV");
  897.         if (NULL == wglAllocateMemoryNV)
  898.             return FALSE;
  899. # endif
  900. # ifdef GLX_VERSION_1_3
  901.         glXAllocateMemoryNV = (PFNGLXALLOCATEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("glXAllocateMemoryNV");
  902.         if (NULL == glXAllocateMemoryNV)
  903.             return FALSE;
  904. # endif
  905. # ifdef _WIN32
  906.         wglFreeMemoryNV = (PFNWGLFREEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglFreeMemoryNV");
  907.         if (NULL == wglFreeMemoryNV)
  908.             return FALSE;
  909. # endif
  910. # ifdef GLX_VERSION_1_3
  911.         glXFreeMemoryNV = (PFNGLXFREEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("glXFreeMemoryNV");
  912.         if (NULL == glXFreeMemoryNV)
  913.             return FALSE;
  914. # endif
  915. #endif
  916. #ifdef GL_NV_vertex_program
  917.     } else if (0 == strcmp(extension, "GL_NV_vertex_program")) {
  918.         glAreProgramsResidentNV = (PFNGLAREPROGRAMSRESIDENTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glAreProgramsResidentNV");
  919.         if (NULL == glAreProgramsResidentNV)
  920.             return FALSE;
  921.         glBindProgramNV = (PFNGLBINDPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glBindProgramNV");
  922.         if (NULL == glBindProgramNV)
  923.             return FALSE;
  924.         glDeleteProgramsNV = (PFNGLDELETEPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteProgramsNV");
  925.         if (NULL == glDeleteProgramsNV)
  926.             return FALSE;
  927.         glExecuteProgramNV = (PFNGLEXECUTEPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glExecuteProgramNV");
  928.         if (NULL == glExecuteProgramNV)
  929.             return FALSE;
  930.         glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGenProgramsNV");
  931.         if (NULL == glGenProgramsNV)
  932.             return FALSE;
  933.         glGetProgramParameterdvNV = (PFNGLGETPROGRAMPARAMETERDVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramParameterdvNV");
  934.         if (NULL == glGetProgramParameterdvNV)
  935.             return FALSE;
  936.         glGetProgramParameterfvNV = (PFNGLGETPROGRAMPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramParameterfvNV");
  937.         if (NULL == glGetProgramParameterfvNV)
  938.             return FALSE;
  939.         glGetProgramivNV = (PFNGLGETPROGRAMIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramivNV");
  940.         if (NULL == glGetProgramivNV)
  941.             return FALSE;
  942.         glGetProgramStringNV = (PFNGLGETPROGRAMSTRINGNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramStringNV");
  943.         if (NULL == glGetProgramStringNV)
  944.             return FALSE;
  945.         glGetTrackMatrixivNV = (PFNGLGETTRACKMATRIXIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetTrackMatrixivNV");
  946.         if (NULL == glGetTrackMatrixivNV)
  947.             return FALSE;
  948.         glGetVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribdvNV");
  949.         if (NULL == glGetVertexAttribdvNV)
  950.             return FALSE;
  951.         glGetVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribfvNV");
  952.         if (NULL == glGetVertexAttribfvNV)
  953.             return FALSE;
  954.         glGetVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribivNV");
  955.         if (NULL == glGetVertexAttribivNV)
  956.             return FALSE;
  957.         glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribPointervNV");
  958. // temporary hack to deal with driver bug -- Cass
  959.         if (NULL == glGetVertexAttribPointervNV)
  960. glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribPointerNV");
  961.         if (NULL == glGetVertexAttribPointervNV)
  962.             return FALSE;
  963.         glIsProgramNV = (PFNGLISPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glIsProgramNV");
  964.         if (NULL == glIsProgramNV)
  965.             return FALSE;
  966.         glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadProgramNV");
  967.         if (NULL == glLoadProgramNV)
  968.             return FALSE;
  969.         glProgramParameter4dNV = (PFNGLPROGRAMPARAMETER4DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4dNV");
  970.         if (NULL == glProgramParameter4dNV)
  971.             return FALSE;
  972.         glProgramParameter4dvNV = (PFNGLPROGRAMPARAMETER4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4dvNV");
  973.         if (NULL == glProgramParameter4dvNV)
  974.             return FALSE;
  975.         glProgramParameter4fNV = (PFNGLPROGRAMPARAMETER4FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4fNV");
  976.         if (NULL == glProgramParameter4fNV)
  977.             return FALSE;
  978.         glProgramParameter4fvNV = (PFNGLPROGRAMPARAMETER4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4fvNV");
  979.         if (NULL == glProgramParameter4fvNV)
  980.             return FALSE;
  981.         glProgramParameters4dvNV = (PFNGLPROGRAMPARAMETERS4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameters4dvNV");
  982.         if (NULL == glProgramParameters4dvNV)
  983.             return FALSE;
  984.         glProgramParameters4fvNV = (PFNGLPROGRAMPARAMETERS4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameters4fvNV");
  985.         if (NULL == glProgramParameters4fvNV)
  986.             return FALSE;
  987.         glRequestResidentProgramsNV = (PFNGLREQUESTRESIDENTPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glRequestResidentProgramsNV");
  988.         if (NULL == glRequestResidentProgramsNV)
  989.             return FALSE;
  990.         glTrackMatrixNV = (PFNGLTRACKMATRIXNVPROC)GLH_EXT_GET_PROC_ADDRESS("glTrackMatrixNV");
  991.         if (NULL == glTrackMatrixNV)
  992.             return FALSE;
  993.         glVertexAttribPointerNV = (PFNGLVERTEXATTRIBPOINTERNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribPointerNV");
  994.         if (NULL == glVertexAttribPointerNV)
  995.             return FALSE;
  996.         glVertexAttrib1dNV = (PFNGLVERTEXATTRIB1DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1dNV");
  997.         if (NULL == glVertexAttrib1dNV)
  998.             return FALSE;
  999.         glVertexAttrib1dvNV = (PFNGLVERTEXATTRIB1DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1dvNV");
  1000.         if (NULL == glVertexAttrib1dvNV)
  1001.             return FALSE;
  1002.         glVertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1fNV");
  1003.         if (NULL == glVertexAttrib1fNV)
  1004.             return FALSE;
  1005.         glVertexAttrib1fvNV = (PFNGLVERTEXATTRIB1FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1fvNV");
  1006.         if (NULL == glVertexAttrib1fvNV)
  1007.             return FALSE;
  1008.         glVertexAttrib1sNV = (PFNGLVERTEXATTRIB1SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1sNV");
  1009.         if (NULL == glVertexAttrib1sNV)
  1010.             return FALSE;
  1011.         glVertexAttrib1svNV = (PFNGLVERTEXATTRIB1SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1svNV");
  1012.         if (NULL == glVertexAttrib1svNV)
  1013.             return FALSE;
  1014.         glVertexAttrib2dNV = (PFNGLVERTEXATTRIB2DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2dNV");
  1015.         if (NULL == glVertexAttrib2dNV)
  1016.             return FALSE;
  1017.         glVertexAttrib2dvNV = (PFNGLVERTEXATTRIB2DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2dvNV");
  1018.         if (NULL == glVertexAttrib2dvNV)
  1019.             return FALSE;
  1020.         glVertexAttrib2fNV = (PFNGLVERTEXATTRIB2FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2fNV");
  1021.         if (NULL == glVertexAttrib2fNV)
  1022.             return FALSE;
  1023.         glVertexAttrib2fvNV = (PFNGLVERTEXATTRIB2FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2fvNV");
  1024.         if (NULL == glVertexAttrib2fvNV)
  1025.             return FALSE;
  1026.         glVertexAttrib2sNV = (PFNGLVERTEXATTRIB2SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2sNV");
  1027.         if (NULL == glVertexAttrib2sNV)
  1028.             return FALSE;
  1029.         glVertexAttrib2svNV = (PFNGLVERTEXATTRIB2SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2svNV");
  1030.         if (NULL == glVertexAttrib2svNV)
  1031.             return FALSE;
  1032.         glVertexAttrib3dNV = (PFNGLVERTEXATTRIB3DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3dNV");
  1033.         if (NULL == glVertexAttrib3dNV)
  1034.             return FALSE;
  1035.         glVertexAttrib3dvNV = (PFNGLVERTEXATTRIB3DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3dvNV");
  1036.         if (NULL == glVertexAttrib3dvNV)
  1037.             return FALSE;
  1038.         glVertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3fNV");
  1039.         if (NULL == glVertexAttrib3fNV)
  1040.             return FALSE;
  1041.         glVertexAttrib3fvNV = (PFNGLVERTEXATTRIB3FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3fvNV");
  1042.         if (NULL == glVertexAttrib3fvNV)
  1043.             return FALSE;
  1044.         glVertexAttrib3sNV = (PFNGLVERTEXATTRIB3SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3sNV");
  1045.         if (NULL == glVertexAttrib3sNV)
  1046.             return FALSE;
  1047.         glVertexAttrib3svNV = (PFNGLVERTEXATTRIB3SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3svNV");
  1048.         if (NULL == glVertexAttrib3svNV)
  1049.             return FALSE;
  1050.         glVertexAttrib4dNV = (PFNGLVERTEXATTRIB4DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4dNV");
  1051.         if (NULL == glVertexAttrib4dNV)
  1052.             return FALSE;
  1053.         glVertexAttrib4dvNV = (PFNGLVERTEXATTRIB4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4dvNV");
  1054.         if (NULL == glVertexAttrib4dvNV)
  1055.             return FALSE;
  1056.         glVertexAttrib4fNV = (PFNGLVERTEXATTRIB4FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4fNV");
  1057.         if (NULL == glVertexAttrib4fNV)
  1058.             return FALSE;
  1059.         glVertexAttrib4fvNV = (PFNGLVERTEXATTRIB4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4fvNV");
  1060.         if (NULL == glVertexAttrib4fvNV)
  1061.             return FALSE;
  1062.         glVertexAttrib4sNV = (PFNGLVERTEXATTRIB4SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4sNV");
  1063.         if (NULL == glVertexAttrib4sNV)
  1064.             return FALSE;
  1065.         glVertexAttrib4svNV = (PFNGLVERTEXATTRIB4SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4svNV");
  1066.         if (NULL == glVertexAttrib4svNV)
  1067.             return FALSE;
  1068.         glVertexAttrib4ubvNV = (PFNGLVERTEXATTRIB4UBVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4ubvNV");
  1069.         if (NULL == glVertexAttrib4ubvNV)
  1070.             return FALSE;
  1071.         glVertexAttribs1dvNV = (PFNGLVERTEXATTRIBS1DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1dvNV");
  1072.         if (NULL == glVertexAttribs1dvNV)
  1073.             return FALSE;
  1074.         glVertexAttribs1fvNV = (PFNGLVERTEXATTRIBS1FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1fvNV");
  1075.         if (NULL == glVertexAttribs1fvNV)
  1076.             return FALSE;
  1077.         glVertexAttribs1svNV = (PFNGLVERTEXATTRIBS1SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1svNV");
  1078.         if (NULL == glVertexAttribs1svNV)
  1079.             return FALSE;
  1080.         glVertexAttribs2dvNV = (PFNGLVERTEXATTRIBS2DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2dvNV");
  1081.         if (NULL == glVertexAttribs2dvNV)
  1082.             return FALSE;
  1083.         glVertexAttribs2fvNV = (PFNGLVERTEXATTRIBS2FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2fvNV");
  1084.         if (NULL == glVertexAttribs2fvNV)
  1085.             return FALSE;
  1086.         glVertexAttribs2svNV = (PFNGLVERTEXATTRIBS2SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2svNV");
  1087.         if (NULL == glVertexAttribs2svNV)
  1088.             return FALSE;
  1089.         glVertexAttribs3dvNV = (PFNGLVERTEXATTRIBS3DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3dvNV");
  1090.         if (NULL == glVertexAttribs3dvNV)
  1091.             return FALSE;
  1092.         glVertexAttribs3fvNV = (PFNGLVERTEXATTRIBS3FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3fvNV");
  1093.         if (NULL == glVertexAttribs3fvNV)
  1094.             return FALSE;
  1095.         glVertexAttribs3svNV = (PFNGLVERTEXATTRIBS3SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3svNV");
  1096.         if (NULL == glVertexAttribs3svNV)
  1097.             return FALSE;
  1098.         glVertexAttribs4dvNV = (PFNGLVERTEXATTRIBS4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4dvNV");
  1099.         if (NULL == glVertexAttribs4dvNV)
  1100.             return FALSE;
  1101.         glVertexAttribs4fvNV = (PFNGLVERTEXATTRIBS4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4fvNV");
  1102.         if (NULL == glVertexAttribs4fvNV)
  1103.             return FALSE;
  1104.         glVertexAttribs4svNV = (PFNGLVERTEXATTRIBS4SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4svNV");
  1105.         if (NULL == glVertexAttribs4svNV)
  1106.             return FALSE;
  1107.         glVertexAttribs4ubvNV = (PFNGLVERTEXATTRIBS4UBVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4ubvNV");
  1108.         if (NULL == glVertexAttribs4ubvNV)
  1109.             return FALSE;
  1110. #endif
  1111. #ifdef GL_SGIS_texture_lod
  1112.     } else if (0 == strcmp(extension, "GL_SGIS_texture_lod")) {
  1113. #endif
  1114. #ifdef GL_SGIX_depth_texture
  1115.     } else if (0 == strcmp(extension, "GL_SGIX_depth_texture")) {
  1116. #endif
  1117. #ifdef GL_SGIX_shadow
  1118.     } else if (0 == strcmp(extension, "GL_SGIX_shadow")) {
  1119. #endif
  1120. #ifdef GL_VERSION_1_2
  1121.     } else if (0 == strcmp(extension, "GL_VERSION_1_2")) {
  1122.         _glBlendColor = (PFNGLBLENDCOLORPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendColor");
  1123.         if (NULL == _glBlendColor)
  1124.             return FALSE;
  1125.         _glBlendEquation = (PFNGLBLENDEQUATIONPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendEquation");
  1126.         if (NULL == _glBlendEquation)
  1127.             return FALSE;
  1128.         _glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)GLH_EXT_GET_PROC_ADDRESS("glDrawRangeElements");
  1129.         if (NULL == _glDrawRangeElements)
  1130.             return FALSE;
  1131.         _glColorTable = (PFNGLCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTable");
  1132.         if (NULL == _glColorTable)
  1133.             return FALSE;
  1134.         _glColorTableParameterfv = (PFNGLCOLORTABLEPARAMETERFVPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTableParameterfv");
  1135.         if (NULL == _glColorTableParameterfv)
  1136.             return FALSE;
  1137.         _glColorTableParameteriv = (PFNGLCOLORTABLEPARAMETERIVPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTableParameteriv");
  1138.         if (NULL == _glColorTableParameteriv)
  1139.             return FALSE;
  1140.         _glCopyColorTable = (PFNGLCOPYCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glCopyColorTable");
  1141.         if (NULL == _glCopyColorTable)
  1142.             return FALSE;
  1143.         _glGetColorTable = (PFNGLGETCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTable");
  1144.         if (NULL == _glGetColorTable)
  1145.             return FALSE;
  1146.         _glGetColorTableParameterfv = (PFNGLGETCOLORTABLEPARAMETERFVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterfv");
  1147.         if (NULL == _glGetColorTableParameterfv)
  1148.             return FALSE;
  1149.         _glGetColorTableParameteriv = (PFNGLGETCOLORTABLEPARAMETERIVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameteriv");
  1150.         if (NULL == _glGetColorTableParameteriv)
  1151.             return FALSE;
  1152.         _glTexImage3D = (PFNGLTEXIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glTexImage3D");
  1153.         if (NULL == _glTexImage3D)
  1154.             return FALSE;
  1155.         _glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glTexSubImage3D");
  1156.         if (NULL == _glTexSubImage3D)
  1157.             return FALSE;
  1158.         _glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glCopyTexSubImage3D");
  1159.         if (NULL == _glCopyTexSubImage3D)
  1160.             return FALSE;
  1161. #endif
  1162. #ifdef GL_WIN_swap_hint
  1163.     } else if (0 == strcmp(extension, "GL_WIN_swap_hint")) {
  1164.         glAddSwapHintRectWIN = (PFNGLADDSWAPHINTRECTWINPROC)GLH_EXT_GET_PROC_ADDRESS("glAddSwapHintRectWIN");
  1165.         if (NULL == glAddSwapHintRectWIN)
  1166.             return FALSE;
  1167. #endif
  1168. #ifdef WGL_ARB_make_current_read
  1169.     } else if (0 == strcmp(extension, "WGL_ARB_make_current_read")) {
  1170. # ifdef _WIN32
  1171.         wglMakeContextCurrentARB = (PFNWGLMAKECONTEXTCURRENTARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglMakeContextCurrentARB");
  1172.         if (NULL == wglMakeContextCurrentARB)
  1173.             return FALSE;
  1174. # endif
  1175. # ifdef _WIN32
  1176.         wglGetCurrentReadDCARB = (PFNWGLGETCURRENTREADDCARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetCurrentReadDCARB");
  1177.         if (NULL == wglMakeContextCurrentARB)
  1178.             return FALSE;
  1179. # endif
  1180. #endif
  1181. #ifdef WGL_ARB_pbuffer
  1182.     } else if (0 == strcmp(extension, "WGL_ARB_pbuffer")) {
  1183. # ifdef _WIN32
  1184.         wglCreatePbufferARB = (PFNWGLCREATEPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglCreatePbufferARB");
  1185.         if (NULL == wglCreatePbufferARB)
  1186.             return FALSE;
  1187. # endif
  1188. # ifdef _WIN32
  1189.         wglGetPbufferDCARB = (PFNWGLGETPBUFFERDCARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPbufferDCARB");
  1190.         if (NULL == wglGetPbufferDCARB)
  1191.             return FALSE;
  1192. # endif
  1193. # ifdef _WIN32
  1194.         wglReleasePbufferDCARB = (PFNWGLRELEASEPBUFFERDCARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglReleasePbufferDCARB");
  1195.         if (NULL == wglReleasePbufferDCARB)
  1196.             return FALSE;
  1197. # endif
  1198. # ifdef _WIN32
  1199.         wglDestroyPbufferARB = (PFNWGLDESTROYPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglDestroyPbufferARB");
  1200.         if (NULL == wglDestroyPbufferARB)
  1201.             return FALSE;
  1202. # endif
  1203. # ifdef _WIN32
  1204.         wglQueryPbufferARB = (PFNWGLQUERYPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglQueryPbufferARB");
  1205.         if (NULL == wglQueryPbufferARB)
  1206.             return FALSE;
  1207. # endif
  1208. #endif
  1209. #ifdef WGL_ARB_pixel_format
  1210.     } else if (0 == strcmp(extension, "WGL_ARB_pixel_format")) {
  1211. # ifdef _WIN32
  1212.         wglGetPixelFormatAttribivARB = (PFNWGLGETPIXELFORMATATTRIBIVARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPixelFormatAttribivARB");
  1213.         if (NULL == wglGetPixelFormatAttribivARB)
  1214.             return FALSE;
  1215. # endif
  1216. # ifdef _WIN32
  1217.         wglGetPixelFormatAttribfvARB = (PFNWGLGETPIXELFORMATATTRIBFVARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPixelFormatAttribfvARB");
  1218.         if (NULL == wglGetPixelFormatAttribfvARB)
  1219.             return FALSE;
  1220. # endif
  1221. # ifdef _WIN32
  1222.         wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglChoosePixelFormatARB");
  1223.         if (NULL == wglChoosePixelFormatARB)
  1224.             return FALSE;
  1225. # endif
  1226. #endif
  1227.     } else {
  1228.         return FALSE;
  1229.     }
  1230.     return TRUE;
  1231. }
  1232. #endif
  1233. #undef GLH_EXT_SINGLE_FILE
  1234. #endif /* GLH_GENEXT_H */