From 82e00563e656c4f12fd5c3d06fbafd92264d6708 Mon Sep 17 00:00:00 2001 From: Roman Fomin Date: Fri, 29 Dec 2023 14:12:19 +0700 Subject: [PATCH] run DRS only in GS_LEVEL state, make width even --- src/d_main.c | 2 +- src/i_video.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index a3c74864..67828e4b 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -251,7 +251,7 @@ void D_Display (void) // save the current screen if about to wipe if ((wipe = gamestate != wipegamestate) && NOTSTRICTMODE(screen_melt)) wipe_StartScreen(0, 0, video.unscaledw, SCREENHEIGHT); - else + else if (gamestate == GS_LEVEL) I_DynamicResolution(); if (setsizeneeded) // change the view size if needed diff --git a/src/i_video.c b/src/i_video.c index 444cab5a..20f3f8e9 100644 --- a/src/i_video.c +++ b/src/i_video.c @@ -1028,7 +1028,7 @@ static void ResetResolution(int height) video.unscaledw = (int)(unscaled_actualheight * aspect_ratio); - video.unscaledw = (video.unscaledw + 3) & ~3; + video.unscaledw = (video.unscaledw + 1) & ~1; // Unscaled widescreen 16:9 resolution truncates to 428x240, which is not // quite 16:9. To avoid visual instability, we calculate the scaled width @@ -1038,7 +1038,7 @@ static void ResetResolution(int height) double vertscale = (double)actualheight / (double)unscaled_actualheight; video.width = (int)(video.unscaledw * vertscale); - video.width = (video.width + 3) & ~3; + video.width = (video.width + 1) & ~1; video.deltaw = (video.unscaledw - NONWIDEWIDTH) / 2;