• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "rs_core.rsh"
2 #include "rs_graphics.rsh"
3 #include "rs_structs.h"
4 
5 /**
6 * Mesh
7 */
8 extern uint32_t __attribute__((overloadable))
rsgMeshGetVertexAllocationCount(rs_mesh m)9         rsgMeshGetVertexAllocationCount(rs_mesh m) {
10     Mesh_t *mesh = (Mesh_t *)m.p;
11     if (mesh == NULL) {
12         return 0;
13     }
14     return mesh->mHal.state.vertexBuffersCount;
15 }
16 
17 extern uint32_t __attribute__((overloadable))
rsgMeshGetPrimitiveCount(rs_mesh m)18         rsgMeshGetPrimitiveCount(rs_mesh m) {
19     Mesh_t *mesh = (Mesh_t *)m.p;
20     if (mesh == NULL) {
21         return 0;
22     }
23     return mesh->mHal.state.primitivesCount;
24 }
25 
26 extern rs_allocation __attribute__((overloadable))
rsgMeshGetVertexAllocation(rs_mesh m,uint32_t index)27         rsgMeshGetVertexAllocation(rs_mesh m, uint32_t index) {
28     Mesh_t *mesh = (Mesh_t *)m.p;
29     if (mesh == NULL || index >= mesh->mHal.state.vertexBuffersCount) {
30         rs_allocation nullAlloc = {0};
31         return nullAlloc;
32     }
33     rs_allocation returnAlloc = {mesh->mHal.state.vertexBuffers[index]};
34     return returnAlloc;
35 }
36 
37 extern rs_allocation __attribute__((overloadable))
rsgMeshGetIndexAllocation(rs_mesh m,uint32_t index)38         rsgMeshGetIndexAllocation(rs_mesh m, uint32_t index) {
39     Mesh_t *mesh = (Mesh_t *)m.p;
40     if (mesh == NULL || index >= mesh->mHal.state.primitivesCount) {
41         rs_allocation nullAlloc = {0};
42         return nullAlloc;
43     }
44     rs_allocation returnAlloc = {mesh->mHal.state.indexBuffers[index]};
45     return returnAlloc;
46 }
47 
48 extern rs_primitive __attribute__((overloadable))
rsgMeshGetPrimitive(rs_mesh m,uint32_t index)49         rsgMeshGetPrimitive(rs_mesh m, uint32_t index) {
50     Mesh_t *mesh = (Mesh_t *)m.p;
51     if (mesh == NULL || index >= mesh->mHal.state.primitivesCount) {
52         return RS_PRIMITIVE_INVALID;
53     }
54     return mesh->mHal.state.primitives[index];
55 }
56