Stop polling in event loop on RedrawRequest::NextFrame

This commit is contained in:
Héctor Ramón Jiménez 2023-12-20 08:56:57 +01:00
parent e772e5a9e9
commit 50a7852cb8
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
3 changed files with 8 additions and 13 deletions

View file

@ -275,8 +275,6 @@ where
shell: &mut Shell<'_, Message>,
_viewport: &Rectangle,
) -> event::Status {
const FRAME_RATE: u64 = 60;
let state = tree.state.downcast_mut::<State>();
if let Event::Window(_, window::Event::RedrawRequested(now)) = event {
@ -287,9 +285,7 @@ where
);
state.cache.clear();
shell.request_redraw(RedrawRequest::At(
now + Duration::from_millis(1000 / FRAME_RATE),
));
shell.request_redraw(RedrawRequest::NextFrame);
}
event::Status::Ignored

View file

@ -196,16 +196,12 @@ where
shell: &mut Shell<'_, Message>,
_viewport: &Rectangle,
) -> event::Status {
const FRAME_RATE: u64 = 60;
let state = tree.state.downcast_mut::<State>();
if let Event::Window(_, window::Event::RedrawRequested(now)) = event {
*state = state.timed_transition(self.cycle_duration, now);
shell.request_redraw(RedrawRequest::At(
now + Duration::from_millis(1000 / FRAME_RATE),
));
shell.request_redraw(RedrawRequest::NextFrame);
}
event::Status::Ignored