blob: 2ae7c23d929e08af853f822737ce7769de1fe276 (
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
|
#include "ral.h"
size_t vertex_attrib_size(vertex_attrib_type attr) {
switch (attr) {
case ATTR_F32:
case ATTR_U32:
case ATTR_I32:
return 4;
case ATTR_F32x2:
case ATTR_U32x2:
case ATTR_I32x2:
return 8;
case ATTR_F32x3:
case ATTR_U32x3:
case ATTR_I32x3:
return 12;
case ATTR_F32x4:
case ATTR_U32x4:
case ATTR_I32x4:
return 16;
break;
}
}
void vertex_desc_add(vertex_description* builder, const char* name, vertex_attrib_type type) {
u32 i = builder->attributes_count;
size_t size = vertex_attrib_size(type);
builder->attributes[i] = type;
builder->stride += size;
builder->attr_names[i] = name;
builder->attributes_count++;
}
|