|
From: Elias N. <eli...@us...> - 2003-09-22 08:32:26
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/common In directory sc8-pr-cvs1:/tmp/cvs-serv29330/common Modified Files: extgl.c Log Message: LWJGL now ignores OpenGL extensions with missing symbols Index: extgl.c CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/common/extgl.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/extgl.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- extgl.c 21 Sep 2003 07:43:02 -0000 1.21 +++ extgl.c 22 Sep 2003 08:31:51 -0000 1.22 @@ -1363,6 +1363,12 @@ CFBundleRef gBundleRefOpenGL = NULL; #endif +#define EXTGL_SANITY_CHECK(x) if (extgl_error != 0) { \ + extgl_Extensions.x = 0; \ + printf("NOTICE: %s disabled because of missing driver symbols\n", #x); \ + extgl_error = 0; \ + } + #ifdef _AGL // ------------------------- OSStatus aglInitEntryPoints (void) @@ -1743,6 +1749,7 @@ glGetProgramivARB = (glGetProgramivARBPROC) extgl_GetProcAddress("glGetProgramivARB"); glGetProgramStringARB = (glGetProgramStringARBPROC) extgl_GetProcAddress("glGetProgramStringARB"); glIsProgramARB = (glIsProgramARBPROC) extgl_GetProcAddress("glIsProgramARB"); + EXTGL_SANITY_CHECK(ARB_fragment_program) #endif } @@ -1753,6 +1760,7 @@ return; glPrimitiveRestartNV = (glPrimitiveRestartNVPROC) extgl_GetProcAddress("glPrimitiveRestartNV"); glPrimitiveRestartIndexNV = (glPrimitiveRestartIndexNVPROC) extgl_GetProcAddress("glPrimitiveRestartIndexNV"); + EXTGL_SANITY_CHECK(NV_primitive_restart) #endif /* GL_NV_primitive_restart */ } @@ -1775,6 +1783,7 @@ glGetProgramLocalParameterdvARB = (glGetProgramLocalParameterdvARBPROC) extgl_GetProcAddress("glGetProgramLocalParameterdvARB"); glGetProgramLocalParameterfvARB = (glGetProgramLocalParameterfvARBPROC) extgl_GetProcAddress("glGetProgramLocalParameterfvARB"); #endif /* GL_ARB_vertex_program */ + EXTGL_SANITY_CHECK(NV_fragment_program) #endif /* GL_NV_fragment_program */ } @@ -1788,6 +1797,7 @@ glDrawRangeElementArrayNV = (glDrawRangeElementArrayNVPROC) extgl_GetProcAddress("glDrawRangeElementArrayNV"); glMultiDrawElementArrayNV = (glMultiDrawElementArrayNVPROC) extgl_GetProcAddress("glMultiDrawElementArrayNV"); glMultiDrawRangeElementArrayNV = (glMultiDrawRangeElementArrayNVPROC) extgl_GetProcAddress("glMultiDrawRangeElementArrayNV"); + EXTGL_SANITY_CHECK(NV_element_array) #endif } @@ -1798,6 +1808,7 @@ if (!extgl_Extensions.EXT_blend_func_separate) return; glBlendFuncSeparateEXT = (glBlendFuncSeparateEXTPROC) extgl_GetProcAddress("glBlendFuncSeparateEXT"); + EXTGL_SANITY_CHECK(EXT_blend_func_separate) #endif } @@ -1808,6 +1819,7 @@ return; glCullParameterfvEXT = (glCullParameterfvEXTPROC) extgl_GetProcAddress("glCullParameterfvEXT"); glCullParameterdvEXT = (glCullParameterdvEXTPROC) extgl_GetProcAddress("glCullParameterdvEXT"); + EXTGL_SANITY_CHECK(EXT_cull_vertex) #endif } @@ -1827,6 +1839,7 @@ glUnmapBufferARB = (glUnmapBufferARBPROC) extgl_GetProcAddress("glUnmapBufferARB"); glGetBufferParameterivARB = (glGetBufferParameterivARBPROC) extgl_GetProcAddress("glGetBufferParameterivARB"); glGetBufferPointervARB = (glGetBufferPointervARBPROC) extgl_GetProcAddress("glGetBufferPointervARB"); + EXTGL_SANITY_CHECK(ARB_vertex_buffer_object) #endif } @@ -1897,6 +1910,7 @@ glGetVertexAttribivARB = (glGetVertexAttribivARBPROC) extgl_GetProcAddress("glGetVertexAttribivARB"); glGetVertexAttribPointervARB = (glGetVertexAttribPointervARBPROC) extgl_GetProcAddress("glGetVertexAttribPointervARB"); glIsProgramARB = (glIsProgramARBPROC) extgl_GetProcAddress("glIsProgramARB"); + EXTGL_SANITY_CHECK(ARB_vertex_program) #endif } @@ -1906,6 +1920,7 @@ if (!extgl_Extensions.EXT_stencil_two_side) return; glActiveStencilFaceEXT = (glActiveStencilFaceEXTPROC) extgl_GetProcAddress("glActiveStencilFaceEXT"); + EXTGL_SANITY_CHECK(EXT_stencil_two_side) #endif } @@ -1930,6 +1945,7 @@ glWindowPos3fvARB = (glWindowPos3fvARBPROC) extgl_GetProcAddress("glWindowPos3fvARB"); glWindowPos3ivARB = (glWindowPos3ivARBPROC) extgl_GetProcAddress("glWindowPos3ivARB"); glWindowPos3svARB = (glWindowPos3svARBPROC) extgl_GetProcAddress("glWindowPos3svARB"); + EXTGL_SANITY_CHECK(ARB_window_pos) #endif } @@ -1945,6 +1961,7 @@ glCompressedTexSubImage2DARB = (glCompressedTexSubImage2DARBPROC) extgl_GetProcAddress("glCompressedTexSubImage2DARB"); glCompressedTexSubImage1DARB = (glCompressedTexSubImage1DARBPROC) extgl_GetProcAddress("glCompressedTexSubImage1DARB"); glGetCompressedTexImageARB = (glGetCompressedTexImageARBPROC) extgl_GetProcAddress("glGetCompressedTexImageARB"); + EXTGL_SANITY_CHECK(ARB_texture_compression) #endif } @@ -1955,6 +1972,7 @@ return; glPointParameteriNV = (glPointParameteriNVPROC) extgl_GetProcAddress("glPointParameteriNV"); glPointParameterivNV = (glPointParameterivNVPROC) extgl_GetProcAddress("glPointParameterivNV"); + EXTGL_SANITY_CHECK(NV_point_sprite) #endif } @@ -1970,6 +1988,7 @@ glEndOcclusionQueryNV = (glEndOcclusionQueryNVPROC) extgl_GetProcAddress("glEndOcclusionQueryNV"); glGetOcclusionQueryivNV = (glGetOcclusionQueryivNVPROC) extgl_GetProcAddress("glGetOcclusionQueryivNV"); glGetOcclusionQueryuivNV = (glGetOcclusionQueryuivNVPROC) extgl_GetProcAddress("glGetOcclusionQueryuivNV"); + EXTGL_SANITY_CHECK(NV_occlusion_query) #endif } @@ -1990,6 +2009,7 @@ glVariantArrayObjectATI = (glVariantArrayObjectATIPROC) extgl_GetProcAddress("glVariantArrayObjectATI"); glGetVariantArrayObjectfvATI = (glGetVariantArrayObjectfvATIPROC) extgl_GetProcAddress("glGetVariantArrayObjectfvATI"); glGetVariantArrayObjectivATI = (glGetVariantArrayObjectivATIPROC) extgl_GetProcAddress("glGetVariantArrayObjectivATI"); + EXTGL_SANITY_CHECK(ATI_vertex_array_object) #endif } @@ -2035,6 +2055,7 @@ glNormalStream3fvATI = (glNormalStream3fvATIPROC) extgl_GetProcAddress("glNormalStream3fvATI"); glNormalStream3dATI = (glNormalStream3dATIPROC) extgl_GetProcAddress("glNormalStream3dATI"); glNormalStream3dvATI = (glNormalStream3dvATIPROC) extgl_GetProcAddress("glNormalStream3dvATI"); + EXTGL_SANITY_CHECK(ATI_vertex_streams) #endif } @@ -2046,6 +2067,7 @@ glElementPointerATI = (glElementPointerATIPROC) extgl_GetProcAddress("glElementPointerATI"); glDrawElementArrayATI = (glDrawElementArrayATIPROC) extgl_GetProcAddress("glDrawElementArrayATI"); glDrawRangeElementArrayATI = (glDrawRangeElementArrayATIPROC) extgl_GetProcAddress("glDrawRangeElementArrayATI"); + EXTGL_SANITY_CHECK(ATI_element_array) #endif } @@ -2068,6 +2090,7 @@ glAlphaFragmentOp2ATI = (glAlphaFragmentOp2ATIPROC) extgl_GetProcAddress("glAlphaFragmentOp2ATI"); glAlphaFragmentOp3ATI = (glAlphaFragmentOp3ATIPROC) extgl_GetProcAddress("glAlphaFragmentOp3ATI"); glSetFragmentShaderConstantATI = (glSetFragmentShaderConstantATIPROC) extgl_GetProcAddress("glSetFragmentShaderConstantATI"); + EXTGL_SANITY_CHECK(ATI_fragment_shader) #endif } @@ -2081,6 +2104,7 @@ glTexBumpParameterfvATI = (glTexBumpParameterfvATIPROC) extgl_GetProcAddress("glTexBumpParameterfvATI"); glGetTexBumpParameterivATI = (glGetTexBumpParameterivATIPROC) extgl_GetProcAddress("glGetTexBumpParameterivATI"); glGetTexBumpParameterfvATI = (glGetTexBumpParameterfvATIPROC) extgl_GetProcAddress("glGetTexBumpParameterfvATI"); + EXTGL_SANITY_CHECK(ATI_envmap_bumpmap) #endif } @@ -2131,6 +2155,7 @@ glGetLocalConstantBooleanvEXT = (glGetLocalConstantBooleanvEXTPROC) extgl_GetProcAddress("glGetLocalConstantBooleanvEXT"); glGetLocalConstantIntegervEXT = (glGetLocalConstantIntegervEXTPROC) extgl_GetProcAddress("glGetLocalConstantIntegervEXT"); glGetLocalConstantFloatvEXT = (glGetLocalConstantFloatvEXTPROC) extgl_GetProcAddress("glGetLocalConstantFloatvEXT"); + EXTGL_SANITY_CHECK(EXT_vertex_shader) #endif } @@ -2144,6 +2169,7 @@ glMatrixIndexusvARB = (glMatrixIndexusvARBPROC) extgl_GetProcAddress("glMatrixIndexusvARB"); glMatrixIndexuivARB = (glMatrixIndexuivARBPROC) extgl_GetProcAddress("glMatrixIndexuivARB"); glMatrixIndexPointerARB = (glMatrixIndexPointerARBPROC) extgl_GetProcAddress("glMatrixIndexPointerARB"); + EXTGL_SANITY_CHECK(ARB_matrix_palette) #endif } @@ -2154,6 +2180,7 @@ return; glMultiDrawArraysEXT = (glMultiDrawArraysEXTPROC) extgl_GetProcAddress("glMultiDrawArraysEXT"); glMultiDrawElementsEXT = (glMultiDrawElementsEXTPROC) extgl_GetProcAddress("glMultiDrawElementsEXT"); + EXTGL_SANITY_CHECK(EXT_multi_draw_arrays) #endif } @@ -2172,6 +2199,7 @@ glWeightuivARB = (glWeightuivARBPROC) extgl_GetProcAddress("glWeightuivARB"); glWeightPointerARB = (glWeightPointerARBPROC) extgl_GetProcAddress("glWeightPointerARB"); glVertexBlendARB = (glVertexBlendARBPROC) extgl_GetProcAddress("glVertexBlendARB"); + EXTGL_SANITY_CHECK(ARB_vertex_blend) #endif } @@ -2182,6 +2210,7 @@ return; glPointParameterfARB = (glPointParameterfARBPROC) extgl_GetProcAddress("glPointParameterfARB"); glPointParameterfvARB = (glPointParameterfvARBPROC) extgl_GetProcAddress("glPointParameterfvARB"); + EXTGL_SANITY_CHECK(ARB_point_parameters) #endif } @@ -2192,6 +2221,7 @@ return; glPNTrianglesiATI = (glPNTrianglesiATIPROC) extgl_GetProcAddress("glPNTrianglesiATI"); glPNTrianglesfATI = (glPNTrianglesfATIPROC) extgl_GetProcAddress("glPNTrianglesfATI"); + EXTGL_SANITY_CHECK(ATI_pn_triangles) #endif } @@ -2202,6 +2232,7 @@ return; glStencilOpSeparateATI = (glStencilOpSeparateATIPROC)extgl_GetProcAddress("glStencilOpSeparateATI"); glStencilFuncSeparateATI = (glStencilFuncSeparateATIPROC)extgl_GetProcAddress("glStencilFuncSeparateATI"); + EXTGL_SANITY_CHECK(ATI_separate_stencil) #endif } @@ -2219,6 +2250,7 @@ glGetMapAttribParameterivNV = (glGetMapAttribParameterivNVPROC) extgl_GetProcAddress("glGetMapAttribParameterivNV"); glGetMapAttribParameterfvNV = (glGetMapAttribParameterfvNVPROC) extgl_GetProcAddress("glGetMapAttribParameterfvNV"); glEvalMapsNV = (glEvalMapsNVPROC) extgl_GetProcAddress("glEvalMapsNV"); + EXTGL_SANITY_CHECK(NV_evaluators) #endif } @@ -2229,6 +2261,7 @@ return; glCombinerStageParameterfvNV = (glCombinerStageParameterfvNVPROC) extgl_GetProcAddress("glCombinerStageParameterfvNV"); glGetCombinerStageParameterfvNV = (glGetCombinerStageParameterfvNVPROC) extgl_GetProcAddress("glGetCombinerStageParameterfvNV"); + EXTGL_SANITY_CHECK(NV_register_combiners2) #endif } @@ -2244,6 +2277,7 @@ glFinishFenceNV = (glFinishFenceNVPROC) extgl_GetProcAddress("glFinishFenceNV"); glIsFenceNV = (glIsFenceNVPROC) extgl_GetProcAddress("glIsFenceNV"); glGetFenceivNV = (glGetFenceivNVPROC) extgl_GetProcAddress("glGetFenceivNV"); + EXTGL_SANITY_CHECK(NV_fence) #endif } @@ -2316,6 +2350,7 @@ glVertexAttribs4fvNV = (glVertexAttribs4fvNVPROC) extgl_GetProcAddress("glVertexAttribs4fvNV"); glVertexAttribs4dvNV = (glVertexAttribs4dvNVPROC) extgl_GetProcAddress("glVertexAttribs4dvNV"); glVertexAttribs4ubvNV = (glVertexAttribs4ubvNVPROC) extgl_GetProcAddress("glVertexAttribs4ubvNV"); + EXTGL_SANITY_CHECK(NV_vertex_program) #endif } @@ -2327,6 +2362,7 @@ glVertexWeightfEXT = (glVertexWeightfEXTPROC) extgl_GetProcAddress("glVertexWeightfEXT"); glVertexWeightfvEXT = (glVertexWeightfvEXTPROC) extgl_GetProcAddress("glVertexWeightfvEXT"); glVertexWeightPointerEXT = (glVertexWeightPointerEXTPROC) extgl_GetProcAddress("glVertexWeightPointerEXT"); + EXTGL_SANITY_CHECK(EXT_vertex_weighting) #endif } @@ -2336,6 +2372,7 @@ if (!extgl_Extensions.ARB_multisample) return; glSampleCoverageARB = (glSampleCoverageARBPROC) extgl_GetProcAddress("glSampleCoverageARB"); + EXTGL_SANITY_CHECK(ARB_multisample) #endif } @@ -2357,6 +2394,7 @@ glGetCombinerOutputParameterivNV = (glGetCombinerOutputParameterivNVPROC) extgl_GetProcAddress("glGetCombinerOutputParameterivNV"); glGetFinalCombinerInputParameterfvNV = (glGetFinalCombinerInputParameterfvNVPROC) extgl_GetProcAddress("glGetFinalCombinerInputParameterfvNV"); glGetFinalCombinerInputParameterivNV = (glGetFinalCombinerInputParameterivNVPROC) extgl_GetProcAddress("glGetFinalCombinerInputParameterivNV"); + EXTGL_SANITY_CHECK(NV_register_combiners) #endif } @@ -2367,6 +2405,7 @@ return; glPointParameterfEXT = (glPointParameterfEXTPROC) extgl_GetProcAddress("glPointParameterfEXT"); glPointParameterfvEXT = (glPointParameterfvEXTPROC) extgl_GetProcAddress("glPointParameterfvEXT"); + EXTGL_SANITY_CHECK(EXT_point_parameters) #endif } @@ -2385,6 +2424,7 @@ glXAllocateMemoryNV = (glXAllocateMemoryNVPROC) extgl_GetProcAddress("glXAllocateMemoryNV"); glXFreeMemoryNV = (glXFreeMemoryNVPROC) extgl_GetProcAddress("glXFreeMemoryNV"); #endif /* X11 */ + EXTGL_SANITY_CHECK(NV_vertex_array_range) #endif } @@ -2398,6 +2438,7 @@ glFogCoorddEXT = (glFogCoorddEXTPROC) extgl_GetProcAddress("glFogCoorddEXT"); glFogCoorddvEXT = (glFogCoorddvEXTPROC) extgl_GetProcAddress("glFogCoorddvEXT"); glFogCoordPointerEXT = (glFogCoordPointerEXTPROC) extgl_GetProcAddress("glFogCoordPointerEXT"); + EXTGL_SANITY_CHECK(EXT_fog_coord) #endif } @@ -2423,6 +2464,7 @@ glSecondaryColor3usEXT = (glSecondaryColor3usEXTPROC) extgl_GetProcAddress("glSecondaryColor3usEXT"); glSecondaryColor3usvEXT = (glSecondaryColor3usvEXTPROC) extgl_GetProcAddress("glSecondaryColor3usvEXT"); glSecondaryColorPointerEXT = (glSecondaryColorPointerEXTPROC) extgl_GetProcAddress("glSecondaryColorPointerEXT"); + EXTGL_SANITY_CHECK(EXT_secondary_color) #endif } @@ -2433,6 +2475,7 @@ return; glLockArraysEXT = (glLockArraysEXTPROC) extgl_GetProcAddress("glLockArraysEXT"); glUnlockArraysEXT = (glUnlockArraysEXTPROC) extgl_GetProcAddress("glUnlockArraysEXT"); + EXTGL_SANITY_CHECK(EXT_compiled_vertex_array) #endif } @@ -2445,6 +2488,7 @@ glLoadTransposeMatrixdARB = (glLoadTransposeMatrixdARBPROC) extgl_GetProcAddress("glLoadTransposeMatrixdARB"); glMultTransposeMatrixfARB = (glMultTransposeMatrixfARBPROC) extgl_GetProcAddress("glMultTransposeMatrixfARB"); glMultTransposeMatrixdARB = (glMultTransposeMatrixdARBPROC) extgl_GetProcAddress("glMultTransposeMatrixdARB"); + EXTGL_SANITY_CHECK(ARB_transpose_matrix) #endif } @@ -2454,6 +2498,7 @@ if (!extgl_Extensions.EXT_draw_range_elements) return; glDrawRangeElementsEXT = (glDrawRangeElementsEXTPROC) extgl_GetProcAddress("glDrawRangeElementsEXT"); + EXTGL_SANITY_CHECK(EXT_draw_range_elements) #endif } @@ -2500,10 +2545,11 @@ glMultiTexCoord4ivARB = (glMultiTexCoord4ivARBPROC) extgl_GetProcAddress("glMultiTexCoord4ivARB"); glMultiTexCoord4sARB = (glMultiTexCoord4sARBPROC) extgl_GetProcAddress("glMultiTexCoord4sARB"); glMultiTexCoord4svARB = (glMultiTexCoord4svARBPROC) extgl_GetProcAddress("glMultiTexCoord4svARB"); + EXTGL_SANITY_CHECK(ARB_multitexture) #endif /* GL_ARB_multitexture */ } -int extgl_InitGLU12(void) +static void extgl_InitGLU12(void) { gluBeginCurve = (gluBeginCurvePROC) extgl_GetProcAddress("gluBeginCurve"); gluBeginPolygon = (gluBeginPolygonPROC) extgl_GetProcAddress("gluBeginPolygon"); @@ -2556,13 +2602,12 @@ gluTessProperty = (gluTessPropertyPROC) extgl_GetProcAddress("gluTessProperty"); gluTessVertex = (gluTessVertexPROC) extgl_GetProcAddress("gluTessVertex"); gluUnProject = (gluUnProjectPROC) extgl_GetProcAddress("gluUnProject"); - return extgl_error; } -int extgl_InitGLU13(void) +static void extgl_InitGLU13(void) { if (extgl_Extensions.glu.GLU13 != 1) - return extgl_error; + return; gluUnProject4 = (gluUnProject4PROC) extgl_GetProcAddress("gluUnProject4"); gluBuild1DMipmapLevels = (gluBuild1DMipmapLevelsPROC) extgl_GetProcAddress("gluBuild1DMipmapLevels"); gluBuild2DMipmapLevels = (gluBuild2DMipmapLevelsPROC) extgl_GetProcAddress("gluBuild2DMipmapLevels"); @@ -2570,23 +2615,22 @@ gluBuild3DMipmaps = (gluBuild3DMipmapsPROC) extgl_GetProcAddress("gluBuild3DMipmaps"); gluNurbsCallbackData = (gluNurbsCallbackDataPROC) extgl_GetProcAddress("gluNurbsCallbackData"); gluCheckExtension = (gluCheckExtensionPROC) extgl_GetProcAddress("gluCheckExtension"); - return extgl_error; + EXTGL_SANITY_CHECK(glu.GLU13) } -int extgl_InitEXTNurbsTesselator(void) +static void extgl_InitEXTNurbsTesselator(void) { if (!extgl_Extensions.glu.EXT_nurbs_tessellator) - return 1; + return; gluNurbsCallbackDataEXT = (gluNurbsCallbackDataEXTPROC) extgl_GetProcAddress("gluNurbsCallbackDataEXT"); - - return 0; + EXTGL_SANITY_CHECK(glu.EXT_nurbs_tessellator) } #ifdef _X11 -int extgl_InitGLX13(void) +static void extgl_InitGLX13(void) { - if (extgl_Extensions.glx.GLX13 == 0) - return extgl_error; + if (extgl_Extensions.glx.GLX13 != 1) + return; glXGetFBConfigs = (glXGetFBConfigsPROC) extgl_GetProcAddress("glXGetFBConfigs"); glXChooseFBConfig = (glXChooseFBConfigPROC) extgl_GetProcAddress("glXChooseFBConfig"); glXGetFBConfigAttrib = (glXGetFBConfigAttribPROC) extgl_GetProcAddress("glXGetFBConfigAttrib"); @@ -2605,10 +2649,10 @@ glXQueryContext = (glXQueryContextPROC) extgl_GetProcAddress("glXQueryContext"); glXSelectEvent = (glXSelectEventPROC) extgl_GetProcAddress("glXSelectEvent"); glXGetSelectedEvent = (glXGetSelectedEventPROC) extgl_GetProcAddress("glXGetSelectedEvent"); - return extgl_error; + EXTGL_SANITY_CHECK(glx.GLX13) } -int extgl_InitGLX12(void) +static int extgl_InitGLX12(void) { glXChooseVisual = (glXChooseVisualPROC) extgl_GetProcAddress("glXChooseVisual"); glXCopyContext = (glXCopyContextPROC) extgl_GetProcAddress("glXCopyContext"); @@ -2654,8 +2698,7 @@ return 1; if (major > 1 || (major == 1 && minor >= 3)) extgl_Extensions.glx.GLX13 = 1; - if (extgl_InitGLX13() != 0) - return 1; + extgl_InitGLX13(); return 0; } #endif @@ -3010,6 +3053,7 @@ glTexSubImage3D = (glTexSubImage3DPROC) extgl_GetProcAddress("glTexSubImage3D"); glCopyTexSubImage3D = (glCopyTexSubImage3DPROC) extgl_GetProcAddress("glCopyTexSubImage3D"); glDrawRangeElements = (glDrawRangeElementsPROC) extgl_GetProcAddress("glDrawRangeElements"); + EXTGL_SANITY_CHECK(OpenGL12) #endif /* GL_VERSION_1_2 */ } @@ -3052,6 +3096,7 @@ glMinmax = (glMinmaxPROC) extgl_GetProcAddress("glMinmax"); glResetHistogram = (glResetHistogramPROC) extgl_GetProcAddress("glResetHistogram"); glResetMinmax = (glResetMinmaxPROC) extgl_GetProcAddress("glResetMinmax"); + EXTGL_SANITY_CHECK(ARB_imaging) #endif /* GL_ARB_imaging */ } @@ -3112,6 +3157,7 @@ glGetCompressedTexImage = (glGetCompressedTexImagePROC) extgl_GetProcAddress("glGetCompressedTexImage"); glSampleCoverage = (glSampleCoveragePROC) extgl_GetProcAddress("glSampleCoverage"); + EXTGL_SANITY_CHECK(OpenGL13) #endif /* GL_VERSION_1_3 */ } @@ -3165,6 +3211,7 @@ glWindowPos3fv = (glWindowPos3fvPROC) extgl_GetProcAddress("glWindowPos3fv"); glWindowPos3iv = (glWindowPos3ivPROC) extgl_GetProcAddress("glWindowPos3iv"); glWindowPos3sv = (glWindowPos3svPROC) extgl_GetProcAddress("glWindowPos3sv"); + EXTGL_SANITY_CHECK(OpenGL14) #endif /* GL_VERSION_1_4 */ } @@ -3318,11 +3365,14 @@ int extgl_Initialize() { extgl_error = 0; + extgl_InitOpenGL1_1(); extgl_InitGLU12(); - extgl_InitGLU13(); - extgl_InitSupportedExtensions(); + if (extgl_error != 0) + return extgl_error; + extgl_InitGLUSupportedExtensions(); + extgl_InitSupportedExtensions(); extgl_InitEXTNurbsTesselator(); @@ -3374,6 +3424,8 @@ extgl_InitOpenGL1_3(); extgl_InitOpenGL1_4(); + extgl_InitGLU13(); + #ifdef _WIN32 /* load WGL extensions */ extgl_InitializeWGL(); @@ -3383,7 +3435,7 @@ /* load AGL extensions */ extgl_InitializeAGL(); #endif - return extgl_error; + return 0; } #ifdef _X11 |