From 6eb56529dac0ed49f43394b2b61de9b2c32a163c Mon Sep 17 00:00:00 2001 From: dbr Date: Sun, 3 Oct 2021 12:20:47 +1000 Subject: [PATCH] Use ControlFlow:Poll in event loop ControlFlow::Wait is more efficient but doesn't appear to currently work well on all platforms. Removed entirely from the earlier examples to keep them as simple as possible, but noted `ControlFlow::Wait` in the last example Closes #542 --- imgui-glow-renderer/examples/01_basic.rs | 1 - imgui-glow-renderer/examples/02_triangle.rs | 1 - imgui-glow-renderer/examples/03_triangle_gles.rs | 1 - imgui-glow-renderer/examples/04_custom_textures.rs | 6 +++++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/imgui-glow-renderer/examples/01_basic.rs b/imgui-glow-renderer/examples/01_basic.rs index ffdd4c6..1a34b01 100644 --- a/imgui-glow-renderer/examples/01_basic.rs +++ b/imgui-glow-renderer/examples/01_basic.rs @@ -29,7 +29,6 @@ fn main() { // 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(); diff --git a/imgui-glow-renderer/examples/02_triangle.rs b/imgui-glow-renderer/examples/02_triangle.rs index f1c1e98..512b84f 100644 --- a/imgui-glow-renderer/examples/02_triangle.rs +++ b/imgui-glow-renderer/examples/02_triangle.rs @@ -17,7 +17,6 @@ fn main() { let mut last_frame = Instant::now(); event_loop.run(move |event, _, control_flow| { - *control_flow = glutin::event_loop::ControlFlow::Wait; match event { glutin::event::Event::NewEvents(_) => { let now = Instant::now(); diff --git a/imgui-glow-renderer/examples/03_triangle_gles.rs b/imgui-glow-renderer/examples/03_triangle_gles.rs index b20d258..a63f1ee 100644 --- a/imgui-glow-renderer/examples/03_triangle_gles.rs +++ b/imgui-glow-renderer/examples/03_triangle_gles.rs @@ -32,7 +32,6 @@ fn main() { let mut last_frame = Instant::now(); event_loop.run(move |event, _, control_flow| { - *control_flow = glutin::event_loop::ControlFlow::Wait; match event { glutin::event::Event::NewEvents(_) => { let now = Instant::now(); diff --git a/imgui-glow-renderer/examples/04_custom_textures.rs b/imgui-glow-renderer/examples/04_custom_textures.rs index 5020386..69866a0 100644 --- a/imgui-glow-renderer/examples/04_custom_textures.rs +++ b/imgui-glow-renderer/examples/04_custom_textures.rs @@ -36,7 +36,11 @@ fn main() { let mut last_frame = Instant::now(); event_loop.run(move |event, _, control_flow| { - *control_flow = glutin::event_loop::ControlFlow::Wait; + // Note we can potentially make the loop more efficient by + // changing the `Poll` (default) value to `ControlFlow::Poll` + // but be careful to test on all target platforms! + *control_flow = glutin::event_loop::ControlFlow::Poll; + match event { glutin::event::Event::NewEvents(_) => { let now = Instant::now();