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