summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-09-07 05:51:39 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-09-07 05:51:39 +0200
commit09965b686ea6bf82e6c13ed5331bbeb059848e4f (patch)
treef19bfc7558c874c981ddb7d8a2046858bd04a6b8
parent1f263051b6c2d2f2a02633d8a6277c772ae8e7f9 (diff)
downloadiced-09965b686ea6bf82e6c13ed5331bbeb059848e4f.tar.gz
iced-09965b686ea6bf82e6c13ed5331bbeb059848e4f.tar.bz2
iced-09965b686ea6bf82e6c13ed5331bbeb059848e4f.zip
Make `scale` methods in `Frame` generic over `f32` and `Vector`
-rw-r--r--examples/game_of_life/src/main.rs8
-rw-r--r--renderer/src/geometry.rs4
-rw-r--r--tiny_skia/src/geometry.rs8
-rw-r--r--wgpu/src/geometry.rs8
-rw-r--r--widget/src/qr_code.rs2
5 files changed, 19 insertions, 11 deletions
diff --git a/examples/game_of_life/src/main.rs b/examples/game_of_life/src/main.rs
index e951d734..1f266c8e 100644
--- a/examples/game_of_life/src/main.rs
+++ b/examples/game_of_life/src/main.rs
@@ -550,7 +550,7 @@ mod grid {
frame.translate(center);
frame.scale(self.scaling);
frame.translate(self.translation);
- frame.scale(Cell::SIZE as f32);
+ frame.scale(Cell::SIZE);
let region = self.visible_region(frame.size());
@@ -576,7 +576,7 @@ mod grid {
frame.translate(center);
frame.scale(self.scaling);
frame.translate(self.translation);
- frame.scale(Cell::SIZE as f32);
+ frame.scale(Cell::SIZE);
frame.fill_rectangle(
Point::new(cell.j as f32, cell.i as f32),
@@ -630,7 +630,7 @@ mod grid {
frame.translate(center);
frame.scale(self.scaling);
frame.translate(self.translation);
- frame.scale(Cell::SIZE as f32);
+ frame.scale(Cell::SIZE);
let region = self.visible_region(frame.size());
let rows = region.rows();
@@ -834,7 +834,7 @@ mod grid {
}
impl Cell {
- const SIZE: usize = 20;
+ const SIZE: u16 = 20;
fn at(position: Point) -> Cell {
let i = (position.y / Cell::SIZE as f32).ceil() as isize;
diff --git a/renderer/src/geometry.rs b/renderer/src/geometry.rs
index 0e524169..1a974b7f 100644
--- a/renderer/src/geometry.rs
+++ b/renderer/src/geometry.rs
@@ -170,13 +170,13 @@ impl 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>) {
delegate!(self, frame, frame.scale(scale));
}
/// Applies a non-uniform scaling to the current transform of the [`Frame`].
#[inline]
- pub fn scale_nonuniform(&mut self, scale: Vector) {
+ pub fn scale_nonuniform(&mut self, scale: impl Into<Vector>) {
delegate!(self, frame, frame.scale_nonuniform(scale));
}
diff --git a/tiny_skia/src/geometry.rs b/tiny_skia/src/geometry.rs
index ced5b408..1df5aa18 100644
--- a/tiny_skia/src/geometry.rs
+++ b/tiny_skia/src/geometry.rs
@@ -154,11 +154,15 @@ impl Frame {
.pre_concat(tiny_skia::Transform::from_rotate(angle.to_degrees()));
}
- 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 });
}
- pub fn scale_nonuniform(&mut self, scale: Vector) {
+ pub fn scale_nonuniform(&mut self, scale: impl Into<Vector>) {
+ let scale = scale.into();
+
self.transform = self.transform.pre_scale(scale.x, scale.y);
}
diff --git a/wgpu/src/geometry.rs b/wgpu/src/geometry.rs
index 64b98469..c3e16f8c 100644
--- a/wgpu/src/geometry.rs
+++ b/wgpu/src/geometry.rs
@@ -446,13 +446,17 @@ impl 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: Vector) {
+ 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.x, scale.y);
self.transforms.current.is_identity = false;
diff --git a/widget/src/qr_code.rs b/widget/src/qr_code.rs
index 51a541fd..75409091 100644
--- a/widget/src/qr_code.rs
+++ b/widget/src/qr_code.rs
@@ -86,7 +86,7 @@ impl<'a, Message, Theme> Widget<Message, Renderer<Theme>> for QRCode<'a> {
let geometry =
self.state.cache.draw(renderer, bounds.size(), |frame| {
// Scale units to cell size
- frame.scale(f32::from(self.cell_size));
+ frame.scale(self.cell_size);
// Draw background
frame.fill_rectangle(