[client] overlay: keep the splash fade on fresh buffers

Fully invalidate the render target when the full-screen splash changes.
This restores the desktop before alpha blending and prevents stale fade
states from cycling between swapchain buffers when guest updates are
sparse.
This commit is contained in:
Geoffrey McRae
2026-08-05 09:40:32 +10:00
parent d0fa4a8ddd
commit 606a06535e

View File

@@ -233,13 +233,15 @@ static bool splash_tick(void * udata, unsigned long long tickCount)
if (g_params.quickSplash) if (g_params.quickSplash)
{ {
l_fadeDone = true; l_fadeDone = true;
return true; app_invalidateWindow(true);
return false;
} }
l_alpha -= 1.0f / TICK_RATE; l_alpha -= 1.0f / TICK_RATE;
if (l_alpha <= 0.0f) if (l_alpha <= 0.0f)
l_fadeDone = true; l_fadeDone = true;
return true; app_invalidateWindow(true);
return false;
} }
return false; return false;
@@ -261,4 +263,5 @@ void overlaySplash_show(bool show)
l_show = show; l_show = show;
app_invalidateOverlay(true); app_invalidateOverlay(true);
app_invalidateWindow(true);
} }