summaryrefslogtreecommitdiff
path: root/engine/src/ui
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-06-28 00:09:06 +0200
committerHampusM <hampus@hampusmat.com>2026-06-30 18:24:47 +0200
commit9df8a4d197e66accb389edb5a5c54117933f157e (patch)
tree2d348fea32df9dd73ec6b961fae63e8ccb60899d /engine/src/ui
parent4a5e3e612e8b597dd1734afefd01324b74fd99ab (diff)
feat(engine): add windowing DPI utilities
Diffstat (limited to 'engine/src/ui')
-rw-r--r--engine/src/ui/imgui.rs15
1 files changed, 7 insertions, 8 deletions
diff --git a/engine/src/ui/imgui.rs b/engine/src/ui/imgui.rs
index aa90e9f..daf8494 100644
--- a/engine/src/ui/imgui.rs
+++ b/engine/src/ui/imgui.rs
@@ -73,6 +73,7 @@ use crate::texture::{
Wrapping as TextureWrapping,
};
use crate::vector::Vec2;
+use crate::windowing::dpi::PhysicalSize;
use crate::windowing::window::Window;
mod reexports
@@ -182,17 +183,15 @@ fn handle_window_changed(
.get_io_mut()
.set_display_framebuffer_scale([hidpi_factor as f32, hidpi_factor as f32]);
- let window_size = Dimens {
- width: window.inner_size.width as f32,
- height: window.inner_size.height as f32,
- };
-
- let window_logical_size = window_size / (hidpi_factor as f32);
+ let window_size_logical = PhysicalSize {
+ width: window.inner_size.width as f64,
+ height: window.inner_size.height as f64,
+ }.to_logical::<f64>(hidpi_factor);
context
.ctx
.get_io_mut()
- .set_display_size([window_logical_size.width, window_logical_size.height]);
+ .set_display_size([window_size_logical.width as f32, window_size_logical.height as f32]);
}
fn update(
@@ -494,7 +493,7 @@ fn update_inputs(
context.ctx.get_io_mut().add_input_character(character);
}
- let mouse_pos = mouse.position / window.scale_factor();
+ let mouse_pos = mouse.position.to_logical::<f64>(window.scale_factor());
context
.ctx