From 9df8a4d197e66accb389edb5a5c54117933f157e Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 28 Jun 2026 00:09:06 +0200 Subject: feat(engine): add windowing DPI utilities --- engine/src/windowing/window.rs | 41 +++++++---------------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) (limited to 'engine/src/windowing/window.rs') diff --git a/engine/src/windowing/window.rs b/engine/src/windowing/window.rs index 7be2562..039d98a 100644 --- a/engine/src/windowing/window.rs +++ b/engine/src/windowing/window.rs @@ -1,8 +1,8 @@ use std::borrow::Cow; -use crate::data_types::dimens::Dimens; use crate::ecs::Component; use crate::reflection::Reflection; +use crate::windowing::dpi::PhysicalSize; pub mod platform; @@ -99,7 +99,7 @@ pub struct Window pub title: String, pub cursor_visible: bool, pub cursor_grab_mode: CursorGrabMode, - pub inner_size: Dimens, + pub inner_size: PhysicalSize, wid: Id, scale_factor: f64, } @@ -137,15 +137,15 @@ impl Window winit_window.set_title(&self.title); winit_window.set_cursor_visible(self.cursor_visible); - let curr_inner_size = winit_window.inner_size(); + let curr_inner_size = winit_window.inner_size().clone().into(); let inner_size_request_result = match winit_window - .request_inner_size(winit::dpi::Size::Physical(self.inner_size.into())) + .request_inner_size(winit::dpi::Size::Physical(self.inner_size.clone().into())) { // The comparison of curr_inner_size is in case the user's windowing system // lies about using the requested inner size - None if curr_inner_size == self.inner_size.into() => Ok(()), - None => Err(curr_inner_size.into()), + None if curr_inner_size == self.inner_size => Ok(()), + None => Err(curr_inner_size), Some(inner_size) => Err(inner_size.into()), }; @@ -154,11 +154,6 @@ impl Window } } - pub(crate) fn set_inner_size(&mut self, inner_size: Dimens) - { - self.inner_size = inner_size; - } - pub(crate) fn set_scale_factor(&mut self, scale_factor: f64) { self.scale_factor = scale_factor; @@ -184,30 +179,8 @@ pub enum CursorGrabMode /// A unique identifier for an X11 visual. pub type XVisualID = u32; -impl

From> for Dimens

-{ - fn from(size: winit::dpi::PhysicalSize

) -> Self - { - Self { - width: size.width, - height: size.height, - } - } -} - -impl

From> for winit::dpi::PhysicalSize

-{ - fn from(dimens: Dimens

) -> Self - { - Self { - width: dimens.width, - height: dimens.height, - } - } -} - #[derive(Debug)] pub(crate) struct ApplyResults { - pub inner_size_request: Result<(), Dimens>, + pub inner_size_request: Result<(), PhysicalSize>, } -- cgit v1.2.3-18-g5258