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