Added a new state variable "Initalized".
[freeglut] / src / freeglut_window.c
index c709901..4820ad0 100644 (file)
@@ -29,8 +29,6 @@
 #include "config.h"
 #endif
 
-#define  G_LOG_DOMAIN  "freeglut-window"
-
 #include "../include/GL/freeglut.h"
 #include "freeglut_internal.h"
 
@@ -237,8 +235,8 @@ void fgSetWindow ( SFG_Window *window )
         window->Window.Device = GetDC( window->Window.Handle );
         wglMakeCurrent( 
             window->Window.Device, 
-            window->Window.Context 
-       );
+            window->Window.Context
+        );
     }
 #endif
     fgStructure.Window = window;
@@ -553,7 +551,7 @@ void fgCloseWindow( SFG_Window* window )
 
     glXDestroyContext( fgDisplay.Display, window->Window.Context );
     XDestroyWindow( fgDisplay.Display, window->Window.Handle );
-    XFlush( fgDisplay.Display );
+    XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
 
 #elif TARGET_HOST_WIN32
 
@@ -652,7 +650,7 @@ void FGAPIENTRY glutShowWindow( void )
 #if TARGET_HOST_UNIX_X11
 
     XMapWindow( fgDisplay.Display, fgStructure.Window->Window.Handle );
-    XFlush( fgDisplay.Display );
+    XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
 
 #elif TARGET_HOST_WIN32
 
@@ -678,7 +676,7 @@ void FGAPIENTRY glutHideWindow( void )
                          fgDisplay.Screen );
     else
         XUnmapWindow( fgDisplay.Display, fgStructure.Window->Window.Handle );
-    XFlush( fgDisplay.Display );
+    XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
 
 #elif TARGET_HOST_WIN32
 
@@ -701,7 +699,7 @@ void FGAPIENTRY glutIconifyWindow( void )
 
     XIconifyWindow( fgDisplay.Display, fgStructure.Window->Window.Handle,
                     fgDisplay.Screen );
-    XFlush( fgDisplay.Display );
+    XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
 
 #elif TARGET_HOST_WIN32
 
@@ -738,7 +736,7 @@ void FGAPIENTRY glutSetWindowTitle( const char* title )
             &text
         );
         
-        XFlush( fgDisplay.Display );
+        XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
     }
 
 #elif TARGET_HOST_WIN32
@@ -776,12 +774,12 @@ void FGAPIENTRY glutSetIconTitle( const char* title )
             &text
         );
 
-        XFlush( fgDisplay.Display );
+        XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
     }
 
 #elif TARGET_HOST_WIN32
 
-       SetWindowText( fgStructure.Window->Window.Handle, title );
+    SetWindowText( fgStructure.Window->Window.Handle, title );
 
 #endif
 
@@ -799,7 +797,19 @@ void FGAPIENTRY glutReshapeWindow( int width, int height )
 
     XResizeWindow( fgDisplay.Display, fgStructure.Window->Window.Handle,
                    width, height );
-    XFlush( fgDisplay.Display );
+    XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
+    /*
+     * XXX REALLY shouldn't be done.  GLUT docs state that this
+     * XXX isn't even processed immediately, but rather waits
+     * XXX for return to the mainloop.  "This allows multiple
+     * XXX glutReshapeWindow, glutPositionWindow, and glutFullScreen
+     * XXX requests to the same window to be coalesced."  (This is
+     * XXX having some deleterious effect on a sample program of mine.)
+     * XXX Not only does GLUT not flush at this point, GLUT doesn't even
+     * XXX *do* the reshape at this point!  We should probably rip this
+     * XXX out and do what GLUT promises.  It would be more efficient, and
+     * XXX might be more compatible.
+     */
 
 #elif TARGET_HOST_WIN32
 
@@ -819,8 +829,8 @@ void FGAPIENTRY glutReshapeWindow( int width, int height )
              */
             if ( ! fgStructure.Window->IsMenu )
             {
-               width += GetSystemMetrics( SM_CXSIZEFRAME ) * 2;
-               height += GetSystemMetrics( SM_CYSIZEFRAME ) * 2 +
+                width += GetSystemMetrics( SM_CXSIZEFRAME ) * 2;
+                height += GetSystemMetrics( SM_CYSIZEFRAME ) * 2 +
                     GetSystemMetrics( SM_CYCAPTION );
             }
         }
@@ -858,7 +868,7 @@ void FGAPIENTRY glutPositionWindow( int x, int y )
 #if TARGET_HOST_UNIX_X11
 
     XMoveWindow( fgDisplay.Display, fgStructure.Window->Window.Handle, x, y );
-    XFlush( fgDisplay.Display );
+    XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
 
 #elif TARGET_HOST_WIN32
 
@@ -950,7 +960,8 @@ void FGAPIENTRY glutFullScreen( void )
             fgDisplay.ScreenWidth,
             fgDisplay.ScreenHeight
         );
-        XFlush( fgDisplay.Display );
+
+        XFlush( fgDisplay.Display ); /* This is needed */
 
         XTranslateCoordinates(
             fgDisplay.Display,
@@ -966,7 +977,7 @@ void FGAPIENTRY glutFullScreen( void )
                 fgStructure.Window->Window.Handle,
                 -x, -y
             );
-            XFlush( fgDisplay.Display );
+            XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
         }
     }
 #elif TARGET_HOST_WIN32