blob: afe0109db22ebf70ed5e9f1046d08c5055edfddf (
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
|
#include <gfx/util/geometry.h>
#include <math/vec2.h>
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);
}
|