diff options
author | 2022-10-07 16:55:55 -0700 | |
---|---|---|
committer | 2022-10-07 16:55:55 -0700 | |
commit | fd5e1e5ab0b712cd6719733b5a68602176ae5ec4 (patch) | |
tree | 40c054f30aaebb1befeb25fb8852fd1fe70402b8 /graphics/src/widget/canvas/frame.rs | |
parent | a4a1262fa2d625be5ad7a37e409e0e9c399b09b6 (diff) | |
download | iced-fd5e1e5ab0b712cd6719733b5a68602176ae5ec4.tar.gz iced-fd5e1e5ab0b712cd6719733b5a68602176ae5ec4.tar.bz2 iced-fd5e1e5ab0b712cd6719733b5a68602176ae5ec4.zip |
Adjusted gradient transform function to be more readable.
Diffstat (limited to 'graphics/src/widget/canvas/frame.rs')
-rw-r--r-- | graphics/src/widget/canvas/frame.rs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/graphics/src/widget/canvas/frame.rs b/graphics/src/widget/canvas/frame.rs index d505cef7..1660fd6e 100644 --- a/graphics/src/widget/canvas/frame.rs +++ b/graphics/src/widget/canvas/frame.rs @@ -3,12 +3,13 @@ use std::borrow::Cow; use iced_native::{Point, Rectangle, Size, Vector}; +use crate::gradient::Gradient; +use crate::layer::mesh; use crate::triangle; +use crate::triangle::Vertex2D; use crate::widget::canvas::{path, Fill, Geometry, Path, Stroke, Text}; use crate::Primitive; -use crate::layer::mesh; -use crate::triangle::Vertex2D; use lyon::tessellation; /// The frame of a [`Canvas`]. @@ -38,12 +39,24 @@ pub(crate) struct Transform { impl Transform { /// Transforms the given [Point] by the transformation matrix. - pub(crate) fn transform_point(&self, point: &mut Point) { + fn transform_point(&self, point: &mut Point) { let transformed = self.raw.transform_point(Point2D::new(point.x, point.y)); point.x = transformed.x; point.y = transformed.y; } + + pub(crate) fn transform_gradient( + &self, + mut gradient: Gradient, + ) -> Gradient { + let coords = match &mut gradient { + Gradient::Linear(linear) => (&mut linear.start, &mut linear.end), + }; + self.transform_point(coords.0); + self.transform_point(coords.1); + gradient + } } impl Frame { |