glPointParameterfProc glPointParameterfPtr = 0;
glPointParameterfvProc glPointParameterfvPtr = 0;
+bool glPointParameterIsSupported = false;
float default_attenuation[3] = {1.0, 0.0, 0.0};
//Required for using GL_extensions
glEnable(GL_POINT_SMOOTH);
if ( fgGetBool("/sim/rendering/distance-attenuation") &&
- ( SGIsOpenGLExtensionSupported("GL_EXT_point_parameters") ||
- SGIsOpenGLExtensionSupported("GL_ARB_point_parameters") ) )
+ glPointParameterIsSupported )
{
// Enable states for drawing points with GL_extension
glEnable(GL_POINT_SMOOTH);
if (fgGetBool("/sim/rendering/enhanced-lighting")) {
if ( fgGetBool("/sim/rendering/distance-attenuation") &&
- ( SGIsOpenGLExtensionSupported("GL_EXT_point_parameters") ||
- SGIsOpenGLExtensionSupported("GL_ARB_point_parameters") ) )
+ glPointParameterIsSupported )
{
glPointParameterfvPtr(GL_DISTANCE_ATTENUATION_EXT,
default_attenuation);
if ( fgGetBool("/sim/rendering/distance-attenuation") )
{
if (SGIsOpenGLExtensionSupported("GL_EXT_point_parameters") ) {
+ glPointParameterIsSupported = true;
glPointParameterfPtr = (glPointParameterfProc)
SGLookupFunction("glPointParameterfEXT");
glPointParameterfvPtr = (glPointParameterfvProc)
SGLookupFunction("glPointParameterfvEXT");
} else if ( SGIsOpenGLExtensionSupported("GL_ARB_point_parameters") ) {
+ glPointParameterIsSupported = true;
glPointParameterfPtr = (glPointParameterfProc)
SGLookupFunction("glPointParameterfARB");
glPointParameterfvPtr = (glPointParameterfvProc)
SGLookupFunction("glPointParameterfvARB");
- }
+ } else
+ glPointParameterIsSupported = false;
}
// based on the requested presets, calculate the true starting