- crossfade wipe is working again.

The other two types still need work.
This commit is contained in:
Christoph Oelckers 2018-08-28 22:58:21 +02:00
commit 6e0ed3e930
3 changed files with 13 additions and 9 deletions

View file

@ -238,8 +238,8 @@ Wiper::~Wiper()
bool Wiper_Crossfade::Run(int ticks)
{
Clock += ticks;
screen->DrawTexture(startScreen, 0, 0, TAG_DONE);
screen->DrawTexture(endScreen, 0, 0, DTA_Alpha, clamp(Clock / 32.f, 0.f, 1.f), TAG_DONE);
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);
return Clock >= 32;
}
@ -274,7 +274,7 @@ Wiper_Melt::Wiper_Melt()
bool Wiper_Melt::Run(int ticks)
{
bool done;
screen->DrawTexture(endScreen, 0, 0, TAG_DONE);
screen->DrawTexture(endScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_Color, PalEntry(255, 255, 0, 0), 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 = w - dpt.y;
if (rect.bottom > rect.top)
{
screen->DrawTexture(startScreen, 0, rect.top, DTA_ClipLeft, rect.left, DTA_ClipRight, rect.right, TAG_DONE);
screen->DrawTexture(startScreen, 0, rect.top, DTA_FlipY, screen->RenderTextureIsFlipped(), DTA_ClipLeft, rect.left, DTA_ClipRight, rect.right, TAG_DONE);
}
}
}
@ -388,8 +388,8 @@ bool Wiper_Burn::Run(int ticks)
}
}
screen->DrawTexture(startScreen, 0, 0, TAG_DONE);
screen->DrawTexture(endScreen, 0, 0, DTA_Burn, true, TAG_DONE);
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);
// The fire may not always stabilize, so the wipe is forced to end
// after an arbitrary maximum time.