Moving the Windows-specific includes into the Windows-specific header file
[freeglut] / src / mswin / freeglut_init_mswin.c
index d75765f..568170e 100644 (file)
@@ -26,7 +26,7 @@
  */\r
 \r
 #include <GL/freeglut.h>\r
-#include "freeglut_internal_mswin.h"\r
+#include "../Common/freeglut_internal.h"\r
 \r
 \r
 \r
@@ -43,9 +43,9 @@ void fgPlatformInitialize( const char* displayName )
     ATOM atom;\r
 \r
     /* What we need to do is to initialize the fgDisplay global structure here. */\r
-    fgDisplay.Instance = GetModuleHandle( NULL );\r
-    fgDisplay.DisplayName= displayName ? strdup(displayName) : 0 ;\r
-    atom = GetClassInfo( fgDisplay.Instance, _T("FREEGLUT"), &wc );\r
+    fgDisplay.pDisplay.Instance = GetModuleHandle( NULL );\r
+    fgDisplay.pDisplay.DisplayName= displayName ? strdup(displayName) : 0 ;\r
+    atom = GetClassInfo( fgDisplay.pDisplay.Instance, _T("FREEGLUT"), &wc );\r
 \r
     if( atom == 0 )\r
     {\r
@@ -62,8 +62,8 @@ void fgPlatformInitialize( const char* displayName )
         wc.lpfnWndProc    = fgPlatformWindowProc;\r
         wc.cbClsExtra     = 0;\r
         wc.cbWndExtra     = 0;\r
-        wc.hInstance      = fgDisplay.Instance;\r
-        wc.hIcon          = LoadIcon( fgDisplay.Instance, _T("GLUT_ICON") );\r
+        wc.hInstance      = fgDisplay.pDisplay.Instance;\r
+        wc.hIcon          = LoadIcon( fgDisplay.pDisplay.Instance, _T("GLUT_ICON") );\r
 \r
 #if defined(_WIN32_WCE)\r
         wc.style          = CS_HREDRAW | CS_VREDRAW;\r
@@ -97,9 +97,9 @@ void fgPlatformInitialize( const char* displayName )
         ReleaseDC( desktop, context );\r
     }\r
     /* If we have a DisplayName try to use it for metrics */\r
-    if( fgDisplay.DisplayName )\r
+    if( fgDisplay.pDisplay.DisplayName )\r
     {\r
-        HDC context = CreateDC(fgDisplay.DisplayName,0,0,0);\r
+        HDC context = CreateDC(fgDisplay.pDisplay.DisplayName,0,0,0);\r
         if( context )\r
         {\r
            fgDisplay.ScreenWidth  = GetDeviceCaps( context, HORZRES );\r
@@ -147,10 +147,10 @@ void fgPlatformDeinitialiseInputDevices ( void )
 \r
 void fgPlatformCloseDisplay ( void )\r
 {\r
-    if( fgDisplay.DisplayName )\r
+    if( fgDisplay.pDisplay.DisplayName )\r
     {\r
-        free( fgDisplay.DisplayName );\r
-        fgDisplay.DisplayName = NULL;\r
+        free( fgDisplay.pDisplay.DisplayName );\r
+        fgDisplay.pDisplay.DisplayName = NULL;\r
     }\r
 \r
     /* Reset the timer granularity */\r
@@ -329,3 +329,14 @@ int XParseGeometry (
 \r
 \r
 \r
+/* -- PLATFORM-SPECIFIC INTERFACE FUNCTION -------------------------------------------------- */\r
+\r
+\r
+void (__cdecl *__glutExitFunc)( int return_value ) = NULL;\r
+\r
+void FGAPIENTRY __glutInitWithExit( int *pargc, char **argv, void (__cdecl *exit_function)(int) )\r
+{\r
+  __glutExitFunc = exit_function;\r
+  glutInit(pargc, argv);\r
+}\r
+\r