1 module ecs_utils.gfx.vertex;
2
3 import bubel.ecs.std;
4
5 struct Vertex
6 {
7 void create()
8 {
9 data = Mallocator.make!Data;
10 }
11
12 void bind()
13 {
14
15 }
16
17 void enableStates()
18 {
19
20 }
21
22 void attachBindings(scope Binding[] bindings)
23 {
24 data.bindings = Mallocator.makeArray(bindings);
25 }
26
27 enum Type
28 {
29 byte_r_snorm,
30 byte_r_unorm,
31 byte_rg_snorm,
32 byte_rg_unorm,
33 byte_rgb_snorm,
34 byte_rgb_unorm,
35 byte_rgba_snorm,
36 byte_rgba_unorm,
37 short_r_snorm,
38 short_r_unorm,
39 short_rg_snorm,
40 short_rg_unorm,
41 short_rgb_snorm,
42 short_rgb_unorm,
43 short_rgba_snorm,
44 short_rgba_unorm,
45 float_r,
46 float_rg,
47 float_rgb,
48 float_rgba
49 }
50
51 struct Binding
52 {
53 Type type;
54 uint stride;
55 }
56
57 struct Data
58 {
59 Binding[] bindings;
60 uint size;
61 }
62
63 Data* data;
64 }