From bec1825e8c52239db6e60e6e203d433d914916cc Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 2 Sep 2018 12:30:40 +0200 Subject: [PATCH] - fixed: The wipe textures need to be rendered with DTA_Masked set to false because they contain bogus alpha values where a stencil got rendered. --- src/f_wipe.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/f_wipe.cpp b/src/f_wipe.cpp index 9d6214fec..6d34936fd 100644 --- a/src/f_wipe.cpp +++ b/src/f_wipe.cpp @@ -238,8 +238,8 @@ Wiper::~Wiper() bool Wiper_Crossfade::Run(int ticks) { Clock += ticks; - screen->DrawTexture(startScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), TAG_DONE); - screen->DrawTexture(endScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_Alpha, clamp(Clock / 32.f, 0.f, 1.f), TAG_DONE); + screen->DrawTexture(startScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_Masked, false, TAG_DONE); + screen->DrawTexture(endScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_Masked, false, DTA_Alpha, clamp(Clock / 32.f, 0.f, 1.f), TAG_DONE); return Clock >= 32; } @@ -274,7 +274,7 @@ Wiper_Melt::Wiper_Melt() bool Wiper_Melt::Run(int ticks) { bool done; - screen->DrawTexture(endScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), TAG_DONE); + screen->DrawTexture(endScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_Masked, false, TAG_DONE); // Copy the old screen in vertical strips on top of the new one. while (ticks--) @@ -319,7 +319,7 @@ bool Wiper_Melt::Run(int ticks) rect.bottom = h - dpt.y; if (rect.bottom > rect.top) { - screen->DrawTexture(startScreen, 0, dpt.y, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_ClipLeft, rect.left, DTA_ClipRight, rect.right, TAG_DONE); + screen->DrawTexture(startScreen, 0, dpt.y, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_ClipLeft, rect.left, DTA_ClipRight, rect.right, DTA_Masked, false, TAG_DONE); } } } @@ -388,8 +388,8 @@ bool Wiper_Burn::Run(int ticks) } } - screen->DrawTexture(startScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), TAG_DONE); - screen->DrawTexture(endScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_Burn, true, DTA_LegacyRenderStyle, STYLE_Translucent, TAG_DONE); + screen->DrawTexture(startScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_Masked, false, TAG_DONE); + screen->DrawTexture(endScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_Burn, true, DTA_Masked, false, TAG_DONE); // The fire may not always stabilize, so the wipe is forced to end // after an arbitrary maximum time.