X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_gamemode.c;h=703005dd5d1700c5a63c88274cbaf95cdc2fb0ec;hb=d6ccf7c81bdad11e6902a258e8e21fdbe6b9f968;hp=1d5397e65e634bc01924f93bbdf726891ea5dc55;hpb=0bcc32314bdf57536d3cce47eb1c501c8dde4b40;p=freeglut diff --git a/src/freeglut_gamemode.c b/src/freeglut_gamemode.c index 1d5397e..703005d 100644 --- a/src/freeglut_gamemode.c +++ b/src/freeglut_gamemode.c @@ -29,7 +29,7 @@ #include "config.h" #endif -#include "../include/GL/freeglut.h" +#include #include "freeglut_internal.h" /* @@ -89,7 +89,7 @@ void fghRememberState( void ) /* * Query the current display settings: */ - fgDisplay.DisplayModeValid = + fgDisplay.DisplayModeValid = XF86VidModeGetModeLine( fgDisplay.Display, fgDisplay.Screen, @@ -97,17 +97,20 @@ void fghRememberState( void ) &fgDisplay.DisplayMode ); - if (!fgDisplay.DisplayModeValid) + if( !fgDisplay.DisplayModeValid ) fgWarning( "Runtime use of XF86VidModeGetModeLine failed.\n" ); # else -# warning fghRememberState: missing XFree86 video mode extensions, game mode will not change screen resolution when activated + /* + * XXX warning fghRememberState: missing XFree86 video mode extensions, + * XXX game mode will not change screen resolution when activated + */ # endif #elif TARGET_HOST_WIN32 /* DEVMODE devMode; */ - + /* * Grab the current desktop settings... */ @@ -148,7 +151,7 @@ void fghRestoreState( void ) * not approved as X Consortium standards */ - if (fgDisplay.DisplayModeValid) + if( fgDisplay.DisplayModeValid ) { XF86VidModeModeInfo** displayModes; int i, displayModesCount; @@ -195,7 +198,10 @@ void fghRestoreState( void ) } # else -# warning fghRestoreState: missing XFree86 video mode extensions, game mode will not change screen resolution when activated + /* + * XXX warning fghRestoreState: missing XFree86 video mode extensions, + * XXX game mode will not change screen resolution when activated + */ # endif #elif TARGET_HOST_WIN32 @@ -216,10 +222,10 @@ GLboolean fghCheckDisplayMode( int width, int height, int depth, int refresh ) /* * The desired values should be stored in fgState structure... */ - return( (width == fgState.GameModeSize.X) && - (height == fgState.GameModeSize.Y) && - (depth == fgState.GameModeDepth) && - (refresh == fgState.GameModeRefresh) ); + return ( width == fgState.GameModeSize.X ) && + ( height == fgState.GameModeSize.Y ) && + ( depth == fgState.GameModeDepth ) && + (refresh == fgState.GameModeRefresh ); } /* @@ -239,7 +245,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) * This is also used by applcations which check modes by calling * glutGameModeGet(GLUT_GAME_MODE_POSSIBLE), so allow the check: */ - if (haveToTest || fgDisplay.DisplayModeValid) + if( haveToTest || fgDisplay.DisplayModeValid ) { XF86VidModeModeInfo** displayModes; int i, displayModesCount; @@ -262,7 +268,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) fgState.GameModeRefresh ) ) { if( haveToTest ) - return TRUE; + return GL_TRUE; /* * OKi, this is the display mode we have been looking for... */ @@ -271,7 +277,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) fgDisplay.Screen, displayModes[ i ] ); - return TRUE; + return GL_TRUE; } } } @@ -279,16 +285,19 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) /* * Something must have went wrong */ - return FALSE; + return GL_FALSE; # else -# warning fghChangeDisplayMode: missing XFree86 video mode extensions, game mode will not change screen resolution when activated + /* + * XXX warning fghChangeDisplayMode: missing XFree86 video mode extensions, + * XXX game mode will not change screen resolution when activated + */ # endif #elif TARGET_HOST_WIN32 unsigned int displayModes = 0, mode = 0xffffffff; - GLboolean success = FALSE; + GLboolean success = GL_FALSE; /* HDC desktopDC; */ DEVMODE devMode; @@ -296,7 +305,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) * Enumerate the available display modes * Try to get a complete match */ - while( EnumDisplaySettings( NULL, displayModes, &devMode ) == TRUE ) + while( EnumDisplaySettings( NULL, displayModes, &devMode ) ) { /* * Does the enumerated display mode match the user's preferences? @@ -311,7 +320,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) displayModes++; } - if ( mode == 0xffffffff ) + if( mode == 0xffffffff ) { /* then try without Display Frequency */ displayModes = 0; @@ -319,7 +328,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) /* * Enumerate the available display modes */ - while( EnumDisplaySettings( NULL, displayModes, &devMode ) == TRUE ) + while( EnumDisplaySettings( NULL, displayModes, &devMode ) ) { /* then try without Display Frequency */ if( fghCheckDisplayMode( devMode.dmPelsWidth, @@ -413,21 +422,23 @@ void FGAPIENTRY glutGameModeString( const char* string ) int FGAPIENTRY glutEnterGameMode( void ) { if( fgStructure.GameMode ) - fgAddToWindowDestroyList( fgStructure.GameMode, TRUE ); + fgAddToWindowDestroyList( fgStructure.GameMode ); else fghRememberState( ); - if( fghChangeDisplayMode( FALSE ) == FALSE ) + if( ! fghChangeDisplayMode( GL_FALSE ) ) { fgWarning( "failed to change screen settings" ); return FALSE; } - fgStructure.GameMode = fgCreateWindow( + fgStructure.GameMode = fgCreateWindow( NULL, "FREEGLUT", 0, 0, - fgState.GameModeSize.X, fgState.GameModeSize.Y, TRUE + fgState.GameModeSize.X, fgState.GameModeSize.Y, GL_TRUE, GL_FALSE ); + fgStructure.GameMode->State.IsGameMode = GL_TRUE; + #if TARGET_HOST_UNIX_X11 /* Move the window up to the topleft corner */ @@ -442,7 +453,7 @@ int FGAPIENTRY glutEnterGameMode( void ) /* Move the Pointer to the middle of the fullscreen window */ XWarpPointer( fgDisplay.Display, - None, + None, fgDisplay.RootWindow, 0, 0, 0, 0, fgState.GameModeSize.X/2, fgState.GameModeSize.Y/2 @@ -465,7 +476,7 @@ int FGAPIENTRY glutEnterGameMode( void ) GrabModeAsync, GrabModeAsync, fgStructure.GameMode->Window.Handle, None, CurrentTime) ) usleep( 100 ); - + /* * Change input focus to the new window. This will exit the application * if the new window is not viewable yet, see the XGrabPointer loop above. @@ -479,7 +490,7 @@ int FGAPIENTRY glutEnterGameMode( void ) # ifdef X_XF86VidModeSetViewPort - if (fgDisplay.DisplayModeValid) + if( fgDisplay.DisplayModeValid ) { int x, y; Window child; @@ -534,7 +545,9 @@ void FGAPIENTRY glutLeaveGameMode( void ) { freeglut_return_if_fail( fgStructure.GameMode ); - fgAddToWindowDestroyList( fgStructure.GameMode, TRUE ); + fgStructure.GameMode->State.IsGameMode = GL_FALSE; + + fgAddToWindowDestroyList( fgStructure.GameMode ); #if TARGET_HOST_UNIX_X11 @@ -557,7 +570,7 @@ int FGAPIENTRY glutGameModeGet( GLenum eWhat ) return !!fgStructure.GameMode; case GLUT_GAME_MODE_POSSIBLE: - return fghChangeDisplayMode( TRUE ); + return fghChangeDisplayMode( GL_TRUE ); case GLUT_GAME_MODE_WIDTH: return fgState.GameModeSize.X;