mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 15:21:51 +00:00
- crossfade wipe is working again.
The other two types still need work.
This commit is contained in:
parent
29a54c33b2
commit
6e0ed3e930
3 changed files with 13 additions and 9 deletions
|
@ -889,11 +889,11 @@ void D_Display ()
|
||||||
screen->End2D();
|
screen->End2D();
|
||||||
auto wipend = screen->WipeEndScreen ();
|
auto wipend = screen->WipeEndScreen ();
|
||||||
auto wiper = Wiper::Create(wipe_type);
|
auto wiper = Wiper::Create(wipe_type);
|
||||||
|
wiper->SetTextures(wipe, wipend);
|
||||||
|
|
||||||
wipestart = I_msTime();
|
wipestart = I_msTime();
|
||||||
NetUpdate(); // send out any new accumulation
|
NetUpdate(); // send out any new accumulation
|
||||||
|
|
||||||
/*
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
|
@ -903,14 +903,13 @@ void D_Display ()
|
||||||
diff = (nowtime - wipestart) * 40 / 1000; // Using 35 here feels too slow.
|
diff = (nowtime - wipestart) * 40 / 1000; // Using 35 here feels too slow.
|
||||||
} while (diff < 1);
|
} while (diff < 1);
|
||||||
wipestart = nowtime;
|
wipestart = nowtime;
|
||||||
done = screen->WipeDo (1);
|
|
||||||
screen->Begin2D();
|
screen->Begin2D();
|
||||||
|
done = wiper->Run(1);
|
||||||
C_DrawConsole (); // console and
|
C_DrawConsole (); // console and
|
||||||
M_Drawer (); // menu are drawn even on top of wipes
|
M_Drawer (); // menu are drawn even on top of wipes
|
||||||
screen->End2DAndUpdate ();
|
screen->End2DAndUpdate ();
|
||||||
NetUpdate (); // [RH] not sure this is needed anymore
|
NetUpdate (); // [RH] not sure this is needed anymore
|
||||||
} while (!done);
|
} while (!done);
|
||||||
*/
|
|
||||||
delete wiper;
|
delete wiper;
|
||||||
I_FreezeTime(false);
|
I_FreezeTime(false);
|
||||||
GSnd->SetSfxPaused(false, 1);
|
GSnd->SetSfxPaused(false, 1);
|
||||||
|
|
|
@ -238,8 +238,8 @@ Wiper::~Wiper()
|
||||||
bool Wiper_Crossfade::Run(int ticks)
|
bool Wiper_Crossfade::Run(int ticks)
|
||||||
{
|
{
|
||||||
Clock += ticks;
|
Clock += ticks;
|
||||||
screen->DrawTexture(startScreen, 0, 0, TAG_DONE);
|
screen->DrawTexture(startScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), TAG_DONE);
|
||||||
screen->DrawTexture(endScreen, 0, 0, DTA_Alpha, clamp(Clock / 32.f, 0.f, 1.f), 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;
|
return Clock >= 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,7 +274,7 @@ Wiper_Melt::Wiper_Melt()
|
||||||
bool Wiper_Melt::Run(int ticks)
|
bool Wiper_Melt::Run(int ticks)
|
||||||
{
|
{
|
||||||
bool done;
|
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.
|
// Copy the old screen in vertical strips on top of the new one.
|
||||||
while (ticks--)
|
while (ticks--)
|
||||||
|
@ -319,7 +319,7 @@ bool Wiper_Melt::Run(int ticks)
|
||||||
rect.bottom = w - dpt.y;
|
rect.bottom = w - dpt.y;
|
||||||
if (rect.bottom > rect.top)
|
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(startScreen, 0, 0, DTA_FlipY, screen->RenderTextureIsFlipped(), TAG_DONE);
|
||||||
screen->DrawTexture(endScreen, 0, 0, DTA_Burn, true, 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
|
// The fire may not always stabilize, so the wipe is forced to end
|
||||||
// after an arbitrary maximum time.
|
// after an arbitrary maximum time.
|
||||||
|
|
|
@ -459,6 +459,11 @@ public:
|
||||||
// Returns true if Begin2D has been called and 2D drawing is now active
|
// Returns true if Begin2D has been called and 2D drawing is now active
|
||||||
bool HasBegun2D() { return isIn2D; }
|
bool HasBegun2D() { return isIn2D; }
|
||||||
|
|
||||||
|
// This is overridable in case Vulkan does it differently.
|
||||||
|
virtual bool RenderTextureIsFlipped() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Report a game restart
|
// Report a game restart
|
||||||
void InitPalette();
|
void InitPalette();
|
||||||
|
|
Loading…
Reference in a new issue