Some interface fixes

This commit is contained in:
Jaime Ita Passos 2020-11-22 17:22:18 -03:00
parent 152c540c1e
commit abe35fd008
5 changed files with 15 additions and 29 deletions

View File

@ -652,6 +652,8 @@ void D_SRB2Loop(void)
SCR_SetMode(); // change video mode SCR_SetMode(); // change video mode
SCR_Recalc(); SCR_Recalc();
chosenrendermode = render_none;
// Check and print which version is executed. // Check and print which version is executed.
// Use this as the border between setup and the main game loop being entered. // Use this as the border between setup and the main game loop being entered.
CONS_Printf( CONS_Printf(
@ -1296,19 +1298,6 @@ void D_SRB2Main(void)
// set user default mode or mode set at cmdline // set user default mode or mode set at cmdline
SCR_CheckDefaultMode(); 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; wipegamestate = gamestate;
savedata.lives = 0; // flag this as not-used savedata.lives = 0; // flag this as not-used

View File

@ -305,16 +305,16 @@ static int patch_get(lua_State *L)
lua_pushboolean(L, patch != NULL); lua_pushboolean(L, patch != NULL);
break; break;
case patch_width: case patch_width:
lua_pushinteger(L, SHORT(patch->width)); lua_pushinteger(L, patch->width);
break; break;
case patch_height: case patch_height:
lua_pushinteger(L, SHORT(patch->height)); lua_pushinteger(L, patch->height);
break; break;
case patch_leftoffset: case patch_leftoffset:
lua_pushinteger(L, SHORT(patch->leftoffset)); lua_pushinteger(L, patch->leftoffset);
break; break;
case patch_topoffset: case patch_topoffset:
lua_pushinteger(L, SHORT(patch->topoffset)); lua_pushinteger(L, patch->topoffset);
break; break;
} }
return 1; return 1;

View File

@ -72,7 +72,7 @@ CV_PossibleValue_t cv_renderer_t[] = {
{0, NULL} {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); static void SCR_ChangeFullscreen(void);
@ -207,7 +207,11 @@ void SCR_SetMode(void)
if (setrenderneeded && (moviemode == MM_APNG)) if (setrenderneeded && (moviemode == MM_APNG))
M_StopMovie(); 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; vid.recalc = 1;
} }
@ -402,15 +406,10 @@ void SCR_ChangeFullscreen(void)
#endif #endif
} }
void SCR_SetTargetRenderer(void)
{
if (!con_refresh)
SCR_ChangeRenderer();
}
void SCR_ChangeRenderer(void) void SCR_ChangeRenderer(void)
{ {
if ((signed)rendermode == cv_renderer.value) if (chosenrendermode != render_none
|| (signed)rendermode == cv_renderer.value)
return; return;
#ifdef HWRENDER #ifdef HWRENDER
@ -428,7 +427,6 @@ void SCR_ChangeRenderer(void)
// Set the new render mode // Set the new render mode
setrenderneeded = cv_renderer.value; setrenderneeded = cv_renderer.value;
con_refresh = false;
} }
boolean SCR_IsAspectCorrect(INT32 width, INT32 height) boolean SCR_IsAspectCorrect(INT32 width, INT32 height)

View File

@ -183,7 +183,6 @@ extern INT32 setmodeneeded; // mode number to set if needed, or 0
extern UINT8 setrenderneeded; extern UINT8 setrenderneeded;
void SCR_ChangeRenderer(void); void SCR_ChangeRenderer(void);
void SCR_SetTargetRenderer(void);
extern CV_PossibleValue_t cv_renderer_t[]; extern CV_PossibleValue_t cv_renderer_t[];

View File

@ -1557,7 +1557,7 @@ boolean VID_CheckRenderer(void)
setrenderneeded = 0; 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(); Impl_VideoSetupBuffer();
if (rendermode == render_soft) if (rendermode == render_soft)