summaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/geometry.rs20
-rw-r--r--core/src/lib.rs2
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;