return;
}
- // needed if last screen was the setup screen and fullscreen state changed
- // (moved to "execSetupGraphics()" to change fullscreen state directly)
- // ToggleFullscreenOrChangeWindowScalingIfNeeded();
-
// leveldir_current may be invalid (level group, parent link)
if (!validLevelSeries(leveldir_current))
leveldir_current = getFirstValidTreeInfoEntry(leveldir_last_valid);
if (setup_mode == SETUP_MODE_CHOOSE_WINDOW_SIZE)
execSetupGraphics_setWindowSizes(FALSE);
+ // update "setup.vsync_mode" from list selection
+ // (in this case, vsync mode was changed on setup screen)
+ if (setup_mode == SETUP_MODE_CHOOSE_VSYNC)
+ execSetupGraphics_setVsyncModes(FALSE);
+
// update list selection from "setup.window_scaling_percent"
// (window scaling may have changed by resizing the window)
execSetupGraphics_setWindowSizes(TRUE);
+ // update list selection from "setup.vsync_mode"
+ // (vsync_mode may have changed by re-creating the renderer)
+ execSetupGraphics_setVsyncModes(TRUE);
+
execSetupGraphics_setScalingTypes();
execSetupGraphics_setRenderingModes();
- execSetupGraphics_setVsyncModes(FALSE);
setup_mode = SETUP_MODE_GRAPHICS;
ModifyGameSpeedIfNeeded();
// window scaling may have changed at this point
- ToggleFullscreenOrChangeWindowScalingIfNeeded();
+ ChangeWindowScalingIfNeeded();
// window scaling quality may have changed at this point
if (!strEqual(setup.window_scaling_quality, video.window_scaling_quality))
// screen rendering mode may have changed at this point
SDLSetScreenRenderingMode(setup.screen_rendering_mode);
+ int setup_vsync_mode = VSYNC_MODE_STR_TO_INT(setup.vsync_mode);
+ int video_vsync_mode = video.vsync_mode;
+
// screen vsync mode may have changed at this point
ChangeVsyncModeIfNeeded();
+
+ // check if setting vsync mode to selected value failed
+ if (setup_vsync_mode != video_vsync_mode &&
+ setup_vsync_mode != video.vsync_mode)
+ {
+ // changing vsync mode to selected value failed -- reset displayed value
+ execSetupGraphics_setVsyncModes(TRUE);
+
+ Request("Setting VSync failed!", REQ_CONFIRM);
+
+ DrawSetupScreen();
+ }
}
static void execSetupChooseWindowSize(void)
// fullscreen state may have changed at this point
if (si->value == &setup.fullscreen)
- ToggleFullscreenOrChangeWindowScalingIfNeeded();
+ ToggleFullscreenIfNeeded();
// network mode may have changed at this point
if (si->value == &setup.network_mode)
#if DEBUG_JOYSTICKS
// print info about the joystick we are watching
- Error(ERR_DEBUG, "watching joystick %d: (%s)\n",
+ Debug("joystick", "watching joystick %d: (%s)",
SDL_JoystickInstanceID(joystick), name);
- Error(ERR_DEBUG, "joystick has %d axes, %d hats, %d balls, and %d buttons\n",
+ Debug("joystick", "joystick has %d axes, %d hats, %d balls, and %d buttons",
SDL_JoystickNumAxes(joystick), SDL_JoystickNumHats(joystick),
SDL_JoystickNumBalls(joystick), SDL_JoystickNumButtons(joystick));
#endif
if (success)
{
#if DEBUG_JOYSTICKS
- Error(ERR_DEBUG, "New game controller mapping:\n\n%s\n\n", mapping);
+ Debug("joystick", "New game controller mapping:\n\n%s\n\n", mapping);
#endif
// activate mapping for this game
GameActions(); // main game loop
if (tape.auto_play && !tape.playing)
- AutoPlayTape(); // continue automatically playing next tape
+ AutoPlayTapes(); // continue automatically playing next tape
}