Applied Bruce Merry's patch fixing bug #206 (segfault on shutdown in the AMD/ATI...
authorJohn Tsiombikas <nuclear@member.fsf.org>
Tue, 21 Jan 2014 10:52:53 +0000 (10:52 +0000)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Tue, 21 Jan 2014 10:52:53 +0000 (10:52 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1640 7f0cb862-5218-0410-a997-914c9d46530a

src/x11/fg_init_x11.c

index 49aefe6..52c5d88 100644 (file)
@@ -182,6 +182,14 @@ void fgPlatformInitialize( const char* displayName )
     if( !glXQueryExtension( fgDisplay.pDisplay.Display, NULL, NULL ) )
         fgError( "OpenGL GLX extension not supported by display '%s'",
             XDisplayName( displayName ) );
+
+    /* This forces AMD Catalyst drivers to initialize and register a shutdown
+     * function, which must be done before our own call to atexit to prevent
+     * a crash if glutMainLoop is not called or is not exited cleanly.
+     * (see bug #206)
+     */
+    glXQueryExtensionsString( fgDisplay.pDisplay.Display,
+        DefaultScreen( fgDisplay.pDisplay.Display ));
 #endif
 
     fgDisplay.pDisplay.Screen = DefaultScreen( fgDisplay.pDisplay.Display );