#include "config.h"
#endif
-#include "../include/GL/freeglut.h"
+#include <GL/freeglut.h>
#include "freeglut_internal.h"
/*
GL_FALSE, /* UseCurrentContext */
GL_FALSE, /* GLDebugSwitch */
GL_FALSE, /* XSyncSwitch */
- GL_TRUE, /* IgnoreKeyRepeat */
+ GL_FALSE, /* IgnoreKeyRepeat */
0xffffffff, /* Modifiers */
0, /* FPSInterval */
0, /* SwapCount */
{ { 0, 0 }, GL_FALSE },
#endif
{ NULL, NULL }, /* Timers */
+ { NULL, NULL }, /* FreeTimers */
NULL, /* IdleCallback */
0, /* ActiveMenus */
NULL, /* MenuStateCallback */
#endif
fgJoystickInit( 0 );
+ fgJoystickInit( 1 );
fgState.Initialised = GL_TRUE;
}
fgDestroyStructure( );
- while( timer = ( SFG_Timer * )fgState.Timers.First )
+ while( (timer = fgState.Timers.First) )
{
- fgListRemove ( &fgState.Timers, &timer->Node );
+ fgListRemove( &fgState.Timers, &timer->Node );
+ free( timer );
+ }
+
+ while( (timer = fgState.FreeTimers.First) )
+ {
+ fgListRemove( &fgState.FreeTimers, &timer->Node );
free( timer );
}
fgState.Time.Set = GL_FALSE;
- fgState.Timers.First = fgState.Timers.Last = NULL;
+ fgListInit( &fgState.Timers );
+ fgListInit( &fgState.FreeTimers );
+
fgState.IdleCallback = NULL;
fgState.MenuStateCallback = ( FGCBMenuState )NULL;
fgState.MenuStatusCallback = ( FGCBMenuStatus )NULL;
free( fgState.ProgramName );
fgState.ProgramName = NULL;
}
-
+
#if TARGET_HOST_UNIX_X11
* It returns a bitmask that indicates which of the four values
* were actually found in the string. For each value found,
* the corresponding argument is updated; for each value
- * not found, the corresponding argument is left unchanged.
+ * not found, the corresponding argument is left unchanged.
*/
static int
{
register int Result = 0;
int Sign = 1;
-
+
if (*string == '+')
string++;
else if (*string == '-')
strind = (char *)string;
if (*strind != '+' && *strind != '-' && *strind != 'x') {
tempWidth = ReadInteger(strind, &nextCharacter);
- if (strind == nextCharacter)
+ if (strind == nextCharacter)
return 0;
strind = nextCharacter;
mask |= WidthValue;
const char *fps = getenv( "GLUT_FPS" );
if( fps )
{
- sscanf( fps, "%d", &fgState.FPSInterval );
- if( fgState.FPSInterval <= 0 )
- fgState.FPSInterval = 5000; /* 5000 milliseconds */
+ int interval;
+ sscanf( fps, "%d", &interval );
+
+ if( interval <= 0 )
+ fgState.FPSInterval = 5000; /* 5000 millisecond default */
+ else
+ fgState.FPSInterval = interval;
}
}
}
/*
- * Have the display created now. As I am too lazy to implement
- * the program arguments parsing, we will have the DISPLAY
- * environment variable used for opening the X display:
- *
- * XXX The above comment is rather unclear. We have just
- * XXX completed parsing of the program arguments for GLUT
- * XXX parameters. We obviously canNOT parse the application-
- * XXX specific parameters. Can someone re-write the above
- * XXX more clearly?
+ * Have the display created now. If there wasn't a "-display"
+ * in the program arguments, we will use the DISPLAY environment
+ * variable for opening the X display (see code above):
*/
fgInitialize( displayName );