Implementing Jocelyn Frechot's changes -- see e-mail of Thursday, 11/8/2007 9:12 AM.
[freeglut] / src / freeglut_init.c
index 702f1e5..054285e 100644 (file)
@@ -65,11 +65,7 @@ SFG_State fgState = { { -1, -1, GL_FALSE },  /* Position */
                       0,                     /* FPSInterval */
                       0,                     /* SwapCount */
                       0,                     /* SwapTime */
-#if TARGET_HOST_MS_WINDOWS
-                      { 0, GL_FALSE },       /* Time */
-#else
-                      { { 0, 0 }, GL_FALSE },
-#endif
+                      0,                     /* Time */
                       { NULL, NULL },         /* Timers */
                       { NULL, NULL },         /* FreeTimers */
                       NULL,                   /* IdleCallback */
@@ -83,7 +79,9 @@ SFG_State fgState = { { -1, -1, GL_FALSE },  /* Position */
                       GLUT_EXEC_STATE_INIT,   /* ExecState */
                       NULL,                   /* ProgramName */
                       GL_FALSE,               /* JoysticksInitialised */
-                      GL_FALSE                /* InputDevsInitialised */
+                      GL_FALSE,               /* InputDevsInitialised */
+                      0,                      /* AuxiliaryBufferNumber */
+                      0                       /* SampleNumber */
 };
 
 
@@ -285,8 +283,6 @@ void fgDeinitialize( void )
     fgState.GameModeDepth   =  16;
     fgState.GameModeRefresh =  72;
 
-    fgState.Time.Set = GL_FALSE;
-
     fgListInit( &fgState.Timers );
     fgListInit( &fgState.FreeTimers );
 
@@ -524,7 +520,8 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
 
     fgCreateStructure( );
 
-    fgElapsedTime( );
+    /* Get start time */
+    fgState.Time = fgSystemTime();
 
     /* check if GLUT_FPS env var is set */
 #ifndef _WIN32_WCE
@@ -658,6 +655,14 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
 }
 
 /*
+ * Undoes all the "glutInit" stuff
+ */
+void FGAPIENTRY glutExit ( void )
+{
+  fgDeinitialize ();
+}
+
+/*
  * Sets the default initial window position for new windows
  */
 void FGAPIENTRY glutInitWindowPosition( int x, int y )
@@ -717,7 +722,7 @@ void FGAPIENTRY glutInitDisplayString( const char* displayMode )
      * delimited by blanks or tabs.
      */
     char *token ;
-    int len = strlen ( displayMode );
+    size_t len = strlen ( displayMode );
     char *buffer = (char *)malloc ( (len+1) * sizeof(char) );
     memcpy ( buffer, displayMode, len );
     buffer[len] = '\0';
@@ -890,7 +895,7 @@ void FGAPIENTRY glutInitDisplayString( const char* displayMode )
             break ;
 
         case 36 :  /* "aux":  some number of aux buffers */
-            glut_state_flag |= GLUT_AUX1;
+            glut_state_flag |= GLUT_AUX;
             break ;
 
         case 37 :  /* Unrecognized */