X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_gamemode.c;h=afa0e7a4ace638d46810b76156d7ccd395de077a;hb=34904da12798fd5b88442c816ac8dd7c41edcc33;hp=21484add09dfcd0c51344a2dce773fc848962a11;hpb=b6b35f14c7152d19facbeeea36d4c086290dae54;p=freeglut diff --git a/src/freeglut_gamemode.c b/src/freeglut_gamemode.c index 21484ad..afa0e7a 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, @@ -101,13 +101,16 @@ void fghRememberState( void ) 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 +#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE /* DEVMODE devMode; */ - + /* * Grab the current desktop settings... */ @@ -195,10 +198,13 @@ 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 +#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE /* * Restore the previously rememebered desktop display settings @@ -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 +#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE 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? @@ -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. @@ -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;