From fc82d411547986d362a7fa4c1ba08d1aa1259fdd Mon Sep 17 00:00:00 2001 From: John-Mark Allen Date: Mon, 21 Jun 2021 21:16:42 +0100 Subject: [PATCH] Add accurate framerate to basic example --- imgui-glow-renderer/examples/01_basic.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/imgui-glow-renderer/examples/01_basic.rs b/imgui-glow-renderer/examples/01_basic.rs index 84aebe8..2172c44 100644 --- a/imgui-glow-renderer/examples/01_basic.rs +++ b/imgui-glow-renderer/examples/01_basic.rs @@ -1,6 +1,8 @@ //! A basic self-contained example to get you from zero-to-demo-window as fast //! as possible. +use std::time::Instant; + use glow::HasContext; use glutin::{event_loop::EventLoop, WindowedContext}; use imgui_winit_support::WinitPlatform; @@ -23,10 +25,19 @@ fn main() { let mut ig_renderer = imgui_glow_renderer::auto_renderer(gl, &mut imgui_context) .expect("failed to create renderer"); + let mut last_frame = Instant::now(); + // Standard winit event loop event_loop.run(move |event, _, control_flow| { *control_flow = glutin::event_loop::ControlFlow::Wait; match event { + glutin::event::Event::NewEvents(_) => { + let now = Instant::now(); + imgui_context + .io_mut() + .update_delta_time(now.duration_since(last_frame)); + last_frame = now; + } glutin::event::Event::MainEventsCleared => { winit_platform .prepare_frame(imgui_context.io_mut(), window.window())