blob: 6c3e36ab7fffef41387acfd67652fc693fa597d0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#pragma once
#include <cglm/cglm.h>
#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(struct 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;
}
|