summaryrefslogtreecommitdiff
path: root/src/geometry.h
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-02-12 12:44:44 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-02-12 12:44:44 +0100
commit716cccb220a9e2337320ac591d575a2f68b4ed2c (patch)
tree5d5151ff0c1dda0b847e1e0bf6ab8d6f2ac61c2c /src/geometry.h
parentc8e3a40dfcc09a051a6bafd06c7591b82bf17710 (diff)
ohj
Diffstat (limited to 'src/geometry.h')
-rw-r--r--src/geometry.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/geometry.h b/src/geometry.h
new file mode 100644
index 0000000..d15b8ae
--- /dev/null
+++ b/src/geometry.h
@@ -0,0 +1,50 @@
+#pragma once
+
+#include <cglm/cglm.h>
+
+#include "cglm/types.h"
+#include "glad.h"
+#include "utils.h"
+
+struct quad_s {
+ vec2 vertices[WAYC_QUAD_NVERTS];
+ u32 indices[WAYC_QUAD_NINDICES];
+};
+
+static inline void wayc_quad_init(quad_s* quad, f32 left, f32 top, f32 right,
+ f32 bottom) {
+ wayc_notnull(quad);
+
+ /*
+ 0 ---- 1
+ | |
+ | |
+ 3 ---- 2
+ */
+
+ // Vertices (CCW order)
+ WAYC_X(quad->vertices[0]) = left;
+ WAYC_Y(quad->vertices[0]) = top;
+
+ WAYC_X(quad->vertices[1]) = right;
+ WAYC_Y(quad->vertices[1]) = top;
+
+ WAYC_X(quad->vertices[2]) = right;
+ WAYC_Y(quad->vertices[2]) = bottom;
+
+ WAYC_X(quad->vertices[3]) = left;
+ WAYC_Y(quad->vertices[3]) = bottom;
+
+ /*
+ Triangles (CCW):
+ 0 1 2
+ 0 2 3
+ */
+
+ quad->indices[0] = 0;
+ quad->indices[1] = 1;
+ quad->indices[2] = 2;
+ quad->indices[3] = 0;
+ quad->indices[4] = 2;
+ quad->indices[5] = 3;
+}