From: Brian Paul Date: Fri, 20 Jun 2003 14:39:16 +0000 (+0000) Subject: Windows patches (Eero Pajarre) X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=commitdiff_plain;ds=sidebyside;h=d0ce50a0da001bb3f076bab3d0adcc639ed40b5f;p=freeglut Windows patches (Eero Pajarre) git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@89 7f0cb862-5218-0410-a997-914c9d46530a --- diff --git a/freeglut-1.3/freeglut_gamemode.c b/freeglut-1.3/freeglut_gamemode.c index 5b4eff3..e9e9276 100644 --- a/freeglut-1.3/freeglut_gamemode.c +++ b/freeglut-1.3/freeglut_gamemode.c @@ -255,6 +255,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) /* * Enumerate the available display modes + * Try to get a complete match */ while( EnumDisplaySettings( NULL, displayModes, &devMode ) == TRUE ) { @@ -262,7 +263,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) * Does the enumerated display mode match the user's preferences? */ if( fghCheckDisplayMode( devMode.dmPelsWidth, devMode.dmPelsHeight, - devMode.dmBitsPerPel, fgState.GameModeRefresh ) ) + devMode.dmBitsPerPel, devMode.dmDisplayFrequency ) ) { /* * OKi, we've found a matching display mode, remember its number and break @@ -277,6 +278,35 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest ) displayModes++; } + if( mode == 0xffffffff ) + { + /* then try without Display Frequency */ + displayModes=0; + + /* + * Enumerate the available display modes + */ + while( EnumDisplaySettings( NULL, displayModes, &devMode ) == TRUE ) + { + /* then try without Display Frequency */ + + if( fghCheckDisplayMode( devMode.dmPelsWidth, devMode.dmPelsHeight, + devMode.dmBitsPerPel, fgState.GameModeRefresh)) + { + /* + * OKi, we've found a matching display mode, remember its number and break + */ + mode = displayModes; + break; + } + + /* + * Switch to the next display mode, if any + */ + displayModes++; + } + } + /* * Did we find a matching display mode? */ diff --git a/freeglut-1.3/freeglut_state.c b/freeglut-1.3/freeglut_state.c index 6a13db4..cb40f05 100644 --- a/freeglut-1.3/freeglut_state.c +++ b/freeglut-1.3/freeglut_state.c @@ -364,7 +364,8 @@ int FGAPIENTRY glutGet( GLenum eWhat ) /* * ...then we've got to correct the results we've just received... */ - if ( fgStructure.Window->Parent == NULL ) + if (fgStructure.GameMode != fgStructure.Window && + fgStructure.Window->Parent == NULL ) { winRect.left += GetSystemMetrics( SM_CXSIZEFRAME ); winRect.right -= GetSystemMetrics( SM_CXSIZEFRAME );