Support setting max events per frame in ui_scene derived classes

This commit is contained in:
Nikita Lisitsa 2022-02-05 12:42:45 +03:00
parent 29bdfb4dd2
commit 323c5a714f
2 changed files with 5 additions and 4 deletions

View file

@ -38,6 +38,8 @@ namespace psemek::app
protected:
std::optional<std::size_t> max_events_per_frame_ = 64;
std::shared_ptr<ui::element> get_ui() { return ui_; }
void set_ui(std::shared_ptr<ui::element> ui);

View file

@ -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()