diff --git a/src/core/fullscreen_ui.cpp b/src/core/fullscreen_ui.cpp index ff0f7fdd6..b7e4ba0b4 100644 --- a/src/core/fullscreen_ui.cpp +++ b/src/core/fullscreen_ui.cpp @@ -245,7 +245,6 @@ static void DrawAboutWindow(); static void FixStateIfPaused(); static void GetStandardSelectionFooterText(SmallStringBase& dest, bool back_instead_of_cancel); static bool CompileTransitionPipelines(); -static void UpdateTransitionState(); ////////////////////////////////////////////////////////////////////////// // Backgrounds diff --git a/src/core/fullscreen_ui.h b/src/core/fullscreen_ui.h index a1c5c1e4b..8e41f91ce 100644 --- a/src/core/fullscreen_ui.h +++ b/src/core/fullscreen_ui.h @@ -47,6 +47,7 @@ void CloseLoadingScreen(); void SetTheme(); void UpdateRunIdleState(); +void UpdateTransitionState(); static constexpr float SHORT_TRANSITION_TIME = 0.08f; static constexpr float DEFAULT_TRANSITION_TIME = 0.15f; diff --git a/src/core/gpu_presenter.cpp b/src/core/gpu_presenter.cpp index 5bf830f22..e989960a1 100644 --- a/src/core/gpu_presenter.cpp +++ b/src/core/gpu_presenter.cpp @@ -1066,6 +1066,11 @@ bool GPUPresenter::PresentFrame(GPUPresenter* presenter, GPUBackend* backend, bo } } } + else + { + // transitions still need to be updated otherwise the fade timer breaks + FullscreenUI::UpdateTransitionState(); + } GPUSwapChain* const swap_chain = g_gpu_device->GetMainSwapChain(); const GPUDevice::PresentResult pres = skip_present ?