#pragma once #include #include "cglm/types.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; }