From fbc9deb424b0bfbc1ae7c7ee89ba08fecd049b2a Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 9 Jan 2020 04:22:27 +0100 Subject: Implement an opaque `Size` type It immutably ties physical and logical sizes to a specific scale factor. --- winit/src/size.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 winit/src/size.rs (limited to 'winit/src/size.rs') diff --git a/winit/src/size.rs b/winit/src/size.rs new file mode 100644 index 00000000..7e3056d4 --- /dev/null +++ b/winit/src/size.rs @@ -0,0 +1,30 @@ +pub struct Size { + physical: winit::dpi::PhysicalSize, + logical: winit::dpi::LogicalSize, + scale_factor: f64, +} + +impl Size { + pub fn new( + physical: winit::dpi::PhysicalSize, + scale_factor: f64, + ) -> Size { + Size { + logical: physical.to_logical(scale_factor), + physical, + scale_factor, + } + } + + pub fn physical(&self) -> winit::dpi::PhysicalSize { + self.physical + } + + pub fn logical(&self) -> winit::dpi::LogicalSize { + self.logical + } + + pub fn scale_factor(&self) -> f64 { + self.scale_factor + } +} -- cgit