]> git.mxchange.org Git - flightgear.git/commitdiff
Fix crashing without support for GLSL/OpenGL 2.0
authorThomas Geymayer <tomgey@gmail.com>
Tue, 23 Apr 2013 22:19:03 +0000 (00:19 +0200)
committerThomas Geymayer <tomgey@gmail.com>
Tue, 23 Apr 2013 22:19:37 +0000 (00:19 +0200)
src/GUI/gui.cxx

index 2f9192fe49077b05f8e723a231e764a1c1664a23..f37b3792d6412ec8b0d2b2dd414a951f436f04d3 100644 (file)
@@ -120,8 +120,15 @@ struct GeneralInitOperation : public GraphicsContextOperation
         simRendering->setStringValue("gl-version", (char*) glGetString(GL_VERSION));
         SG_LOG( SG_GENERAL, SG_INFO, glGetString(GL_VERSION));
 
-        simRendering->setStringValue("gl-shading-language-version", (char*) glGetString(GL_SHADING_LANGUAGE_VERSION));
-        SG_LOG( SG_GENERAL, SG_INFO, glGetString(GL_SHADING_LANGUAGE_VERSION));
+        // Old hardware without support for OpenGL 2.0 does not support GLSL and
+        // glGetString returns NULL for GL_SHADING_LANGUAGE_VERSION.
+        //
+        // See http://flightgear.org/forums/viewtopic.php?f=17&t=19670&start=15#p181945
+        const char* glsl_version = (const char*) glGetString(GL_SHADING_LANGUAGE_VERSION);
+        if( !glsl_version )
+          glsl_version = "UNSUPPORTED";
+        simRendering->setStringValue("gl-shading-language-version", glsl_version);
+        SG_LOG( SG_GENERAL, SG_INFO, glsl_version);
 
         GLint tmp;
         glGetIntegerv( GL_MAX_TEXTURE_SIZE, &tmp );