X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_init.c;h=0853d35ceca683c7bcdf40bc9f808c3bde2a6696;hb=006650e1dd72e73249d41e2bcea8b1668262a999;hp=2e18660c4e1e0de3b81532469f5a32a4d7e0268f;hpb=d67937396dc33c86017012859b2d9ed010fc6c88;p=freeglut diff --git a/src/freeglut_init.c b/src/freeglut_init.c index 2e18660..0853d35 100644 --- a/src/freeglut_init.c +++ b/src/freeglut_init.c @@ -59,8 +59,7 @@ SFG_State fgState = { { -1, -1, GL_FALSE }, /* Position */ { 300, 300, GL_TRUE }, /* Size */ GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH, /* DisplayMode */ GL_FALSE, /* Initialised */ - GL_FALSE, /* ForceDirectContext */ - GL_TRUE, /* TryDirectContext */ + GLUT_TRY_DIRECT_CONTEXT, /* DirectContext */ GL_FALSE, /* ForceIconic */ GL_FALSE, /* UseCurrentContext */ GL_FALSE, /* GLDebugSwitch */ @@ -86,7 +85,8 @@ SFG_State fgState = { { -1, -1, GL_FALSE }, /* Position */ 72, /* GameModeRefresh */ GLUT_ACTION_EXIT, /* ActionOnWindowClose */ GLUT_EXEC_STATE_INIT, /* ExecState */ - NULL /* ProgramName */ + NULL, /* ProgramName */ + GL_FALSE /* JoysticksInitialised */ }; @@ -95,7 +95,7 @@ SFG_State fgState = { { -1, -1, GL_FALSE }, /* Position */ /* * A call to this function should initialize all the display stuff... */ -void fgInitialize( const char* displayName ) +static void fghInitialize( const char* displayName ) { #if TARGET_HOST_UNIX_X11 fgDisplay.Display = XOpenDisplay( displayName ); @@ -133,9 +133,7 @@ void fgInitialize( const char* displayName ) fgDisplay.Connection = ConnectionNumber( fgDisplay.Display ); - /* - * Create the window deletion atom - */ + /* Create the window deletion atom */ fgDisplay.DeleteWindow = XInternAtom( fgDisplay.Display, "WM_DELETE_WINDOW", @@ -147,9 +145,7 @@ void fgInitialize( const char* displayName ) WNDCLASS wc; ATOM atom; - /* - * What we need to do is to initialize the fgDisplay global structure here. - */ + /* What we need to do is to initialize the fgDisplay global structure here. */ fgDisplay.Instance = GetModuleHandle( NULL ); atom = GetClassInfo( fgDisplay.Instance, _T("FREEGLUT"), &wc ); @@ -173,11 +169,11 @@ void fgInitialize( const char* displayName ) wc.hIcon = LoadIcon( fgDisplay.Instance, _T("GLUT_ICON") ); #if TARGET_HOST_WIN32 - wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW; + wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW; if (!wc.hIcon) wc.hIcon = LoadIcon( NULL, IDI_WINLOGO ); -#else //TARGET_HOST_WINCE - wc.style = CS_HREDRAW | CS_VREDRAW; +#else /* TARGET_HOST_WINCE */ + wc.style = CS_HREDRAW | CS_VREDRAW; #endif wc.hCursor = LoadCursor( NULL, IDC_ARROW ); @@ -185,16 +181,12 @@ void fgInitialize( const char* displayName ) wc.lpszMenuName = NULL; wc.lpszClassName = _T("FREEGLUT"); - /* - * Register the window class - */ + /* Register the window class */ atom = RegisterClass( &wc ); assert( atom ); } - /* - * The screen dimensions can be obtained via GetSystemMetrics() calls - */ + /* The screen dimensions can be obtained via GetSystemMetrics() calls */ fgDisplay.ScreenWidth = GetSystemMetrics( SM_CXSCREEN ); fgDisplay.ScreenHeight = GetSystemMetrics( SM_CYSCREEN ); @@ -210,11 +202,6 @@ void fgInitialize( const char* displayName ) #endif -#if !TARGET_HOST_WINCE - fgJoystickInit( 0 ); - fgJoystickInit( 1 ); -#endif //!TARGET_HOST_WINCE - fgState.Initialised = GL_TRUE; } @@ -234,9 +221,7 @@ void fgDeinitialize( void ) /* fgState.Initialised = GL_FALSE; */ - /* - * If there was a menu created, destroy the rendering context - */ + /* If there was a menu created, destroy the rendering context */ if( fgStructure.MenuContext ) { free( fgStructure.MenuContext ); @@ -258,8 +243,10 @@ void fgDeinitialize( void ) } #if !TARGET_HOST_WINCE - fgJoystickClose( ); -#endif //!TARGET_HOST_WINCE + if ( fgState.JoysticksInitialised ) + fgJoystickClose( ); +#endif /* !TARGET_HOST_WINCE */ + fgState.JoysticksInitialised = GL_FALSE; fgState.Initialised = GL_FALSE; @@ -273,8 +260,7 @@ void fgDeinitialize( void ) fgState.DisplayMode = GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH; - fgState.ForceDirectContext = GL_FALSE; - fgState.TryDirectContext = GL_TRUE; + fgState.DirectContext = GLUT_TRY_DIRECT_CONTEXT; fgState.ForceIconic = GL_FALSE; fgState.UseCurrentContext = GL_FALSE; fgState.GLDebugSwitch = GL_FALSE; @@ -570,21 +556,21 @@ void FGAPIENTRY glutInit( int* pargc, char** argv ) } else if( strcmp( argv[ i ], "-direct" ) == 0) { - if( ! fgState.TryDirectContext ) + if( fgState.DirectContext == GLUT_FORCE_INDIRECT_CONTEXT ) fgError( "parameters ambiguity, -direct and -indirect " "cannot be both specified" ); - fgState.ForceDirectContext = GL_TRUE; + fgState.DirectContext = GLUT_FORCE_DIRECT_CONTEXT; argv[ i ] = NULL; ( *pargc )--; } else if( strcmp( argv[ i ], "-indirect" ) == 0 ) { - if( fgState.ForceDirectContext ) + if( fgState.DirectContext == GLUT_FORCE_DIRECT_CONTEXT ) fgError( "parameters ambiguity, -direct and -indirect " "cannot be both specified" ); - fgState.TryDirectContext = GL_FALSE; + fgState.DirectContext = GLUT_FORCE_INDIRECT_CONTEXT; argv[ i ] = NULL; (*pargc)--; } @@ -623,14 +609,14 @@ void FGAPIENTRY glutInit( int* pargc, char** argv ) } } -#endif //TARGET_HOST_WINCE +#endif /* TARGET_HOST_WINCE */ /* * 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 ); + fghInitialize( displayName ); /* * Geometry parsing deffered until here because we may need the screen @@ -690,9 +676,7 @@ void FGAPIENTRY glutInitWindowSize( int width, int height ) */ void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode ) { - /* - * We will make use of this value when creating a new OpenGL context... - */ + /* We will make use of this value when creating a new OpenGL context... */ fgState.DisplayMode = displayMode; } @@ -734,9 +718,7 @@ void FGAPIENTRY glutInitDisplayString( const char* displayMode ) token = strtok ( buffer, " \t" ); while ( token ) { - /* - * Process this token - */ + /* Process this token */ int i ; for ( i = 0; i < NUM_TOKENS; i++ ) { @@ -892,9 +874,7 @@ void FGAPIENTRY glutInitDisplayString( const char* displayMode ) free ( buffer ); - /* - * We will make use of this value when creating a new OpenGL context... - */ + /* We will make use of this value when creating a new OpenGL context... */ fgState.DisplayMode = glut_state_flag; }