Use a different way to call OpenGL extensions and move over to our own extension checking function instead of the one provided by glut
This commit is contained in:
parent
654037b83b
commit
6b2b6edb2d
1 changed files with 11 additions and 33 deletions
|
@ -143,23 +143,8 @@ SG_USING_STD(endl);
|
||||||
|
|
||||||
#include "fg_commands.hxx"
|
#include "fg_commands.hxx"
|
||||||
|
|
||||||
#ifdef WIN32
|
glPointParameterfProc glPointParameterfPtr;
|
||||||
typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC)(GLenum pname,
|
glPointParameterfvProc glPointParameterfvPtr;
|
||||||
GLfloat param);
|
|
||||||
typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC)(GLenum pname,
|
|
||||||
const GLfloat *params);
|
|
||||||
|
|
||||||
PFNGLPOINTPARAMETERFEXTPROC glPointParameterfEXT = 0;
|
|
||||||
PFNGLPOINTPARAMETERFVEXTPROC glPointParameterfvEXT = 0;
|
|
||||||
#elif linux
|
|
||||||
#include <GL/glx.h>
|
|
||||||
|
|
||||||
typedef void (* OpenGLFuncExt)(GLenum pname, GLfloat param);
|
|
||||||
typedef void (* OpenGLFuncExtv)(GLenum pname, const GLfloat *params);
|
|
||||||
|
|
||||||
OpenGLFuncExt glPointParameterfEXT = 0;
|
|
||||||
OpenGLFuncExtv glPointParameterfvEXT = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
float default_attenuation[3] = {1.0, 0.0, 0.0};
|
float default_attenuation[3] = {1.0, 0.0, 0.0};
|
||||||
//Required for using GL_extensions
|
//Required for using GL_extensions
|
||||||
|
@ -783,15 +768,15 @@ void fgRenderFrame() {
|
||||||
glEnable(GL_POINT_SMOOTH);
|
glEnable(GL_POINT_SMOOTH);
|
||||||
|
|
||||||
if ( fgGetBool("/sim/rendering/distance-attenuation")
|
if ( fgGetBool("/sim/rendering/distance-attenuation")
|
||||||
&& glutExtensionSupported("GL_EXT_point_parameters") )
|
&& SGIsOpenGLExtensionSupported("GL_EXT_point_parameters") )
|
||||||
{
|
{
|
||||||
// Enable states for drawing points with GL_extension
|
// Enable states for drawing points with GL_extension
|
||||||
glEnable(GL_POINT_SMOOTH);
|
glEnable(GL_POINT_SMOOTH);
|
||||||
|
|
||||||
float quadratic[3] = {1.0, 0.001, 0.0000001};
|
float quadratic[3] = {1.0, 0.001, 0.0000001};
|
||||||
// makes the points fade as they move away
|
// makes the points fade as they move away
|
||||||
glPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, quadratic);
|
glPointParameterfvPtr(GL_DISTANCE_ATTENUATION_EXT, quadratic);
|
||||||
glPointParameterfEXT(GL_POINT_SIZE_MIN_EXT, 1.0);
|
glPointParameterfPtr(GL_POINT_SIZE_MIN_EXT, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
glPointSize(4.0);
|
glPointSize(4.0);
|
||||||
|
@ -837,9 +822,9 @@ void fgRenderFrame() {
|
||||||
|
|
||||||
if (fgGetBool("/sim/rendering/enhanced-lighting")) {
|
if (fgGetBool("/sim/rendering/enhanced-lighting")) {
|
||||||
if ( fgGetBool("/sim/rendering/distance-attenuation")
|
if ( fgGetBool("/sim/rendering/distance-attenuation")
|
||||||
&& glutExtensionSupported("GL_EXT_point_parameters") )
|
&& SGIsOpenGLExtensionSupported("GL_EXT_point_parameters") )
|
||||||
{
|
{
|
||||||
glPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT,
|
glPointParameterfvPtr(GL_DISTANCE_ATTENUATION_EXT,
|
||||||
default_attenuation);
|
default_attenuation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1669,17 +1654,10 @@ static bool fgMainInit( int argc, char **argv ) {
|
||||||
// get the address of our OpenGL extensions
|
// get the address of our OpenGL extensions
|
||||||
if ( fgGetBool("/sim/rendering/distance-attenuation") )
|
if ( fgGetBool("/sim/rendering/distance-attenuation") )
|
||||||
{
|
{
|
||||||
#ifdef WIN32
|
glPointParameterfPtr = (glPointParameterfProc)
|
||||||
glPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC)
|
|
||||||
SGLookupFunction("glPointParameterfEXT");
|
SGLookupFunction("glPointParameterfEXT");
|
||||||
glPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC)
|
glPointParameterfvPtr = (glPointParameterfvProc)
|
||||||
SGLookupFunction("glPointParameterfvEXT");
|
SGLookupFunction("glPointParameterfvEXT");
|
||||||
#elif linux
|
|
||||||
glPointParameterfEXT = (OpenGLFuncExt)
|
|
||||||
SGLookupFunction("glPointParameterfEXT");
|
|
||||||
glPointParameterfvEXT = (OpenGLFuncExtv)
|
|
||||||
SGLookupFunction("glPointParameterfvEXT");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// based on the requested presets, calculate the true starting
|
// based on the requested presets, calculate the true starting
|
||||||
|
|
Loading…
Add table
Reference in a new issue