| #ifndef __LP64__ | |
| #include "rs_core.rsh" | |
| #include "rs_graphics.rsh" | |
| #include "rs_structs.h" | |
| /** | |
| * Mesh | |
| */ | |
| extern uint32_t __attribute__((overloadable)) | |
| rsgMeshGetVertexAllocationCount(rs_mesh m) { | |
| Mesh_t *mesh = (Mesh_t *)m.p; | |
| if (mesh == NULL) { | |
| return 0; | |
| } | |
| return mesh->mHal.state.vertexBuffersCount; | |
| } | |
| extern uint32_t __attribute__((overloadable)) | |
| rsgMeshGetPrimitiveCount(rs_mesh m) { | |
| Mesh_t *mesh = (Mesh_t *)m.p; | |
| if (mesh == NULL) { | |
| return 0; | |
| } | |
| return mesh->mHal.state.primitivesCount; | |
| } | |
| extern rs_allocation __attribute__((overloadable)) | |
| rsgMeshGetVertexAllocation(rs_mesh m, uint32_t index) { | |
| Mesh_t *mesh = (Mesh_t *)m.p; | |
| if (mesh == NULL || index >= mesh->mHal.state.vertexBuffersCount) { | |
| rs_allocation nullAlloc = {0}; | |
| return nullAlloc; | |
| } | |
| rs_allocation returnAlloc = {mesh->mHal.state.vertexBuffers[index]}; | |
| rs_allocation rs_retval = {0}; | |
| rsSetObject(&rs_retval, returnAlloc); | |
| return rs_retval; | |
| } | |
| extern rs_allocation __attribute__((overloadable)) | |
| rsgMeshGetIndexAllocation(rs_mesh m, uint32_t index) { | |
| Mesh_t *mesh = (Mesh_t *)m.p; | |
| if (mesh == NULL || index >= mesh->mHal.state.primitivesCount) { | |
| rs_allocation nullAlloc = {0}; | |
| return nullAlloc; | |
| } | |
| rs_allocation returnAlloc = {mesh->mHal.state.indexBuffers[index]}; | |
| rs_allocation rs_retval = {0}; | |
| rsSetObject(&rs_retval, returnAlloc); | |
| return rs_retval; | |
| } | |
| extern rs_primitive __attribute__((overloadable)) | |
| rsgMeshGetPrimitive(rs_mesh m, uint32_t index) { | |
| Mesh_t *mesh = (Mesh_t *)m.p; | |
| if (mesh == NULL || index >= mesh->mHal.state.primitivesCount) { | |
| return RS_PRIMITIVE_INVALID; | |
| } | |
| return mesh->mHal.state.primitives[index]; | |
| } | |
| #endif | |