#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); }