diff options
author | 2022-11-03 05:50:53 +0100 | |
---|---|---|
committer | 2022-11-03 05:50:53 +0100 | |
commit | 84d1b79fefc88534835fdfbe79bc0eb3b43627cf (patch) | |
tree | c7ec07de21c62a11b3f8bfec594a4421b78bc509 /graphics/src/triangle.rs | |
parent | e0bb707f1e3ee1ff27b5caee7d5782ecbad438fd (diff) | |
download | iced-84d1b79fefc88534835fdfbe79bc0eb3b43627cf.tar.gz iced-84d1b79fefc88534835fdfbe79bc0eb3b43627cf.tar.bz2 iced-84d1b79fefc88534835fdfbe79bc0eb3b43627cf.zip |
Move `mesh::Style` to `triangle` and reuse it in `fill` and `stroke`
Diffstat (limited to '')
-rw-r--r-- | graphics/src/triangle.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/graphics/src/triangle.rs b/graphics/src/triangle.rs index 39359cfb..04ff6d21 100644 --- a/graphics/src/triangle.rs +++ b/graphics/src/triangle.rs @@ -1,4 +1,6 @@ //! Draw geometry using meshes of triangles. +use crate::{Color, Gradient}; + use bytemuck::{Pod, Zeroable}; /// A set of [`Vertex2D`] and indices representing a list of triangles. @@ -19,3 +21,24 @@ pub struct Vertex2D { /// The vertex position in 2D space. pub position: [f32; 2], } + +#[derive(Debug, Clone, PartialEq)] +/// Supported shaders for triangle primitives. +pub enum Style { + /// Fill a primitive with a solid color. + Solid(Color), + /// Fill a primitive with an interpolated color. + Gradient(Gradient), +} + +impl From<Color> for Style { + fn from(color: Color) -> Self { + Self::Solid(color) + } +} + +impl From<Gradient> for Style { + fn from(gradient: Gradient) -> Self { + Self::Gradient(gradient) + } +} |