From d32e0b91c2eb7bbd4dd354f90b5160438ea7ada0 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 17 Mar 2020 08:50:00 +0100 Subject: [PATCH] - clear the screen before drawing content, not afterward. The intermission screens got it wrong and drew the black border over the image. --- src/intermission/intermission.cpp | 4 +--- src/wi_stuff.cpp | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/intermission/intermission.cpp b/src/intermission/intermission.cpp index 2db8457489..2012d9c342 100644 --- a/src/intermission/intermission.cpp +++ b/src/intermission/intermission.cpp @@ -231,7 +231,6 @@ void DIntermissionScreen::Drawer () if (CheckOverlay(i)) screen->DrawTexture (TexMan.GetTexture(mOverlays[i].mPic), mOverlays[i].x, mOverlays[i].y, DTA_320x200, true, TAG_DONE); } - if (!mFlatfill) screen->FillBorder (NULL); if (mSubtitle) { const char *sub = mSubtitle.GetChars(); @@ -293,7 +292,6 @@ void DIntermissionScreenFader::Drawer () if (CheckOverlay(i)) screen->DrawTexture (TexMan.GetTexture(mOverlays[i].mPic), mOverlays[i].x, mOverlays[i].y, DTA_320x200, true, DTA_ColorOverlay, color, TAG_DONE); } - screen->FillBorder (NULL); } } @@ -756,7 +754,6 @@ void DIntermissionScreenScroller::Drawer () DTA_Masked, false, TAG_DONE); - screen->FillBorder (NULL); mBackground = mSecondPic; } else @@ -921,6 +918,7 @@ void DIntermissionController::Drawer () { if (mScreen != NULL) { + screen->FillBorder(nullptr); mScreen->Drawer(); } } diff --git a/src/wi_stuff.cpp b/src/wi_stuff.cpp index 9c666fec97..4a5cf48667 100644 --- a/src/wi_stuff.cpp +++ b/src/wi_stuff.cpp @@ -599,7 +599,6 @@ void DInterBackground::drawBackground(int state, bool drawsplat, bool snl_pointe // placing the animations precisely where they belong on the base pic animwidth = background->GetDisplayWidthDouble(); animheight = background->GetDisplayHeightDouble(); - screen->FillBorder(NULL); screen->DrawTexture(background, 0, 0, DTA_Fullscreen, true, TAG_DONE); } else @@ -724,6 +723,7 @@ void WI_Drawer() ScaleOverrider s; IFVIRTUALPTRNAME(WI_Screen, "StatusScreen", Drawer) { + screen->FillBorder(nullptr); VMValue self = WI_Screen; VMCall(func, &self, 1, nullptr, 0); screen->ClearClipRect(); // make sure the scripts don't leave a valid clipping rect behind.