Skip to content

Commit 8956c17

Browse files
committed
[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] imgui-rs@b6f5b27
1 parent 676795b commit 8956c17

File tree

2 files changed

+10
-24
lines changed

2 files changed

+10
-24
lines changed

imgui-examples/examples/support/mod.rs

+5-12
Original file line numberDiff line numberDiff line change
@@ -129,14 +129,11 @@ pub fn run<F: FnMut(&Ui) -> bool>(title: String, clear_color: [f32; 4], mut run_
129129
});
130130
}
131131

132-
let size_pixels = gl_window.get_inner_size().unwrap();
132+
let size_points = gl_window.get_inner_size().unwrap();
133133
let hdipi = gl_window.get_hidpi_factor();
134-
let size_points = (
135-
(size_pixels.width as f64 / hdipi) as u32,
136-
(size_pixels.height as f64 / hdipi) as u32,
137-
);
134+
let size_pixels = size_points.to_physical(hdipi);
138135

139-
let ui = imgui.frame(size_points, size_pixels.into(), delta_s);
136+
let ui = imgui.frame(size_points.into(), size_pixels.into(), delta_s);
140137
if !run_ui(&ui) {
141138
break;
142139
}
@@ -182,11 +179,7 @@ fn configure_keys(imgui: &mut ImGui) {
182179
}
183180

184181
fn update_mouse(imgui: &mut ImGui, mouse_state: &mut MouseState) {
185-
let scale = imgui.display_framebuffer_scale();
186-
imgui.set_mouse_pos(
187-
mouse_state.pos.0 as f32 / scale.0,
188-
mouse_state.pos.1 as f32 / scale.1,
189-
);
182+
imgui.set_mouse_pos(mouse_state.pos.0 as f32, mouse_state.pos.1 as f32);
190183
imgui.set_mouse_down(
191184
&[
192185
mouse_state.pressed.0,
@@ -196,6 +189,6 @@ fn update_mouse(imgui: &mut ImGui, mouse_state: &mut MouseState) {
196189
false,
197190
],
198191
);
199-
imgui.set_mouse_wheel(mouse_state.wheel / scale.1);
192+
imgui.set_mouse_wheel(mouse_state.wheel);
200193
mouse_state.wheel = 0.0;
201194
}

imgui-examples/examples/support_gfx/mod.rs

+5-12
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,11 @@ pub fn run<F: FnMut(&Ui) -> bool>(title: String, clear_color: [f32; 4], mut run_
174174
});
175175
}
176176

177-
let size_pixels = window.get_inner_size().unwrap();
177+
let size_points = window.get_inner_size().unwrap();
178178
let hdipi = window.get_hidpi_factor();
179-
let size_points = (
180-
(size_pixels.width as f64 / hdipi) as u32,
181-
(size_pixels.height as f64 / hdipi) as u32,
182-
);
179+
let size_pixels = size_points.to_physical(hdipi);
183180

184-
let ui = imgui.frame(size_points, size_pixels.into(), delta_s);
181+
let ui = imgui.frame(size_points.into(), size_pixels.into(), delta_s);
185182
let texture = ui.make_texture(im_str!("#STANDARD"), || gfx_load_texture(&mut factory));
186183
ui.image(&texture, (100.0, 100.0)).build();
187184
let texture = ui.replace_texture(im_str!("#CHANGE"), gfx_load_texture_change(&mut factory));
@@ -226,11 +223,7 @@ fn configure_keys(imgui: &mut ImGui) {
226223
}
227224

228225
fn update_mouse(imgui: &mut ImGui, mouse_state: &mut MouseState) {
229-
let scale = imgui.display_framebuffer_scale();
230-
imgui.set_mouse_pos(
231-
mouse_state.pos.0 as f32 / scale.0,
232-
mouse_state.pos.1 as f32 / scale.1,
233-
);
226+
imgui.set_mouse_pos(mouse_state.pos.0 as f32, mouse_state.pos.1 as f32);
234227
imgui.set_mouse_down(
235228
&[
236229
mouse_state.pressed.0,
@@ -240,7 +233,7 @@ fn update_mouse(imgui: &mut ImGui, mouse_state: &mut MouseState) {
240233
false,
241234
],
242235
);
243-
imgui.set_mouse_wheel(mouse_state.wheel / scale.1);
236+
imgui.set_mouse_wheel(mouse_state.wheel);
244237
mouse_state.wheel = 0.0;
245238
}
246239

0 commit comments

Comments
 (0)