diff options
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/geometry.rs | 20 | ||||
-rw-r--r-- | core/src/lib.rs | 2 |
2 files changed, 22 insertions, 0 deletions
diff --git a/core/src/geometry.rs b/core/src/geometry.rs new file mode 100644 index 00000000..f04ce42e --- /dev/null +++ b/core/src/geometry.rs @@ -0,0 +1,20 @@ +/// A two-dimensional vertex which has a color +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct Vertex2D { + /// The vertex position + pub position: [f32; 2], + /// The vertex color in rgba + pub color: [f32; 4], +} + +/// A set of [`Vertex2D`] and indices for drawing some 2D geometry on the GPU. +/// +/// [`Vertex2D`]: struct.Vertex2D.html +#[derive(Clone, Debug)] +pub struct Geometry2D { + /// The vertices for this geometry + pub vertices: Vec<Vertex2D>, + /// The indices for this geometry + pub indices: Vec<u16>, +} diff --git a/core/src/lib.rs b/core/src/lib.rs index 821b09c1..881f56c9 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -23,6 +23,7 @@ mod length; mod point; mod rectangle; mod vector; +mod geometry; pub use align::{Align, HorizontalAlignment, VerticalAlignment}; pub use background::Background; @@ -32,6 +33,7 @@ pub use length::Length; pub use point::Point; pub use rectangle::Rectangle; pub use vector::Vector; +pub use geometry::{Vertex2D, Geometry2D}; #[cfg(feature = "command")] mod command; |