Implement an opaque Size type

It immutably ties physical and logical sizes to a specific scale factor.
This commit is contained in:
Héctor Ramón Jiménez 2020-01-09 04:22:27 +01:00 committed by Imbris
parent 1d71f78f90
commit fbc9deb424
3 changed files with 55 additions and 32 deletions

30
winit/src/size.rs Normal file
View file

@ -0,0 +1,30 @@
pub struct Size {
physical: winit::dpi::PhysicalSize<u32>,
logical: winit::dpi::LogicalSize<f64>,
scale_factor: f64,
}
impl Size {
pub fn new(
physical: winit::dpi::PhysicalSize<u32>,
scale_factor: f64,
) -> Size {
Size {
logical: physical.to_logical(scale_factor),
physical,
scale_factor,
}
}
pub fn physical(&self) -> winit::dpi::PhysicalSize<u32> {
self.physical
}
pub fn logical(&self) -> winit::dpi::LogicalSize<f64> {
self.logical
}
pub fn scale_factor(&self) -> f64 {
self.scale_factor
}
}