diff --git a/libs/app/include/psemek/app/ui_scene.hpp b/libs/app/include/psemek/app/ui_scene.hpp index 4696d52d..de64b7c5 100644 --- a/libs/app/include/psemek/app/ui_scene.hpp +++ b/libs/app/include/psemek/app/ui_scene.hpp @@ -38,6 +38,8 @@ namespace psemek::app protected: + std::optional max_events_per_frame_ = 64; + std::shared_ptr get_ui() { return ui_; } void set_ui(std::shared_ptr ui); diff --git a/libs/app/source/ui_scene.cpp b/libs/app/source/ui_scene.cpp index 1315299c..acb3380a 100644 --- a/libs/app/source/ui_scene.cpp +++ b/libs/app/source/ui_scene.cpp @@ -90,11 +90,10 @@ namespace psemek::app void ui_scene::update() { - static constexpr std::size_t max_events_per_frame = 64; - controller_.update(update_clock_.restart().count()); - if (controller_.loop()->pump(max_events_per_frame) == max_events_per_frame) - log::warning() << "UI event loop had more than " << max_events_per_frame << " events, delaying others"; + std::size_t events = controller_.loop()->pump(max_events_per_frame_); + if (max_events_per_frame_ && events == *max_events_per_frame_) + log::warning() << "UI event loop had more than " << *max_events_per_frame_ << " events, delaying others"; } void ui_scene::present()