Making the check for a current window in "glutPostRedisplay" more stringent
[freeglut] / src / freeglut_display.c
index a7271cb..2ba0ec5 100644 (file)
 void FGAPIENTRY glutPostRedisplay( void )
 {
     FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPostRedisplay" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPostRedisplay" );
-    fgStructure.Window->State.Redisplay = GL_TRUE;
+    if ( ! fgStructure.CurrentWindow )
+       {
+      fgError ( " ERROR:  Function <%s> called"
+                " with no current window defined.", "glutPostRedisplay" ) ;
+       }
+
+    fgStructure.CurrentWindow->State.Redisplay = GL_TRUE;
 }
 
 /*
@@ -48,14 +53,18 @@ void FGAPIENTRY glutSwapBuffers( void )
     FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSwapBuffers" );
     FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSwapBuffers" );
 
+    /*
+     * "glXSwapBuffers" already performs an implicit call to "glFlush". What
+     * about "SwapBuffers"?
+     */
     glFlush( );
-    if( ! fgStructure.Window->Window.DoubleBuffered )
+    if( ! fgStructure.CurrentWindow->Window.DoubleBuffered )
         return;
 
-#if TARGET_HOST_UNIX_X11
-    glXSwapBuffers( fgDisplay.Display, fgStructure.Window->Window.Handle );
-#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
-    SwapBuffers( fgStructure.Window->Window.Device );
+#if TARGET_HOST_POSIX_X11
+    glXSwapBuffers( fgDisplay.Display, fgStructure.CurrentWindow->Window.Handle );
+#elif TARGET_HOST_MS_WINDOWS
+    SwapBuffers( fgStructure.CurrentWindow->Window.Device );
 #endif
 
     /* GLUT_FPS env var support */