summaryrefslogtreecommitdiffstats
path: root/graphics/src/triangle.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--graphics/src/triangle.rs23
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)
+ }
+}