From 7f6e3ad286b86d3b06bc4c77ea62f716f72d5b59 Mon Sep 17 00:00:00 2001 From: Malik Olivier Boussejra Date: Fri, 10 Aug 2018 14:27:39 +0900 Subject: [PATCH] [examples] support: Fix scale bug The new version of glutin apparently changed the behaviour regarding HDIPI. Thanks to the patch submitted by semtexzv [1], this commit fixes the issue. [1] https://github.com/Gekkio/imgui-rs/pull/139/commits/b6f5b278830b2859a748b6df520d05fa78484b48 --- imgui-examples/examples/support/mod.rs | 17 +++++------------ imgui-examples/examples/support_gfx/mod.rs | 17 +++++------------ 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/imgui-examples/examples/support/mod.rs b/imgui-examples/examples/support/mod.rs index 6ee1986..011b8f7 100644 --- a/imgui-examples/examples/support/mod.rs +++ b/imgui-examples/examples/support/mod.rs @@ -129,14 +129,11 @@ pub fn run bool>(title: String, clear_color: [f32; 4], mut run_ }); } - let size_pixels = gl_window.get_inner_size().unwrap(); + let size_points = gl_window.get_inner_size().unwrap(); let hdipi = gl_window.get_hidpi_factor(); - let size_points = ( - (size_pixels.width as f64 / hdipi) as u32, - (size_pixels.height as f64 / hdipi) as u32, - ); + let size_pixels = size_points.to_physical(hdipi); - let ui = imgui.frame(size_points, size_pixels.into(), delta_s); + let ui = imgui.frame(size_points.into(), size_pixels.into(), delta_s); if !run_ui(&ui) { break; } @@ -182,11 +179,7 @@ fn configure_keys(imgui: &mut ImGui) { } fn update_mouse(imgui: &mut ImGui, mouse_state: &mut MouseState) { - let scale = imgui.display_framebuffer_scale(); - imgui.set_mouse_pos( - mouse_state.pos.0 as f32 / scale.0, - mouse_state.pos.1 as f32 / scale.1, - ); + imgui.set_mouse_pos(mouse_state.pos.0 as f32, mouse_state.pos.1 as f32); imgui.set_mouse_down( &[ mouse_state.pressed.0, @@ -196,6 +189,6 @@ fn update_mouse(imgui: &mut ImGui, mouse_state: &mut MouseState) { false, ], ); - imgui.set_mouse_wheel(mouse_state.wheel / scale.1); + imgui.set_mouse_wheel(mouse_state.wheel); mouse_state.wheel = 0.0; } diff --git a/imgui-examples/examples/support_gfx/mod.rs b/imgui-examples/examples/support_gfx/mod.rs index 30e5060..bb198f9 100644 --- a/imgui-examples/examples/support_gfx/mod.rs +++ b/imgui-examples/examples/support_gfx/mod.rs @@ -174,14 +174,11 @@ pub fn run bool>(title: String, clear_color: [f32; 4], mut run_ }); } - let size_pixels = window.get_inner_size().unwrap(); + let size_points = window.get_inner_size().unwrap(); let hdipi = window.get_hidpi_factor(); - let size_points = ( - (size_pixels.width as f64 / hdipi) as u32, - (size_pixels.height as f64 / hdipi) as u32, - ); + let size_pixels = size_points.to_physical(hdipi); - let ui = imgui.frame(size_points, size_pixels.into(), delta_s); + let ui = imgui.frame(size_points.into(), size_pixels.into(), delta_s); if !run_ui(&ui) { break; } @@ -221,11 +218,7 @@ fn configure_keys(imgui: &mut ImGui) { } fn update_mouse(imgui: &mut ImGui, mouse_state: &mut MouseState) { - let scale = imgui.display_framebuffer_scale(); - imgui.set_mouse_pos( - mouse_state.pos.0 as f32 / scale.0, - mouse_state.pos.1 as f32 / scale.1, - ); + imgui.set_mouse_pos(mouse_state.pos.0 as f32, mouse_state.pos.1 as f32); imgui.set_mouse_down( &[ mouse_state.pressed.0, @@ -235,6 +228,6 @@ fn update_mouse(imgui: &mut ImGui, mouse_state: &mut MouseState) { false, ], ); - imgui.set_mouse_wheel(mouse_state.wheel / scale.1); + imgui.set_mouse_wheel(mouse_state.wheel); mouse_state.wheel = 0.0; }