From e33441b6dbf90f3a5f88928afe5234f6877a4075 Mon Sep 17 00:00:00 2001 From: Dario Date: Sat, 1 Feb 2025 12:10:10 -0300 Subject: [PATCH] Clamp delta time to fix UI disappearing on OS with timestamps that don't always increase. --- src/ui/elements/ui_toggle.cpp | 2 +- src/ui/ui_mod_menu.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ui/elements/ui_toggle.cpp b/src/ui/elements/ui_toggle.cpp index a58aea6..db38057 100644 --- a/src/ui/elements/ui_toggle.cpp +++ b/src/ui/elements/ui_toggle.cpp @@ -98,7 +98,7 @@ namespace recompui { } case EventType::Update: { std::chrono::high_resolution_clock::duration now = ultramodern::time_since_start(); - float delta_time = std::chrono::duration(now - last_time).count(); + float delta_time = std::max(std::chrono::duration(now - last_time).count(), 0.0f); last_time = now; constexpr float dp_speed = 740.0f; diff --git a/src/ui/ui_mod_menu.cpp b/src/ui/ui_mod_menu.cpp index 5e67ee3..15a3b61 100644 --- a/src/ui/ui_mod_menu.cpp +++ b/src/ui/ui_mod_menu.cpp @@ -166,7 +166,7 @@ void ModEntrySpacer::process_event(const Event &e) { switch (e.type) { case EventType::Update: { std::chrono::high_resolution_clock::duration now = ultramodern::time_since_start(); - float delta_time = std::chrono::duration(now - last_time).count(); + float delta_time = std::max(std::chrono::duration(now - last_time).count(), 0.0f); constexpr float dp_speed = 1000.0f; last_time = now;