From 716cccb220a9e2337320ac591d575a2f68b4ed2c Mon Sep 17 00:00:00 2001 From: Fabrice Date: Thu, 12 Feb 2026 12:44:44 +0100 Subject: ohj --- src/geometry.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/geometry.h (limited to 'src/geometry.h') 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 + +#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; +} -- cgit v1.2.3