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