diff options
author | 2023-09-07 06:03:41 +0200 | |
---|---|---|
committer | 2023-09-07 06:03:41 +0200 | |
commit | b5e7fb240cda919b66fb17a18cedd6d2ec064eaf (patch) | |
tree | ea4ee5a4fd82854547b82c3c125ee30893cc9235 /wgpu | |
parent | d82c8b59e6a3e7743017c7674766dfa5bdb7c6f0 (diff) | |
parent | 09965b686ea6bf82e6c13ed5331bbeb059848e4f (diff) | |
download | iced-b5e7fb240cda919b66fb17a18cedd6d2ec064eaf.tar.gz iced-b5e7fb240cda919b66fb17a18cedd6d2ec064eaf.tar.bz2 iced-b5e7fb240cda919b66fb17a18cedd6d2ec064eaf.zip |
Merge pull request #2070 from ripytide/master
Added a Frame::scale_nonuniform method
Diffstat (limited to 'wgpu')
-rw-r--r-- | wgpu/src/geometry.rs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/wgpu/src/geometry.rs b/wgpu/src/geometry.rs index e421e0b0..c3e16f8c 100644 --- a/wgpu/src/geometry.rs +++ b/wgpu/src/geometry.rs @@ -444,11 +444,21 @@ impl Frame { self.transforms.current.is_identity = false; } - /// Applies a scaling to the current transform of the [`Frame`]. + /// Applies a uniform scaling to the current transform of the [`Frame`]. #[inline] - pub fn scale(&mut self, scale: f32) { + pub fn scale(&mut self, scale: impl Into<f32>) { + let scale = scale.into(); + + self.scale_nonuniform(Vector { x: scale, y: scale }); + } + + /// Applies a non-uniform scaling to the current transform of the [`Frame`]. + #[inline] + pub fn scale_nonuniform(&mut self, scale: impl Into<Vector>) { + let scale = scale.into(); + self.transforms.current.raw = - self.transforms.current.raw.pre_scale(scale, scale); + self.transforms.current.raw.pre_scale(scale.x, scale.y); self.transforms.current.is_identity = false; } |