Disable renderswaps when maps are being rendered
Should hopefully prevent that obnoxious renderer swap SIGSEGV from ever being run into
This commit is contained in:
parent
a52fd7344b
commit
52edf25fe2
3 changed files with 13 additions and 0 deletions
|
|
@ -594,11 +594,15 @@ static void D_Display(void)
|
|||
// STUPID race condition...
|
||||
{
|
||||
wipegamestate = gamestate;
|
||||
cansetrender = true;
|
||||
|
||||
// clean up border stuff
|
||||
// see if the border needs to be initially drawn
|
||||
if (gamestate == GS_LEVEL || (gamestate == GS_TITLESCREEN && titlemapinaction && curbghide && (!hidetitlemap)))
|
||||
{
|
||||
// Rendering a level; don't allow renderer changes!
|
||||
cansetrender = false;
|
||||
|
||||
D_RenderLevel();
|
||||
|
||||
ps_uitime = I_GetPreciseTime();
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
viddef_t vid;
|
||||
INT32 setmodeneeded; //video mode change needed if > 0 (the mode number to set + 1)
|
||||
UINT8 setrenderneeded = 0;
|
||||
boolean cansetrender = true;
|
||||
|
||||
//added : 03-02-98: default screen mode, as loaded/saved in config
|
||||
consvar_t cv_scr_width = CVAR_INIT ("scr_width", "640", CV_SAVE, CV_Unsigned, NULL);
|
||||
|
|
@ -496,6 +497,13 @@ void SCR_ChangeRenderer(void)
|
|||
|| (signed)rendermode == cv_renderer.value)
|
||||
return;
|
||||
|
||||
if (!cansetrender)
|
||||
{
|
||||
CONS_Alert(CONS_NOTICE, "You cannot change renderers at the moment.\n");
|
||||
CV_SetValue(&cv_renderer, (signed)rendermode);
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef HWRENDER
|
||||
// Check if OpenGL loaded successfully (or wasn't disabled) before switching to it.
|
||||
if ((vid.glstate == VID_GL_LIBRARY_ERROR)
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ enum
|
|||
extern viddef_t vid;
|
||||
extern INT32 setmodeneeded; // mode number to set if needed, or 0
|
||||
extern UINT8 setrenderneeded;
|
||||
extern boolean cansetrender;
|
||||
|
||||
extern double averageFPS;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue