- char *mesa_win_state;
-
- // Initialize PUI
- puInit();
- puSetDefaultStyle ( PUSTYLE_SMALL_BEVELLED ); //PUSTYLE_DEFAULT
- puSetDefaultColourScheme (0.8, 0.8, 0.9, 0.8);
-
- initDialog();
-
- // Next check home directory
- SGPath fntpath;
- char* envp = ::getenv( "FG_FONTS" );
- if ( envp != NULL ) {
- fntpath.set( envp );
- } else {
- fntpath.set( globals->get_fg_root() );
- fntpath.append( "Fonts" );
+ GeneralInitOperation()
+ : GraphicsContextOperation(std::string("General init"))
+ {
+ }
+ void run(osg::GraphicsContext* gc)
+ {
+ SGPropertyNode* simRendering = fgGetNode("/sim/rendering");
+
+ simRendering->setStringValue("gl-vendor", (char*) glGetString(GL_VENDOR));
+ SG_LOG( SG_GENERAL, SG_INFO, glGetString(GL_VENDOR));
+
+ simRendering->setStringValue("gl-renderer", (char*) glGetString(GL_RENDERER));
+ SG_LOG( SG_GENERAL, SG_INFO, glGetString(GL_RENDERER));
+
+ simRendering->setStringValue("gl-version", (char*) glGetString(GL_VERSION));
+ SG_LOG( SG_GENERAL, SG_INFO, glGetString(GL_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 );
+ simRendering->setIntValue("max-texture-size", tmp);
+
+ glGetIntegerv( GL_DEPTH_BITS, &tmp );
+ simRendering->setIntValue("depth-buffer-bits", tmp);