Moving the platform-specific window state fields into their own substructure
[freeglut] / src / Common / freeglut_window.c
index 1d409b3..1052c25 100644 (file)
 #endif  /* TARGET_HOST_POSIX_X11 */\r
 \r
 \r
-#ifdef WM_TOUCH\r
-       typedef BOOL (WINAPI *pRegisterTouchWindow)(HWND,ULONG);\r
-   static pRegisterTouchWindow fghRegisterTouchWindow = (pRegisterTouchWindow)0xDEADBEEF;\r
-#endif\r
-\r
 /* pushing attribute/value pairs into an array */\r
 #define ATTRIB(a) attributes[where++]=(a)\r
 #define ATTRIB_VAL(a,v) {ATTRIB(a); ATTRIB(v);}\r
@@ -403,7 +398,7 @@ static GLXContext fghCreateNewContext( SFG_Window* window )
 \r
   /* "classic" context creation */\r
   Display *dpy = fgDisplay.Display;\r
-  GLXFBConfig config = *(window->Window.FBConfig);\r
+  GLXFBConfig config = *(window->Window.pContext.FBConfig);\r
   int render_type = ( !menu && index_mode ) ? GLX_COLOR_INDEX_TYPE : GLX_RGBA_TYPE;\r
   GLXContext share_list = NULL;\r
   Bool direct = ( fgState.DirectContext != GLUT_FORCE_INDIRECT_CONTEXT );\r
@@ -454,8 +449,8 @@ static int fghResizeFullscrToggle(void)
         /* restore original window size */\r
         SFG_Window *win = fgStructure.CurrentWindow;\r
         fgStructure.CurrentWindow->State.NeedToResize = GL_TRUE;\r
-        fgStructure.CurrentWindow->State.Width  = win->State.OldWidth;\r
-        fgStructure.CurrentWindow->State.Height = win->State.OldHeight;\r
+        fgStructure.CurrentWindow->State.Width  = win->State.pWState.OldWidth;\r
+        fgStructure.CurrentWindow->State.Height = win->State.pWState.OldHeight;\r
 \r
     } else {\r
         /* resize the window to cover the entire screen */\r
@@ -553,12 +548,12 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
     if( window->IsMenu && ( ! fgStructure.MenuContext ) )\r
         fgState.DisplayMode = GLUT_DOUBLE | GLUT_RGB ;\r
 \r
-    window->Window.FBConfig = fgChooseFBConfig( &num_FBConfigs );\r
+    window->Window.pContext.FBConfig = fgChooseFBConfig( &num_FBConfigs );\r
 \r
     if( window->IsMenu && ( ! fgStructure.MenuContext ) )\r
         fgState.DisplayMode = current_DisplayMode ;\r
 \r
-    if( ! window->Window.FBConfig )\r
+    if( ! window->Window.pContext.FBConfig )\r
     {\r
         /*\r
          * The "fgChooseFBConfig" returned a null meaning that the visual\r
@@ -568,25 +563,25 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
         if( !( fgState.DisplayMode & GLUT_DOUBLE ) )\r
         {\r
             fgState.DisplayMode |= GLUT_DOUBLE ;\r
-            window->Window.FBConfig = fgChooseFBConfig( &num_FBConfigs );\r
+            window->Window.pContext.FBConfig = fgChooseFBConfig( &num_FBConfigs );\r
             fgState.DisplayMode &= ~GLUT_DOUBLE;\r
         }\r
 \r
         if( fgState.DisplayMode & GLUT_MULTISAMPLE )\r
         {\r
             fgState.DisplayMode &= ~GLUT_MULTISAMPLE ;\r
-            window->Window.FBConfig = fgChooseFBConfig( &num_FBConfigs );\r
+            window->Window.pContext.FBConfig = fgChooseFBConfig( &num_FBConfigs );\r
             fgState.DisplayMode |= GLUT_MULTISAMPLE;\r
         }\r
     }\r
 \r
-    FREEGLUT_INTERNAL_ERROR_EXIT( window->Window.FBConfig != NULL,\r
+    FREEGLUT_INTERNAL_ERROR_EXIT( window->Window.pContext.FBConfig != NULL,\r
                                   "FBConfig with necessary capabilities not found", "fgOpenWindow" );\r
 \r
     /*  Get the X visual.  */\r
     for (i = 0; i < num_FBConfigs; i++) {\r
            visualInfo = glXGetVisualFromFBConfig( fgDisplay.Display,\r
-                                                  window->Window.FBConfig[i] );\r
+                                                  window->Window.pContext.FBConfig[i] );\r
            if (visualInfo)\r
                break;\r
     }\r
@@ -755,7 +750,7 @@ void fgPlatformCloseWindow( SFG_Window* window )
 {\r
     if( window->Window.Context )\r
         glXDestroyContext( fgDisplay.Display, window->Window.Context );\r
-    XFree( window->Window.FBConfig );\r
+    XFree( window->Window.pContext.FBConfig );\r
 \r
     if( window->Window.Handle ) {\r
         XDestroyWindow( fgDisplay.Display, window->Window.Handle );\r
@@ -991,14 +986,6 @@ int FGAPIENTRY glutCreateWindow( const char* title )
                            GL_FALSE, GL_FALSE )->ID;\r
 }\r
 \r
-#if TARGET_HOST_MS_WINDOWS\r
-int FGAPIENTRY __glutCreateWindowWithExit( const char *title, void (__cdecl *exit_function)(int) )\r
-{\r
-  __glutExitFunc = exit_function;\r
-  return glutCreateWindow( title );\r
-}\r
-#endif\r
-\r
 /*\r
  * This function creates a sub window.\r
  */\r