From abe35fd00885282026d1e7e60bfac3646d294fc6 Mon Sep 17 00:00:00 2001 From: Jaime Ita Passos Date: Sun, 22 Nov 2020 17:22:18 -0300 Subject: [PATCH] Some interface fixes --- src/d_main.c | 15 ++------------- src/lua_hudlib.c | 8 ++++---- src/screen.c | 18 ++++++++---------- src/screen.h | 1 - src/sdl/i_video.c | 2 +- 5 files changed, 15 insertions(+), 29 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 53798d446..81797947d 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -652,6 +652,8 @@ void D_SRB2Loop(void) SCR_SetMode(); // change video mode SCR_Recalc(); + chosenrendermode = render_none; + // Check and print which version is executed. // Use this as the border between setup and the main game loop being entered. CONS_Printf( @@ -1296,19 +1298,6 @@ void D_SRB2Main(void) // set user default mode or mode set at cmdline SCR_CheckDefaultMode(); - // Lactozilla: Check if the render mode needs to change. - if (setrenderneeded) - { - CONS_Printf(M_GetText("Switching the renderer...\n")); - - // Switch the renderer in the interface - if (VID_CheckRenderer()) - con_refresh = true; // Allow explicit screen refresh again - - // Set cv_renderer to the new render mode - CV_StealthSetValue(&cv_renderer, rendermode); - } - wipegamestate = gamestate; savedata.lives = 0; // flag this as not-used diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c index 7b290bf3f..f4e5d5ccf 100644 --- a/src/lua_hudlib.c +++ b/src/lua_hudlib.c @@ -305,16 +305,16 @@ static int patch_get(lua_State *L) lua_pushboolean(L, patch != NULL); break; case patch_width: - lua_pushinteger(L, SHORT(patch->width)); + lua_pushinteger(L, patch->width); break; case patch_height: - lua_pushinteger(L, SHORT(patch->height)); + lua_pushinteger(L, patch->height); break; case patch_leftoffset: - lua_pushinteger(L, SHORT(patch->leftoffset)); + lua_pushinteger(L, patch->leftoffset); break; case patch_topoffset: - lua_pushinteger(L, SHORT(patch->topoffset)); + lua_pushinteger(L, patch->topoffset); break; } return 1; diff --git a/src/screen.c b/src/screen.c index f14cf4bf6..9d36eee39 100644 --- a/src/screen.c +++ b/src/screen.c @@ -72,7 +72,7 @@ CV_PossibleValue_t cv_renderer_t[] = { {0, NULL} }; -consvar_t cv_renderer = CVAR_INIT ("renderer", "Software", CV_SAVE|CV_NOLUA|CV_CALL, cv_renderer_t, SCR_SetTargetRenderer); +consvar_t cv_renderer = CVAR_INIT ("renderer", "Software", CV_SAVE|CV_NOLUA|CV_CALL, cv_renderer_t, SCR_ChangeRenderer); static void SCR_ChangeFullscreen(void); @@ -207,7 +207,11 @@ void SCR_SetMode(void) if (setrenderneeded && (moviemode == MM_APNG)) M_StopMovie(); - VID_CheckRenderer(); + // VID_SetMode will call VID_CheckRenderer itself, + // so no need to do this in here. + if (!setmodeneeded) + VID_CheckRenderer(); + vid.recalc = 1; } @@ -402,15 +406,10 @@ void SCR_ChangeFullscreen(void) #endif } -void SCR_SetTargetRenderer(void) -{ - if (!con_refresh) - SCR_ChangeRenderer(); -} - void SCR_ChangeRenderer(void) { - if ((signed)rendermode == cv_renderer.value) + if (chosenrendermode != render_none + || (signed)rendermode == cv_renderer.value) return; #ifdef HWRENDER @@ -428,7 +427,6 @@ void SCR_ChangeRenderer(void) // Set the new render mode setrenderneeded = cv_renderer.value; - con_refresh = false; } boolean SCR_IsAspectCorrect(INT32 width, INT32 height) diff --git a/src/screen.h b/src/screen.h index 66452289c..e4944775d 100644 --- a/src/screen.h +++ b/src/screen.h @@ -183,7 +183,6 @@ extern INT32 setmodeneeded; // mode number to set if needed, or 0 extern UINT8 setrenderneeded; void SCR_ChangeRenderer(void); -void SCR_SetTargetRenderer(void); extern CV_PossibleValue_t cv_renderer_t[]; diff --git a/src/sdl/i_video.c b/src/sdl/i_video.c index f83f57576..fb25362af 100644 --- a/src/sdl/i_video.c +++ b/src/sdl/i_video.c @@ -1557,7 +1557,7 @@ boolean VID_CheckRenderer(void) setrenderneeded = 0; } - SDLSetMode(vid.width, vid.height, USE_FULLSCREEN, (rendererchanged ? SDL_FALSE : SDL_TRUE)); + SDLSetMode(vid.width, vid.height, USE_FULLSCREEN, (setmodeneeded ? SDL_TRUE : SDL_FALSE)); Impl_VideoSetupBuffer(); if (rendermode == render_soft)