LWJGL now ignores OpenGL extensions with missing symbols
This commit is contained in:
parent
8eb376ca5d
commit
5801ddf254
|
@ -1363,6 +1363,12 @@ void * lib_glu_handle = NULL;
|
|||
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 @@ static void extgl_InitARBFragmentProgram()
|
|||
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 @@ static void extgl_InitNVPrimitiveRestart()
|
|||
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 @@ static void extgl_InitNVFragmentProgram()
|
|||
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 @@ static void extgl_InitNVElementArray()
|
|||
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 @@ static void extgl_InitEXTBlendFuncSeparate()
|
|||
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 @@ static void extgl_InitEXTCullVertex()
|
|||
return;
|
||||
glCullParameterfvEXT = (glCullParameterfvEXTPROC) extgl_GetProcAddress("glCullParameterfvEXT");
|
||||
glCullParameterdvEXT = (glCullParameterdvEXTPROC) extgl_GetProcAddress("glCullParameterdvEXT");
|
||||
EXTGL_SANITY_CHECK(EXT_cull_vertex)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1827,6 +1839,7 @@ static void extgl_InitARBVertexBufferObject()
|
|||
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 @@ static void extgl_InitARBVertexProgram()
|
|||
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 @@ static void extgl_InitEXTStencilTwoSide()
|
|||
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 @@ static void extgl_InitARBWindowPos()
|
|||
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 @@ static void extgl_InitARBTextureCompression()
|
|||
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 @@ static void extgl_InitNVPointSprite()
|
|||
return;
|
||||
glPointParameteriNV = (glPointParameteriNVPROC) extgl_GetProcAddress("glPointParameteriNV");
|
||||
glPointParameterivNV = (glPointParameterivNVPROC) extgl_GetProcAddress("glPointParameterivNV");
|
||||
EXTGL_SANITY_CHECK(NV_point_sprite)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1970,6 +1988,7 @@ static void extgl_InitNVOcclusionQuery()
|
|||
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 @@ static void extgl_InitATIVertexArrayObject()
|
|||
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 @@ static void extgl_InitATIVertexStreams()
|
|||
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 @@ static void extgl_InitATIElementArray()
|
|||
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 @@ static void extgl_InitATIFragmentShader()
|
|||
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 @@ static void extgl_InitATIEnvmapBumpmap()
|
|||
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 @@ static void extgl_InitEXTVertexShader()
|
|||
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 @@ static void extgl_InitARBMatrixPalette()
|
|||
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 @@ static void extgl_InitEXTMultiDrawArrays()
|
|||
return;
|
||||
glMultiDrawArraysEXT = (glMultiDrawArraysEXTPROC) extgl_GetProcAddress("glMultiDrawArraysEXT");
|
||||
glMultiDrawElementsEXT = (glMultiDrawElementsEXTPROC) extgl_GetProcAddress("glMultiDrawElementsEXT");
|
||||
EXTGL_SANITY_CHECK(EXT_multi_draw_arrays)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2172,6 +2199,7 @@ static void extgl_InitARBVertexBlend()
|
|||
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 @@ static void extgl_InitARBPointParameters()
|
|||
return;
|
||||
glPointParameterfARB = (glPointParameterfARBPROC) extgl_GetProcAddress("glPointParameterfARB");
|
||||
glPointParameterfvARB = (glPointParameterfvARBPROC) extgl_GetProcAddress("glPointParameterfvARB");
|
||||
EXTGL_SANITY_CHECK(ARB_point_parameters)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2192,6 +2221,7 @@ static void extgl_InitATIPNTriangles()
|
|||
return;
|
||||
glPNTrianglesiATI = (glPNTrianglesiATIPROC) extgl_GetProcAddress("glPNTrianglesiATI");
|
||||
glPNTrianglesfATI = (glPNTrianglesfATIPROC) extgl_GetProcAddress("glPNTrianglesfATI");
|
||||
EXTGL_SANITY_CHECK(ATI_pn_triangles)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2202,6 +2232,7 @@ static void extgl_InitATISeparateStencil()
|
|||
return;
|
||||
glStencilOpSeparateATI = (glStencilOpSeparateATIPROC)extgl_GetProcAddress("glStencilOpSeparateATI");
|
||||
glStencilFuncSeparateATI = (glStencilFuncSeparateATIPROC)extgl_GetProcAddress("glStencilFuncSeparateATI");
|
||||
EXTGL_SANITY_CHECK(ATI_separate_stencil)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2219,6 +2250,7 @@ static void extgl_InitNVEvaluators()
|
|||
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 @@ static void extgl_InitNVRegisterCombiners2()
|
|||
return;
|
||||
glCombinerStageParameterfvNV = (glCombinerStageParameterfvNVPROC) extgl_GetProcAddress("glCombinerStageParameterfvNV");
|
||||
glGetCombinerStageParameterfvNV = (glGetCombinerStageParameterfvNVPROC) extgl_GetProcAddress("glGetCombinerStageParameterfvNV");
|
||||
EXTGL_SANITY_CHECK(NV_register_combiners2)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2244,6 +2277,7 @@ static void extgl_InitNVFence()
|
|||
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 @@ static void extgl_InitNVVertexProgram()
|
|||
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 @@ static void extgl_InitEXTVertexWeighting()
|
|||
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 @@ static void extgl_InitARBMultisample()
|
|||
if (!extgl_Extensions.ARB_multisample)
|
||||
return;
|
||||
glSampleCoverageARB = (glSampleCoverageARBPROC) extgl_GetProcAddress("glSampleCoverageARB");
|
||||
EXTGL_SANITY_CHECK(ARB_multisample)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2357,6 +2394,7 @@ static void extgl_InitNVRegisterCombiners()
|
|||
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 @@ static void extgl_InitEXTPointParameters()
|
|||
return;
|
||||
glPointParameterfEXT = (glPointParameterfEXTPROC) extgl_GetProcAddress("glPointParameterfEXT");
|
||||
glPointParameterfvEXT = (glPointParameterfvEXTPROC) extgl_GetProcAddress("glPointParameterfvEXT");
|
||||
EXTGL_SANITY_CHECK(EXT_point_parameters)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2385,6 +2424,7 @@ static void extgl_InitNVVertexArrayRange()
|
|||
glXAllocateMemoryNV = (glXAllocateMemoryNVPROC) extgl_GetProcAddress("glXAllocateMemoryNV");
|
||||
glXFreeMemoryNV = (glXFreeMemoryNVPROC) extgl_GetProcAddress("glXFreeMemoryNV");
|
||||
#endif /* X11 */
|
||||
EXTGL_SANITY_CHECK(NV_vertex_array_range)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2398,6 +2438,7 @@ static void extgl_InitEXTFogCoord()
|
|||
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 @@ static void extgl_InitEXTSecondaryColor()
|
|||
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 @@ static void extgl_InitEXTCompiledVertexArray()
|
|||
return;
|
||||
glLockArraysEXT = (glLockArraysEXTPROC) extgl_GetProcAddress("glLockArraysEXT");
|
||||
glUnlockArraysEXT = (glUnlockArraysEXTPROC) extgl_GetProcAddress("glUnlockArraysEXT");
|
||||
EXTGL_SANITY_CHECK(EXT_compiled_vertex_array)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2445,6 +2488,7 @@ static void extgl_InitARBTransposeMatrix()
|
|||
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 @@ static void extgl_InitEXTDrawRangeElements()
|
|||
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 @@ static void extgl_InitARBMultitexture()
|
|||
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 @@ int extgl_InitGLU12(void)
|
|||
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 @@ int extgl_InitGLU13(void)
|
|||
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 @@ int extgl_InitGLX13(void)
|
|||
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 @@ int extgl_InitGLX(Display *disp, int screen)
|
|||
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 @@ static void extgl_InitOpenGL1_2()
|
|||
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 @@ static void extgl_InitARBImaging()
|
|||
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 @@ static void extgl_InitOpenGL1_3()
|
|||
glGetCompressedTexImage = (glGetCompressedTexImagePROC) extgl_GetProcAddress("glGetCompressedTexImage");
|
||||
|
||||
glSampleCoverage = (glSampleCoveragePROC) extgl_GetProcAddress("glSampleCoverage");
|
||||
EXTGL_SANITY_CHECK(OpenGL13)
|
||||
#endif /* GL_VERSION_1_3 */
|
||||
}
|
||||
|
||||
|
@ -3165,6 +3211,7 @@ static void extgl_InitOpenGL1_4()
|
|||
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 @@ static void extgl_InitSupportedExtensions()
|
|||
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 @@ int extgl_Initialize()
|
|||
extgl_InitOpenGL1_3();
|
||||
extgl_InitOpenGL1_4();
|
||||
|
||||
extgl_InitGLU13();
|
||||
|
||||
#ifdef _WIN32
|
||||
/* load WGL extensions */
|
||||
extgl_InitializeWGL();
|
||||
|
@ -3383,7 +3435,7 @@ int extgl_Initialize()
|
|||
/* load AGL extensions */
|
||||
extgl_InitializeAGL();
|
||||
#endif
|
||||
return extgl_error;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef _X11
|
||||
|
|
Loading…
Reference in New Issue