diff options
Diffstat (limited to 'graphics/src/widget/canvas/fill.rs')
-rw-r--r-- | graphics/src/widget/canvas/fill.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/graphics/src/widget/canvas/fill.rs b/graphics/src/widget/canvas/fill.rs index 55cb3966..768c2b9c 100644 --- a/graphics/src/widget/canvas/fill.rs +++ b/graphics/src/widget/canvas/fill.rs @@ -3,6 +3,7 @@ use crate::gradient::Gradient; use crate::layer::mesh; use iced_native::Color; +use crate::widget::canvas::frame::Transform; /// The style used to fill geometry. #[derive(Debug, Clone)] @@ -50,11 +51,16 @@ pub enum Style<'a> { Gradient(&'a Gradient), } -impl<'a> Into<mesh::Style> for Style<'a> { - fn into(self) -> mesh::Style { +impl<'a> Style<'a> { + /// Converts a fill's [Style] to a [mesh::Style] for use in the renderer's shader. + pub(crate) fn as_mesh_style(&self, transform: &Transform) -> mesh::Style { match self { - Style::Solid(color) => mesh::Style::Solid(color), - Style::Gradient(gradient) => gradient.clone().into(), + Style::Solid(color) => { + mesh::Style::Solid(*color) + }, + Style::Gradient(gradient) => { + mesh::Style::Gradient((*gradient).clone().transform(transform)) + } } } } |