X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=f71aacbdfbf3ffac0001deb2bb9e58100fd3b13c;hb=68d1418be737276c8214780106399c0dae588d1c;hp=bc63ef9aebf4d4adf4a261908322a13165062566;hpb=d337287c2354ce4d256186e54f5474ecf77a2deb;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index bc63ef9a..f71aacbd 100644 --- a/src/tools.c +++ b/src/tools.c @@ -399,6 +399,7 @@ void BackToFront() // never redraw single tiles, always redraw the whole field // (redrawing single tiles up to a certain threshold was faster on old, // now legacy graphics, but slows things down on modern graphics now) + // UPDATE: this is now globally defined by value of REDRAWTILES_THRESHOLD if (redraw_mask & REDRAW_TILES) redraw_mask |= REDRAW_FIELD; #endif @@ -4171,6 +4172,9 @@ boolean Request(char *text, unsigned int req_state) break; case KSYM_Escape: +#if defined(TARGET_SDL2) + case KSYM_Back: +#endif result = 0; break; @@ -8839,15 +8843,16 @@ void CheckSingleStepMode_EM(byte action[MAX_PLAYERS], int frame, boolean any_player_moving, boolean player_is_dropping) { - int i; - if (tape.single_step && tape.recording && !tape.pausing) { +#if 0 boolean active_players = FALSE; + int i; for (i = 0; i < MAX_PLAYERS; i++) if (action[i] != JOY_NO_ACTION) active_players = TRUE; +#endif // if (frame == 0) if (frame == 0 && !player_is_dropping) @@ -8985,11 +8990,37 @@ void ToggleFullscreenIfNeeded() boolean change_fullscreen_mode = (video.fullscreen_enabled && !strEqual(setup.fullscreen_mode, video.fullscreen_mode_current)); + boolean change_window_scaling_percent = (!video.fullscreen_enabled && + setup.window_scaling_percent != + video.window_scaling_percent); - if (!video.fullscreen_available) + if (change_window_scaling_percent && video.fullscreen_enabled) return; - if (change_fullscreen || change_fullscreen_mode) + if (!change_window_scaling_percent && !video.fullscreen_available) + return; + +#if defined(TARGET_SDL2) + if (change_window_scaling_percent) + { + SDLSetWindowScaling(setup.window_scaling_percent); + + return; + } + else if (change_fullscreen) + { + SDLSetWindowFullscreen(setup.fullscreen); + + /* set setup value according to successfully changed fullscreen mode */ + setup.fullscreen = video.fullscreen_enabled; + + return; + } +#endif + + if (change_fullscreen || + change_fullscreen_mode || + change_window_scaling_percent) { Bitmap *tmp_backbuffer = CreateBitmap(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH); @@ -9002,9 +9033,16 @@ void ToggleFullscreenIfNeeded() video.fullscreen_enabled = FALSE; /* force new fullscreen mode */ } + if (change_window_scaling_percent) + { + /* keep window mode, but change window scaling */ + video.fullscreen_enabled = TRUE; /* force new window scaling */ + } + /* toggle fullscreen */ ChangeVideoModeIfNeeded(setup.fullscreen); + /* set setup value according to successfully changed fullscreen mode */ setup.fullscreen = video.fullscreen_enabled; /* restore backbuffer content from temporary backbuffer backup bitmap */