summaryrefslogtreecommitdiffstats
path: root/winit/src/size.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-01-09 04:22:27 +0100
committerLibravatar Imbris <imbrisf@gmail.com>2020-02-07 23:50:10 -0500
commitfbc9deb424b0bfbc1ae7c7ee89ba08fecd049b2a (patch)
tree18aa49a724ce203b8772351925392271546dfdc1 /winit/src/size.rs
parent1d71f78f906dc74aa3d724dd09cb6c6225686d76 (diff)
downloadiced-fbc9deb424b0bfbc1ae7c7ee89ba08fecd049b2a.tar.gz
iced-fbc9deb424b0bfbc1ae7c7ee89ba08fecd049b2a.tar.bz2
iced-fbc9deb424b0bfbc1ae7c7ee89ba08fecd049b2a.zip
Implement an opaque `Size` type
It immutably ties physical and logical sizes to a specific scale factor.
Diffstat (limited to 'winit/src/size.rs')
-rw-r--r--winit/src/size.rs30
1 files changed, 30 insertions, 0 deletions
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<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
+ }
+}