- route all clearscreen calls that happen after drawing the scene through the 2D drawer.

Otherwise they aren't synchronized with the remaining content.
This commit is contained in:
Christoph Oelckers 2019-12-31 19:25:49 +01:00
parent 1890df98f9
commit d3a57e6e74
9 changed files with 33 additions and 40 deletions

View file

@ -32,6 +32,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "menu/menu.h" #include "menu/menu.h"
#include "mapinfo.h" #include "mapinfo.h"
#include "cmdlib.h" #include "cmdlib.h"
#include "v_2ddrawer.h"
BEGIN_DUKE_NS BEGIN_DUKE_NS
@ -1287,25 +1288,25 @@ void G_PlayE4Cutscene(void)
renderFlushPerms(); renderFlushPerms();
videoSetViewableArea(0, 0, xdim-1, ydim-1); videoSetViewableArea(0, 0, xdim-1, ydim-1);
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
if (Anim_Play("vol41a.anm")) if (Anim_Play("vol41a.anm"))
goto end_vol4a; goto end_vol4a;
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
if (Anim_Play("vol42a.anm")) if (Anim_Play("vol42a.anm"))
goto end_vol4a; goto end_vol4a;
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
Anim_Play("vol43a.anm"); Anim_Play("vol43a.anm");
end_vol4a: end_vol4a:
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
FX_StopAllSounds(); FX_StopAllSounds();

View file

@ -898,13 +898,8 @@ void G_DisplayRest(int32_t smoothratio)
if (ud.overhead_on == 2) if (ud.overhead_on == 2)
{ {
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
#ifdef USE_OPENGL G_DrawBackground(); // Necessary GL fills the entire screen with black
if (videoGetRenderMode() >= REND_POLYMOST)
{
G_DrawBackground(); // Necessary GL fills the entire screen with black
}
#endif
renderDrawMapView(cposx, cposy, pp->zoom, cang); renderDrawMapView(cposx, cposy, pp->zoom, cang);
} }
G_DrawOverheadMap(cposx, cposy, pp->zoom, cang); G_DrawOverheadMap(cposx, cposy, pp->zoom, cang);

View file

@ -23,6 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "engine.h" #include "engine.h"
#include "exhumed.h" #include "exhumed.h"
#include "view.h" #include "view.h"
#include "v_2ddrawer.h"
BEGIN_PS_NS BEGIN_PS_NS
@ -621,7 +622,7 @@ void DrawMap()
//drawoverheadmap(initx, inity, lMapZoom, inita); //drawoverheadmap(initx, inity, lMapZoom, inita);
if (nMapMode == 2) if (nMapMode == 2)
{ {
videoClearViewableArea(blackcol); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
RefreshBackground(); RefreshBackground();
renderDrawMapView(initx, inity, lMapZoom, inita); renderDrawMapView(initx, inity, lMapZoom, inita);
} }

View file

@ -27,6 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "typedefs.h" #include "typedefs.h"
#include "keyboard.h" #include "keyboard.h"
#include "sound.h" #include "sound.h"
#include "v_2ddrawer.h"
BEGIN_PS_NS BEGIN_PS_NS
@ -256,7 +257,7 @@ void PlayMovie(const char* fileName)
} }
} }
videoClearViewableArea(blackcol); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
rotatesprite(160 << 16, 100 << 16, z, angle, kMovieTile, 0, 1, 2, 0, 0, xdim - 1, ydim - 1); rotatesprite(160 << 16, 100 << 16, z, angle, kMovieTile, 0, 1, 2, 0, 0, xdim - 1, ydim - 1);
if (bDoFade) { if (bDoFade) {

View file

@ -31,6 +31,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "menu/menu.h" #include "menu/menu.h"
#include "mapinfo.h" #include "mapinfo.h"
#include "cmdlib.h" #include "cmdlib.h"
#include "v_2ddrawer.h"
BEGIN_RR_NS BEGIN_RR_NS
@ -1906,23 +1907,23 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
renderFlushPerms(); renderFlushPerms();
videoSetViewableArea(0,0,xdim-1,ydim-1); videoSetViewableArea(0,0,xdim-1,ydim-1);
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
int animReturn = Anim_Play("vol41a.anm"); int animReturn = Anim_Play("vol41a.anm");
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
if (animReturn) if (animReturn)
goto end_vol4a; goto end_vol4a;
animReturn = Anim_Play("vol42a.anm"); animReturn = Anim_Play("vol42a.anm");
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
if (animReturn) if (animReturn)
goto end_vol4a; goto end_vol4a;
Anim_Play("vol43a.anm"); Anim_Play("vol43a.anm");
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
end_vol4a: end_vol4a:

View file

@ -928,7 +928,7 @@ void G_DisplayRest(int32_t smoothratio)
if (ud.overhead_on == 2) if (ud.overhead_on == 2)
{ {
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
renderDrawMapView(cposx, cposy, pp->zoom, cang); renderDrawMapView(cposx, cposy, pp->zoom, cang);
} }
G_DrawOverheadMap(cposx, cposy, pp->zoom, cang); G_DrawOverheadMap(cposx, cposy, pp->zoom, cang);
@ -1148,9 +1148,6 @@ static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t
// (end-start)/step + 1 iterations // (end-start)/step + 1 iterations
do do
{ {
#ifdef __ANDROID__ //Needed for N7 2013 to stop corruption while fading video
videoClearViewableArea(0);
#endif
if (inputState.GetKeyStatus(sc_Space)) if (inputState.GetKeyStatus(sc_Space))
{ {
inputState.ClearKeyStatus(sc_Space); inputState.ClearKeyStatus(sc_Space);

View file

@ -43,7 +43,7 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#include "animlib.h" #include "animlib.h"
#include "anim.h" #include "anim.h"
#include "../glbackend/glbackend.h" #include "../glbackend/glbackend.h"
#include "v_2ddrawer.h"
#include "common_game.h" #include "common_game.h"
@ -327,7 +327,7 @@ playanm(short anim_num)
ENDOFANIMLOOP: ENDOFANIMLOOP:
GLInterface.EnableNonTransparent255(false); GLInterface.EnableNonTransparent255(false);
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
videoSetPalette(0, BASEPAL, 2); videoSetPalette(0, BASEPAL, 2);

View file

@ -57,6 +57,7 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#include "config.h" #include "config.h"
#include "menu/menu.h" #include "menu/menu.h"
#include "swcvar.h" #include "swcvar.h"
#include "v_2ddrawer.h"
BEGIN_SW_NS BEGIN_SW_NS
@ -2270,7 +2271,7 @@ drawscreen(PLAYERp pp)
if (dimensionmode == 6) if (dimensionmode == 6)
{ {
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
renderDrawMapView(tx, ty, zoom, tang); renderDrawMapView(tx, ty, zoom, tang);
} }

View file

@ -1468,7 +1468,7 @@ void LogoLevel(void)
DSPRINTF(ds,"About to display 3drealms pic..."); DSPRINTF(ds,"About to display 3drealms pic...");
MONO_PRINT(ds); MONO_PRINT(ds);
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
rotatesprite(0, 0, RS_SCALE, 0, THREED_REALMS_PIC, 0, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1); rotatesprite(0, 0, RS_SCALE, 0, THREED_REALMS_PIC, 0, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1);
videoNextPage(); videoNextPage();
//FadeIn(0, 3); //FadeIn(0, 3);
@ -1492,7 +1492,7 @@ void LogoLevel(void)
} }
} }
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
videoSetPalette(0, BASEPAL, 2); videoSetPalette(0, BASEPAL, 2);
@ -1523,7 +1523,7 @@ void CreditsLevel(void)
save = gs.BorderNum; save = gs.BorderNum;
ClearStartMost(); ClearStartMost();
gs.BorderNum = save; gs.BorderNum = save;
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
// Lo Wang feel like singing! // Lo Wang feel like singing!
@ -1586,7 +1586,7 @@ void CreditsLevel(void)
} }
// put up a blank screen while loading // put up a blank screen while loading
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
ResetKeys(); ResetKeys();
Mus_Stop(); Mus_Stop();
@ -1624,7 +1624,7 @@ TitleLevel(void)
tempbuf[i] = i; tempbuf[i] = i;
palookup[0] = tempbuf; palookup[0] = tempbuf;
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
ready2send = 0; ready2send = 0;
@ -1681,22 +1681,19 @@ TitleLevel(void)
void DrawMenuLevelScreen(void) void DrawMenuLevelScreen(void)
{ {
renderFlushPerms(); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoClearViewableArea(0L);
rotatesprite(0, 0, RS_SCALE, 0, TITLE_PIC, 20, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1); rotatesprite(0, 0, RS_SCALE, 0, TITLE_PIC, 20, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1);
} }
void DrawStatScreen(void) void DrawStatScreen(void)
{ {
renderFlushPerms(); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoClearViewableArea(0L);
rotatesprite(0, 0, RS_SCALE, 0, STAT_SCREEN_PIC, 0, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1); rotatesprite(0, 0, RS_SCALE, 0, STAT_SCREEN_PIC, 0, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1);
} }
void DrawLoadLevelScreen(void) void DrawLoadLevelScreen(void)
{ {
renderFlushPerms(); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoClearViewableArea(0L);
rotatesprite(0, 0, RS_SCALE, 0, TITLE_PIC, 20, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1); rotatesprite(0, 0, RS_SCALE, 0, TITLE_PIC, 20, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1);
} }
@ -1732,7 +1729,7 @@ void MenuLevel(void)
DemoMode = FALSE; DemoMode = FALSE;
DemoPlaying = FALSE; DemoPlaying = FALSE;
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
//FadeOut(0, 0); //FadeOut(0, 0);
@ -1843,7 +1840,7 @@ void MenuLevel(void)
inputState.ClearKeysDown(); inputState.ClearKeysDown();
M_ClearMenus(); M_ClearMenus();
InMenuLevel = FALSE; InMenuLevel = FALSE;
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
} }
@ -2068,7 +2065,7 @@ void BonusScreen(PLAYERp pp)
if (Level < 0) Level = 0; if (Level < 0) Level = 0;
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
videoNextPage(); videoNextPage();
inputState.ClearKeysDown(); inputState.ClearKeysDown();
@ -2111,8 +2108,7 @@ void BonusScreen(PLAYERp pp)
gStateControl(&State, &Tics); gStateControl(&State, &Tics);
videoClearViewableArea(0L); twod->AddColorOnlyQuad(0, 0, xdim, ydim, 0xff000000);
rotatesprite(0, 0, RS_SCALE, 0, 5120, 0, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1); rotatesprite(0, 0, RS_SCALE, 0, 5120, 0, 0, TITLE_ROT_FLAGS, 0, 0, xdim - 1, ydim - 1);
if (UserMapName[0]) if (UserMapName[0])