Fixing a 'gamemode at_exit' bug courtesy of Diederick Niehorster per e-mail dated...
[freeglut] / src / freeglut_init.c
index d113ab7..cdb9e66 100644 (file)
@@ -86,10 +86,11 @@ SFG_State fgState = { { -1, -1, GL_FALSE },  /* Position */
                       GL_FALSE,               /* JoysticksInitialised */
                       0,                      /* NumActiveJoysticks */
                       GL_FALSE,               /* InputDevsInitialised */
+                      0,                      /* MouseWheelTicks */
                       1,                      /* AuxiliaryBufferNumber */
                       4,                      /* SampleNumber */
                       1,                      /* MajorVersion */
-                      0,                      /* MajorVersion */
+                      0,                      /* MinorVersion */
                       0,                      /* ContextFlags */
                       0,                      /* ContextProfile */
                       NULL,                   /* ErrorFunc */
@@ -389,6 +390,7 @@ static void fghInitialize( const char* displayName )
 #endif
 
     fgState.Initialised = GL_TRUE;
+    atexit(fgDeinitialize);
 
     /* InputDevice uses GlutTimerFunc(), so fgState.Initialised must be TRUE */
     fgInitialiseInputDevices();
@@ -403,8 +405,6 @@ void fgDeinitialize( void )
 
     if( !fgState.Initialised )
     {
-        fgWarning( "fgDeinitialize(): "
-                   "no valid initialization has been performed" );
         return;
     }
 
@@ -443,6 +443,8 @@ void fgDeinitialize( void )
     fgState.JoysticksInitialised = GL_FALSE;
     fgState.InputDevsInitialised = GL_FALSE;
 
+       fgState.MouseWheelTicks = 0;
+
     fgState.MajorVersion = 1;
     fgState.MinorVersion = 0;
     fgState.ContextFlags = 0;
@@ -1162,7 +1164,7 @@ void FGAPIENTRY glutInitErrorFunc( void (* vfgError) ( const char *fmt, va_list
 void FGAPIENTRY glutInitWarningFunc( void (* vfgWarning) ( const char *fmt, va_list ap ) )
 {
     /* This allows user programs to handle freeglut warnings */
-    fgState.ErrorFunc = vfgWarning;
+    fgState.WarningFunc = vfgWarning;
 }
 
 /*** END OF FILE ***/