diff options
Diffstat (limited to 'libs/rs/rsMesh.cpp')
-rw-r--r-- | libs/rs/rsMesh.cpp | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/libs/rs/rsMesh.cpp b/libs/rs/rsMesh.cpp index 35184c18c417..3d0342d55989 100644 --- a/libs/rs/rsMesh.cpp +++ b/libs/rs/rsMesh.cpp @@ -263,30 +263,25 @@ void Mesh::computeBBox() { namespace android { namespace renderscript { -RsMesh rsi_MeshCreate(Context *rsc, uint32_t vtxCount, uint32_t idxCount) { +RsMesh rsi_MeshCreate(Context *rsc, + RsAllocation *vtx, uint32_t vtxCount, + RsAllocation *idx, uint32_t idxCount, + uint32_t *primType, uint32_t primTypeCount) { + rsAssert(idxCount == primTypeCount); Mesh *sm = new Mesh(rsc, vtxCount, idxCount); sm->incUserRef(); - return sm; -} - -void rsi_MeshBindVertex(Context *rsc, RsMesh mv, RsAllocation va, uint32_t slot) { - Mesh *sm = static_cast<Mesh *>(mv); - rsAssert(slot < sm->mHal.state.vertexBuffersCount); - - sm->setVertexBuffer((Allocation *)va, slot); -} - -void rsi_MeshBindIndex(Context *rsc, RsMesh mv, RsAllocation va, uint32_t primType, uint32_t slot) { - Mesh *sm = static_cast<Mesh *>(mv); - rsAssert(slot < sm->mHal.state.primitivesCount); + for (uint32_t i = 0; i < vtxCount; i ++) { + sm->setVertexBuffer((Allocation*)vtx[i], i); + } - sm->setPrimitive((Allocation *)va, (RsPrimitive)primType, slot); -} + for (uint32_t i = 0; i < idxCount; i ++) { + sm->setPrimitive((Allocation*)idx[i], (RsPrimitive)primType[i], i); + } -void rsi_MeshInitVertexAttribs(Context *rsc, RsMesh mv) { - Mesh *sm = static_cast<Mesh *>(mv); sm->init(); + + return sm; } }} |