Home | History | Annotate | Download | only in runtime
      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))
      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))
     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))
     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))
     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))
     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