summaryrefslogtreecommitdiff
path: root/libs/rs/rsMesh.cpp
diff options
context:
space:
mode:
author Alex Sakhartchouk <alexst@google.com> 2011-05-12 10:38:03 -0700
committer Alex Sakhartchouk <alexst@google.com> 2011-05-12 10:49:39 -0700
commit25999a08a6652ff5d7d0973f279f1e92e04b3506 (patch)
treefd3a2678fee9bcf1217e03c17d9cb8a080ffacb7 /libs/rs/rsMesh.cpp
parent415c842aa6dd3cc797ed2ef1ae42351f594a6c74 (diff)
Cleanup mesh creation.
Change-Id: Iaf5e060711dcb6341ac0f337dfb274528cb68d3e
Diffstat (limited to 'libs/rs/rsMesh.cpp')
-rw-r--r--libs/rs/rsMesh.cpp31
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;
}
}}