moving fgPlatformReshapeWindow and fgPlatformDisplayWindow from fg_main_x to fg_windo...
authorDiederick Niehorster <dcnieho@gmail.com>
Wed, 13 Feb 2013 10:28:26 +0000 (10:28 +0000)
committerDiederick Niehorster <dcnieho@gmail.com>
Wed, 13 Feb 2013 10:28:26 +0000 (10:28 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1504 7f0cb862-5218-0410-a997-914c9d46530a

CMakeLists.txt
src/android/fg_main_android.c
src/android/fg_main_android.h
src/android/fg_window_android.c
src/mswin/fg_main_mswin.c
src/mswin/fg_window_mswin.c
src/x11/fg_main_x11.c
src/x11/fg_window_x11.c

index 26b03a6..8dd1fef 100644 (file)
@@ -67,7 +67,6 @@ SET(FREEGLUT_SRCS
     src/fg_input_devices.c
     src/fg_joystick.c
     src/fg_main.c
-    src/fg_main.h
     src/fg_misc.c
     src/fg_overlay.c
     src/fg_spaceball.c
index cf2690b..15d31e6 100644 (file)
@@ -28,7 +28,6 @@
 
 #include <GL/freeglut.h>
 #include "fg_internal.h"
-#include "fg_main.h"
 #include "egl/fg_window_egl.h"
 
 #include <android/log.h>
@@ -139,22 +138,6 @@ static unsigned char key_ascii(struct android_app* app, AInputEvent* event) {
   return ascii;
 }
 
-/*
- * Request a window resize
- */
-void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height )
-{
-  fprintf(stderr, "fgPlatformReshapeWindow: STUB\n");
-}
-
-/*
- * A static helper function to execute display callback for a window
- */
-void fgPlatformDisplayWindow ( SFG_Window *window )
-{
-  fghRedrawWindow ( window ) ;
-}
-
 unsigned long fgPlatformSystemTime ( void )
 {
   struct timeval now;
index 0f1f2ba..a0dfdfe 100644 (file)
@@ -30,8 +30,6 @@
 #include "fg_internal.h"
 
 extern void fgPlatformProcessSingleEvent(void);
-extern void fgPlatformReshapeWindow(SFG_Window *window, int width, int height);
-extern void fgPlatformDisplayWindow(SFG_Window *window);
 extern unsigned long fgPlatformSystemTime(void);
 extern void fgPlatformSleepForEvents(long msec);
 extern void fgPlatformMainLoopPreliminaryWork(void);
index 5d1bc19..65f4d4d 100644 (file)
@@ -32,6 +32,8 @@
 #include "egl/fg_window_egl.h"
 #include <android/native_app_glue/android_native_app_glue.h>
 
+extern void fghRedrawWindow(SFG_Window *window);
+
 /*
  * Opens a window. Requires a SFG_Window object created and attached
  * to the freeglut structure. OpenGL context is created here.
@@ -86,6 +88,22 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
 }
 
 /*
+ * Request a window resize
+ */
+void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height )
+{
+  fprintf(stderr, "fgPlatformReshapeWindow: STUB\n");
+}
+
+/*
+ * A static helper function to execute display callback for a window
+ */
+void fgPlatformDisplayWindow ( SFG_Window *window )
+{
+  fghRedrawWindow ( window ) ;
+}
+
+/*
  * Closes a window, destroying the frame and OpenGL context
  */
 void fgPlatformCloseWindow( SFG_Window* window )
index 3769cb4..8be93e8 100644 (file)
@@ -58,82 +58,6 @@ GXOPENINPUT GXOpenInput_ = NULL;
 struct GXKeyList gxKeyList;
 #endif /* _WIN32_WCE */
 
-/* 
- * Helper functions for getting client area from the window rect
- * and the window rect from the client area given the style of the window
- * (or a valid window pointer from which the style can be queried).
- */
-extern void fghComputeWindowRectFromClientArea_QueryWindow( RECT *clientRect, const SFG_Window *window, BOOL posIsOutside );
-extern void fghGetClientArea                              ( RECT *clientRect, const SFG_Window *window, BOOL wantPosOutside );
-
-
-void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height )
-{
-    RECT windowRect;
-
-    /*
-     * For windowed mode, get the current position of the
-     * window and resize taking the size of the frame
-     * decorations into account.
-     *
-     * Note on maximizing behavior of Windows: the resize borders are off
-     * the screen such that the client area extends all the way from the
-     * leftmost corner to the rightmost corner to maximize screen real
-     * estate. A caption is still shown however to allow interaction with
-     * the window controls. This is default behavior of Windows that
-     * FreeGLUT sticks with. To alter, one would have to check if
-     * WS_MAXIMIZE style is set when a resize event is triggered, and
-     * then manually correct the windowRect to put the borders back on
-     * screen.
-     */
-
-    /* "GetWindowRect" returns the pixel coordinates of the outside of the window */
-    GetWindowRect( window->Window.Handle, &windowRect );
-
-    /* Create rect in FreeGLUT format, (X,Y) topleft outside window, WxH of client area */
-    windowRect.right    = windowRect.left+width;
-    windowRect.bottom   = windowRect.top+height;
-
-    if (window->Parent == NULL)
-        /* get the window rect from this to feed to SetWindowPos, correct for window decorations */
-        fghComputeWindowRectFromClientArea_QueryWindow(&windowRect,window,TRUE);
-    else
-    {
-        /* correct rect for position client area of parent window
-         * (SetWindowPos input for child windows is in coordinates
-         * relative to the parent's client area).
-         * Child windows don't have decoration, so no need to correct
-         * for them.
-         */
-        RECT parentRect;
-        fghGetClientArea( &parentRect, window->Parent, FALSE );
-        OffsetRect(&windowRect,-parentRect.left,-parentRect.top);
-    }
-    
-    /* Do the actual resizing */
-    SetWindowPos( window->Window.Handle,
-                  HWND_TOP,
-                  windowRect.left, windowRect.top,
-                  windowRect.right - windowRect.left,
-                  windowRect.bottom- windowRect.top,
-                  SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSENDCHANGING |
-                  SWP_NOZORDER
-    );
-
-    /* Set new width and height so we can test for that in WM_SIZE message handler and don't do anything if not needed */
-    window->State.Width  = width;
-    window->State.Height = height;
-}
-
-
-void fgPlatformDisplayWindow ( SFG_Window *window )
-{
-    RedrawWindow(
-        window->Window.Handle, NULL, NULL,
-        RDW_NOERASE | RDW_INTERNALPAINT | RDW_INVALIDATE | RDW_UPDATENOW
-    );
-}
-
 
 /* Get system time, taking special precautions against 32bit timer wrap.
    We use timeGetTime and not GetTickCount because of its better stability,
index f252948..621a18a 100644 (file)
@@ -759,6 +759,74 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
 }
 
 
+void fgPlatformDisplayWindow ( SFG_Window *window )
+{
+    RedrawWindow(
+        window->Window.Handle, NULL, NULL,
+        RDW_NOERASE | RDW_INTERNALPAINT | RDW_INVALIDATE | RDW_UPDATENOW
+        );
+}
+
+
+void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height )
+{
+    RECT windowRect;
+
+    /*
+     * For windowed mode, get the current position of the
+     * window and resize taking the size of the frame
+     * decorations into account.
+     *
+     * Note on maximizing behavior of Windows: the resize borders are off
+     * the screen such that the client area extends all the way from the
+     * leftmost corner to the rightmost corner to maximize screen real
+     * estate. A caption is still shown however to allow interaction with
+     * the window controls. This is default behavior of Windows that
+     * FreeGLUT sticks with. To alter, one would have to check if
+     * WS_MAXIMIZE style is set when a resize event is triggered, and
+     * then manually correct the windowRect to put the borders back on
+     * screen.
+     */
+
+    /* "GetWindowRect" returns the pixel coordinates of the outside of the window */
+    GetWindowRect( window->Window.Handle, &windowRect );
+
+    /* Create rect in FreeGLUT format, (X,Y) topleft outside window, WxH of client area */
+    windowRect.right    = windowRect.left+width;
+    windowRect.bottom   = windowRect.top+height;
+
+    if (window->Parent == NULL)
+        /* get the window rect from this to feed to SetWindowPos, correct for window decorations */
+        fghComputeWindowRectFromClientArea_QueryWindow(&windowRect,window,TRUE);
+    else
+    {
+        /* correct rect for position client area of parent window
+         * (SetWindowPos input for child windows is in coordinates
+         * relative to the parent's client area).
+         * Child windows don't have decoration, so no need to correct
+         * for them.
+         */
+        RECT parentRect;
+        fghGetClientArea( &parentRect, window->Parent, FALSE );
+        OffsetRect(&windowRect,-parentRect.left,-parentRect.top);
+    }
+    
+    /* Do the actual resizing */
+    SetWindowPos( window->Window.Handle,
+                  HWND_TOP,
+                  windowRect.left, windowRect.top,
+                  windowRect.right - windowRect.left,
+                  windowRect.bottom- windowRect.top,
+                  SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSENDCHANGING |
+                  SWP_NOZORDER
+    );
+
+    /* Set new width and height so we can test for that in WM_SIZE message handler and don't do anything if not needed */
+    window->State.Width  = width;
+    window->State.Height = height;
+}
+
+
 /*
  * Closes a window, destroying the frame and OpenGL context
  */
index 8387ba8..c803b2b 100644 (file)
@@ -40,7 +40,6 @@
 #    define VFPRINTF(s,f,a)
 #endif
 
-#include "fg_main.h"
 
 /*
  * Try to get the maximum value allowed for ints, falling back to the minimum
@@ -72,25 +71,6 @@ static Bool match_motion(Display *dpy, XEvent *xev, XPointer arg);
  */
  
  
-/*
- * Request a window resize
- */
-void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height )
-{
-    XResizeWindow( fgDisplay.pDisplay.Display, window->Window.Handle,
-                   width, height );
-    XFlush( fgDisplay.pDisplay.Display ); /* XXX Shouldn't need this */
-}
-
-
-/*
- * A static helper function to execute display callback for a window
- */
-void fgPlatformDisplayWindow ( SFG_Window *window )
-{
-        fghRedrawWindow ( window ) ;
-}
-
 
 fg_time_t fgPlatformSystemTime ( void )
 {
index 61a3bd6..2afe99e 100644 (file)
@@ -32,6 +32,8 @@
 #include <unistd.h>  /* usleep */
 #include "../fg_internal.h"
 
+extern void fghRedrawWindow(SFG_Window *window);
+
 #ifdef EGL_VERSION_1_0
 #include "egl/fg_window_egl.h"
 #define fghCreateNewContext fghCreateNewContextEGL
@@ -370,6 +372,26 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
 
 
 /*
+ * Request a window resize
+ */
+void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height )
+{
+    XResizeWindow( fgDisplay.pDisplay.Display, window->Window.Handle,
+                   width, height );
+    XFlush( fgDisplay.pDisplay.Display ); /* XXX Shouldn't need this */
+}
+
+
+/*
+ * A static helper function to execute display callback for a window
+ */
+void fgPlatformDisplayWindow ( SFG_Window *window )
+{
+        fghRedrawWindow ( window ) ;
+}
+
+
+/*
  * Closes a window, destroying the frame and OpenGL context
  */
 void fgPlatformCloseWindow( SFG_Window* window )