#elif TARGET_HOST_MS_WINDOWS
- /* Restore the previously rememebered desktop display settings */
+ /* Restore the previously remembered desktop display settings */
ChangeDisplaySettingsEx( fgDisplay.DisplayName,&fgDisplay.DisplayMode, 0,0,0 );
#endif
displayModes[ i ]->vdisplay,
fgState.GameModeDepth,
( exactMatch ? refresh : fgState.GameModeRefresh ) ) ) {
+ if (!exactMatch)
+ {
+ /* Update the chosen refresh rate, otherwise a
+ * glutGameModeGet(GLUT_GAME_MODE_REFRESH_RATE) would not
+ * return the right values
+ */
+ fgState.GameModeRefresh = refresh;
+ }
+
return i;
}
}
);
/* Hopefully it worked, and if not, we still have the default values */
- fgState.GameModeSize.X = width;
- fgState.GameModeSize.Y = height;
- fgState.GameModeDepth = depth;
- fgState.GameModeRefresh = refresh;
+ if ( width > 0 ) fgState.GameModeSize.X = width;
+ if ( height > 0 ) fgState.GameModeSize.Y = height;
+ if ( depth > 0 ) fgState.GameModeDepth = depth;
+ if ( refresh > 0 ) fgState.GameModeRefresh = refresh;
}