From bd57f345ed9dbed1d81683e48199626de2ea9044 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 27 Jun 2025 10:18:39 -0700 Subject: Restructure project --- src/util/geometry.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/util/geometry.c (limited to 'src/util/geometry.c') diff --git a/src/util/geometry.c b/src/util/geometry.c new file mode 100644 index 0000000..afe0109 --- /dev/null +++ b/src/util/geometry.c @@ -0,0 +1,44 @@ +#include + +#include + +static void make_quad_11_positions(vec2 positions[4]) { + positions[0] = vec2_make(-1, +1); + positions[1] = vec2_make(-1, -1); + positions[2] = vec2_make(+1, +1); + positions[3] = vec2_make(+1, -1); +} + +static void make_quad_01_positions(vec2 positions[4]) { + positions[0] = vec2_make(0, 0); + positions[1] = vec2_make(1, 0); + positions[2] = vec2_make(1, 1); + positions[3] = vec2_make(0, 1); +} + +static GeometryDesc make_quad_desc(vec2 positions[4]) { + GeometryDesc desc = (GeometryDesc){0}; + desc.positions2d.data = positions; + desc.positions2d.size_bytes = 4 * sizeof(vec2); + desc.num_verts = 4; + desc.type = TriangleStrip; + return desc; +} + +Geometry* gfx_make_quad_11(GfxCore* gfxcore) { + assert(gfxcore); + + vec2 positions[4]; + make_quad_11_positions(positions); + const GeometryDesc geometry_desc = make_quad_desc(positions); + return gfx_make_geometry(gfxcore, &geometry_desc); +} + +Geometry* gfx_make_quad_01(GfxCore* gfxcore) { + assert(gfxcore); + + vec2 positions[4]; + make_quad_01_positions(positions); + const GeometryDesc geometry_desc = make_quad_desc(positions); + return gfx_make_geometry(gfxcore, &geometry_desc); +} -- cgit v1.2.3