diff options
| author | Fabrice <fabrice@schaub-dev.xyz> | 2026-02-12 12:44:44 +0100 |
|---|---|---|
| committer | Fabrice <fabrice@schaub-dev.xyz> | 2026-02-12 12:44:44 +0100 |
| commit | 716cccb220a9e2337320ac591d575a2f68b4ed2c (patch) | |
| tree | 5d5151ff0c1dda0b847e1e0bf6ab8d6f2ac61c2c /src/geometry.h | |
| parent | c8e3a40dfcc09a051a6bafd06c7591b82bf17710 (diff) | |
ohj
Diffstat (limited to 'src/geometry.h')
| -rw-r--r-- | src/geometry.h | 50 |
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; +} |
