diff options
Diffstat (limited to 'graphics/src/triangle.rs')
-rw-r--r-- | graphics/src/triangle.rs | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/graphics/src/triangle.rs b/graphics/src/triangle.rs index 05028f51..f52b2339 100644 --- a/graphics/src/triangle.rs +++ b/graphics/src/triangle.rs @@ -3,23 +3,31 @@ use bytemuck::{Pod, Zeroable}; /// A set of [`Vertex2D`] and indices representing a list of triangles. #[derive(Clone, Debug)] -pub struct Mesh2D { +pub struct Mesh2D<T> { /// The vertices of the mesh - pub vertices: Vec<Vertex2D>, + pub vertices: Vec<T>, /// The list of vertex indices that defines the triangles of the mesh. /// - /// Therefore, this list should always have a length that is a multiple of - /// 3. + /// Therefore, this list should always have a length that is a multiple of 3. pub indices: Vec<u32>, } -/// A two-dimensional vertex with some color in __linear__ RGBA. +/// A two-dimensional vertex. #[derive(Copy, Clone, Debug, Zeroable, Pod)] #[repr(C)] pub struct Vertex2D { - /// The vertex position + /// The vertex position in 2D space. pub position: [f32; 2], - /// The vertex color in __linear__ RGBA. +} + +/// A two-dimensional vertex with a color. +#[derive(Copy, Clone, Debug, Zeroable, Pod)] +#[repr(C)] +pub struct ColoredVertex2D { + /// The vertex position in 2D space. + pub position: [f32; 2], + + /// The color of the vertex in __linear__ RGBA. pub color: [f32; 4], } |