Added support for gradients to respect current frame transform.
This commit is contained in:
parent
f4878a1a66
commit
9c7bf417ac
7 changed files with 93 additions and 56 deletions
|
|
@ -3,6 +3,7 @@
|
|||
use iced_native::Color;
|
||||
use crate::gradient::Gradient;
|
||||
use crate::layer::mesh;
|
||||
use crate::widget::canvas::frame::Transform;
|
||||
|
||||
/// The style of a stroke.
|
||||
#[derive(Debug, Clone)]
|
||||
|
|
@ -68,11 +69,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))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue