* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <GL/freeglut.h>
#include "freeglut_internal.h"
GL_FALSE, /* UseCurrentContext */
GL_FALSE, /* GLDebugSwitch */
GL_FALSE, /* XSyncSwitch */
- GL_TRUE, /* KeyRepeat */
+ GLUT_KEY_REPEAT_ON, /* KeyRepeat */
0xffffffff, /* Modifiers */
0, /* FPSInterval */
0, /* SwapCount */
GLUT_ACTION_EXIT, /* ActionOnWindowClose */
GLUT_EXEC_STATE_INIT, /* ExecState */
NULL, /* ProgramName */
- GL_FALSE /* JoysticksInitialised */
+ GL_FALSE, /* JoysticksInitialised */
+ GL_FALSE /* InputDevsInitialised */
};
ReleaseDC( desktop, context );
}
+ /* Set the timer granularity to 1 ms */
+ timeBeginPeriod ( 1 );
+
#endif
fgState.Initialised = GL_TRUE;
+
+ /* InputDevice uses GlutTimerFunc(), so fgState.Initialised must be TRUE */
+ fgInitialiseInputDevices();
}
/*
#if !TARGET_HOST_WINCE
if ( fgState.JoysticksInitialised )
fgJoystickClose( );
+
+ if ( fgState.InputDevsInitialised )
+ fgInputDeviceClose( );
#endif /* !TARGET_HOST_WINCE */
fgState.JoysticksInitialised = GL_FALSE;
+ fgState.InputDevsInitialised = GL_FALSE;
fgState.Initialised = GL_FALSE;
fgState.ActionOnWindowClose = GLUT_ACTION_EXIT;
fgState.ExecState = GLUT_EXEC_STATE_INIT;
- fgState.KeyRepeat = GL_TRUE;
+ fgState.KeyRepeat = GLUT_KEY_REPEAT_ON;
fgState.Modifiers = 0xffffffff;
fgState.GameModeSize.X = 640;
fgState.ProgramName = NULL;
}
-
#if TARGET_HOST_UNIX_X11
/*
*/
XCloseDisplay( fgDisplay.Display );
+#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
+
+ /* Reset the timer granularity */
+ timeEndPeriod ( 1 );
+
#endif
fgState.Initialised = GL_FALSE;
/* -- INIT DISPLAY STRING PARSING ------------------------------------------ */
-#define NUM_TOKENS 36
static char* Tokens[] =
{
"alpha", "acca", "acc", "blue", "buffer", "conformant", "depth", "double",
"xstaticgray", "xgrayscale", "xstaticcolor", "xpseudocolor",
"xtruecolor", "xdirectcolor",
"xstaticgrey", "xgreyscale", "xstaticcolour", "xpseudocolour",
- "xtruecolour", "xdirectcolour", "borderless"
-};
-
-static int TokenLengths[] =
-{
- 5, 4, 3, 4, 6, 10, 5, 6,
- 5, 5, 3, 3, 4, 3, 9, 7,
- 6, 6, 7, 4, 8, 8, 7,
- 11, 10, 12, 12,
- 10, 12,
- 11, 10, 13, 13,
- 11, 13, 10
+ "xtruecolour", "xdirectcolour", "borderless", "aux"
};
+#define NUM_TOKENS (sizeof(Tokens) / sizeof(*Tokens))
void FGAPIENTRY glutInitDisplayString( const char* displayMode )
{
int i ;
for ( i = 0; i < NUM_TOKENS; i++ )
{
- if ( strncmp ( token, Tokens[i], TokenLengths[i] ) == 0 ) break ;
+ if ( strcmp ( token, Tokens[i] ) == 0 ) break ;
}
switch ( i )
#endif
break ;
- case 36 : /* Unrecognized */
+ case 36 : /* "aux": some number of aux buffers */
+ glut_state_flag |= GLUT_AUX1;
+ break ;
+
+ case 37 : /* Unrecognized */
fgWarning ( "WARNING - Display string token not recognized: %s",
token );
break ;