First attempt at adding John Tsiombikas' spaceball support for X11. It compiles...
[freeglut] / src / freeglut_init.c
index b419025..7893f05 100644 (file)
@@ -89,7 +89,8 @@ SFG_State fgState = { { -1, -1, GL_FALSE },  /* Position */
                       4,                      /* SampleNumber */
                       1,                      /* MajorVersion */
                       0,                      /* MajorVersion */
-                      0                       /* ContextFlags */
+                      0,                      /* ContextFlags */
+                      0                       /* ContextProfile */
 };
 
 
@@ -425,6 +426,7 @@ void fgDeinitialize( void )
     fgState.MajorVersion = 1;
     fgState.MinorVersion = 0;
     fgState.ContextFlags = 0;
+    fgState.ContextProfile = 0;
 
     fgState.Initialised = GL_FALSE;
 
@@ -681,8 +683,10 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
     /* will return true for VC8 (VC2005) and higher */
 #if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
     size_t sLen;
+#if HAVE_ERRNO
     errno_t err;
 #endif
+#endif
 
     if( fgState.Initialised )
         fgError( "illegal glutInit() reinitialization attempt" );
@@ -704,7 +708,7 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
 #ifndef _WIN32_WCE
     {
     /* will return true for VC8 (VC2005) and higher */
-#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) && HAVE_ERRNO
         char* fps = NULL;
         err = _dupenv_s( &fps, &sLen, "GLUT_FPS" );
         if (err)
@@ -723,13 +727,13 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
                 fgState.FPSInterval = interval;
         }
     /* will return true for VC8 (VC2005) and higher */
-#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) && HAVE_ERRNO
         free ( fps );  fps = NULL;  /* dupenv_s allocates a string that we must free */
 #endif
     }
 
     /* will return true for VC8 (VC2005) and higher */
-#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) && HAVE_ERRNO
     err = _dupenv_s( &displayName, &sLen, "DISPLAY" );
     if (err)
         fgError("Error getting DISPLAY environment variable");
@@ -821,7 +825,7 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
      */
     fghInitialize( displayName );
     /* will return true for VC8 (VC2005) and higher */
-#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) && HAVE_ERRNO
     free ( displayName );  displayName = NULL;  /* dupenv_s allocates a string that we must free */
 #endif
 
@@ -854,7 +858,7 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
     }
 }
 
-#ifdef TARGET_HOST_MS_WINDOWS
+#if TARGET_HOST_MS_WINDOWS
 void (__cdecl *__glutExitFunc)( int return_value ) = NULL;
 
 void FGAPIENTRY __glutInitWithExit( int *pargc, char **argv, void (__cdecl *exit_function)(int) )
@@ -1153,4 +1157,10 @@ void FGAPIENTRY glutInitContextFlags( int flags )
     fgState.ContextFlags = flags;
 }
 
+void FGAPIENTRY glutInitContextProfile( int profile )
+{
+    /* We will make use of this value when creating a new OpenGL context... */
+    fgState.ContextProfile = profile;
+}
+
 /*** END OF FILE ***/