Comments
This commit is contained in:
parent
6f4dadaa12
commit
0a973af5b8
24
src/d_main.c
24
src/d_main.c
|
@ -240,6 +240,22 @@ static void D_Display(void)
|
||||||
if (nodrawers)
|
if (nodrawers)
|
||||||
return; // for comparative timing/profiling
|
return; // for comparative timing/profiling
|
||||||
|
|
||||||
|
// Jimita: Switching renderers works by checking
|
||||||
|
// if the game has to do it right when the frame
|
||||||
|
// needs to render. If so, five things will happen:
|
||||||
|
// 1. Interface functions will be called so
|
||||||
|
// that switching to OpenGL creates a
|
||||||
|
// GL context, and switching to Software
|
||||||
|
// allocates screen buffers.
|
||||||
|
// 2. Software will set drawer functions,
|
||||||
|
// and OpenGL will load textures and
|
||||||
|
// create plane polygons, if necessary.
|
||||||
|
// 3. Functions related to switching video
|
||||||
|
// modes (resolution) are called.
|
||||||
|
// 4. Patch data is freed from memory,
|
||||||
|
// and recached if necessary.
|
||||||
|
// 5. The frame is ready to be drawn!
|
||||||
|
|
||||||
// stop movie if needs to change renderer
|
// stop movie if needs to change renderer
|
||||||
if (setrenderneeded && (moviemode != MM_OFF))
|
if (setrenderneeded && (moviemode != MM_OFF))
|
||||||
M_StopMovie();
|
M_StopMovie();
|
||||||
|
@ -265,6 +281,7 @@ static void D_Display(void)
|
||||||
forcerefresh = true; // force background redraw
|
forcerefresh = true; // force background redraw
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Jimita
|
||||||
D_CheckRendererState();
|
D_CheckRendererState();
|
||||||
|
|
||||||
// draw buffered stuff to screen
|
// draw buffered stuff to screen
|
||||||
|
@ -510,6 +527,8 @@ static void D_Display(void)
|
||||||
needpatchrecache = false;
|
needpatchrecache = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Jimita: Check the renderer's state
|
||||||
|
// after a possible renderer switch.
|
||||||
void D_CheckRendererState(void)
|
void D_CheckRendererState(void)
|
||||||
{
|
{
|
||||||
// flush all patches from memory
|
// flush all patches from memory
|
||||||
|
@ -1219,9 +1238,8 @@ 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();
|
||||||
// renderer needs to change?
|
|
||||||
// ok cool please just change it
|
// Jimita: Does the render mode need to change?
|
||||||
// exactly right now please.
|
|
||||||
if ((setrenderneeded != 0) && (setrenderneeded != rendermode))
|
if ((setrenderneeded != 0) && (setrenderneeded != rendermode))
|
||||||
{
|
{
|
||||||
needpatchflush = true;
|
needpatchflush = true;
|
||||||
|
|
|
@ -1495,6 +1495,7 @@ void F_TitleScreenDrawer(void)
|
||||||
if (modeattacking)
|
if (modeattacking)
|
||||||
return; // We likely came here from retrying. Don't do a damn thing.
|
return; // We likely came here from retrying. Don't do a damn thing.
|
||||||
|
|
||||||
|
// Jimita: Load title screen patches.
|
||||||
if (needpatchrecache)
|
if (needpatchrecache)
|
||||||
F_CacheTitleScreen();
|
F_CacheTitleScreen();
|
||||||
|
|
||||||
|
|
|
@ -644,6 +644,7 @@ GLTexture_t *HWR_GetTexture(INT32 tex)
|
||||||
if ((unsigned)tex >= gr_numtextures)
|
if ((unsigned)tex >= gr_numtextures)
|
||||||
I_Error("HWR_GetTexture: tex >= numtextures\n");
|
I_Error("HWR_GetTexture: tex >= numtextures\n");
|
||||||
#endif
|
#endif
|
||||||
|
// Jimita
|
||||||
if (needpatchrecache && (!gr_textures))
|
if (needpatchrecache && (!gr_textures))
|
||||||
HWR_PrepLevelCache(gr_numtextures);
|
HWR_PrepLevelCache(gr_numtextures);
|
||||||
|
|
||||||
|
|
|
@ -4135,6 +4135,7 @@ static void M_DrawAddons(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Jimita: Load addons menu patches.
|
||||||
if (needpatchrecache)
|
if (needpatchrecache)
|
||||||
M_LoadAddonsPatches();
|
M_LoadAddonsPatches();
|
||||||
|
|
||||||
|
|
|
@ -2943,8 +2943,8 @@ boolean P_SetupLevel(boolean skipprecip)
|
||||||
globalweather = mapheaderinfo[gamemap-1]->weather;
|
globalweather = mapheaderinfo[gamemap-1]->weather;
|
||||||
|
|
||||||
#ifdef HWRENDER // not win32 only 19990829 by Kin
|
#ifdef HWRENDER // not win32 only 19990829 by Kin
|
||||||
// gotta free this regardless of rendermode.
|
// Jimita: Free extrasubsectors regardless of renderer.
|
||||||
// maybe we're not in opengl anymore.......
|
// Maybe we're not in OpenGL anymore.
|
||||||
if (extrasubsectors)
|
if (extrasubsectors)
|
||||||
free(extrasubsectors);
|
free(extrasubsectors);
|
||||||
extrasubsectors = NULL;
|
extrasubsectors = NULL;
|
||||||
|
@ -3162,7 +3162,7 @@ void HWR_SetupLevel(void)
|
||||||
#endif
|
#endif
|
||||||
// Correct missing sidedefs & deep water trick
|
// Correct missing sidedefs & deep water trick
|
||||||
HWR_CorrectSWTricks();
|
HWR_CorrectSWTricks();
|
||||||
// don't do it twice...
|
// Jimita: Don't call this more than once!
|
||||||
if (!extrasubsectors)
|
if (!extrasubsectors)
|
||||||
HWR_CreatePlanePolygons((INT32)numnodes - 1);
|
HWR_CreatePlanePolygons((INT32)numnodes - 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1339,6 +1339,7 @@ void R_RenderPlayerView(player_t *player)
|
||||||
skyVisible1 = skyVisible;
|
skyVisible1 = skyVisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Jimita
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
void R_InitHardwareMode(void)
|
void R_InitHardwareMode(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -172,6 +172,7 @@ void SCR_SetMode(void)
|
||||||
if (!(setmodeneeded || setrenderneeded) || WipeInAction)
|
if (!(setmodeneeded || setrenderneeded) || WipeInAction)
|
||||||
return; // should never happen and don't change it during a wipe, BAD!
|
return; // should never happen and don't change it during a wipe, BAD!
|
||||||
|
|
||||||
|
// Jimita
|
||||||
if (setrenderneeded)
|
if (setrenderneeded)
|
||||||
{
|
{
|
||||||
needpatchflush = true;
|
needpatchflush = true;
|
||||||
|
@ -417,6 +418,7 @@ void SCR_ActuallyChangeRenderer(void)
|
||||||
setrenderneeded = 0;
|
setrenderneeded = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Jimita
|
||||||
void SCR_ChangeRenderer(void)
|
void SCR_ChangeRenderer(void)
|
||||||
{
|
{
|
||||||
setrenderneeded = 0;
|
setrenderneeded = 0;
|
||||||
|
|
|
@ -189,6 +189,7 @@ void Y_IntermissionDrawer(void)
|
||||||
if (intertype == int_none || rendermode == render_none)
|
if (intertype == int_none || rendermode == render_none)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Jimita
|
||||||
if (needpatchrecache)
|
if (needpatchrecache)
|
||||||
{
|
{
|
||||||
Y_CleanupData();
|
Y_CleanupData();
|
||||||
|
|
Loading…
Reference in a new issue