diff options
author | 2011-05-12 10:38:03 -0700 | |
---|---|---|
committer | 2011-05-12 10:49:39 -0700 | |
commit | 25999a08a6652ff5d7d0973f279f1e92e04b3506 (patch) | |
tree | fd3a2678fee9bcf1217e03c17d9cb8a080ffacb7 /libs/rs/rsMesh.cpp | |
parent | 415c842aa6dd3cc797ed2ef1ae42351f594a6c74 (diff) |
Cleanup mesh creation.
Change-Id: Iaf5e060711dcb6341ac0f337dfb274528cb68d3e
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; } }} |