message: fixes You have to update the timers after the control flow. Then a new time is set only after you have passed the previous one
diff: @@ -52,9 +52,6 @@ fn main() {
  let mut t: f32 = -0.5;
  event_loop.run(move |event, _, control_flow| {
  - let next_frame_time = std::time::Instant::now() +
  - std::time::Duration::from_nanos(16_666_667);
  - *control_flow = glutin::event_loop::ControlFlow::WaitUntil(next_frame_time);
  match event {
  glutin::event::Event::WindowEvent { event, .. } => match event {
  @@ -72,6 +69,10 @@ fn main() {
  _ => return,
  }
  + let next_frame_time = std::time::Instant::now() +
  + std::time::Duration::from_nanos(16_666_667);
  + *control_flow = glutin::event_loop::ControlFlow::WaitUntil(next_frame_time);
  +
  // we update `t`
  t += 0.0002;
  if t > 0.5 {
  