Cleanup mesh creation.

Change-Id: Iaf5e060711dcb6341ac0f337dfb274528cb68d3e
diff --git a/libs/rs/rsMesh.cpp b/libs/rs/rsMesh.cpp
index 35184c1..3d0342d 100644
--- a/libs/rs/rsMesh.cpp
+++ b/libs/rs/rsMesh.cpp
@@ -263,30 +263,25 @@
 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;
-}
+    for (uint32_t i = 0; i < vtxCount; i ++) {
+        sm->setVertexBuffer((Allocation*)vtx[i], i);
+    }
 
-void rsi_MeshBindVertex(Context *rsc, RsMesh mv, RsAllocation va, uint32_t slot) {
-    Mesh *sm = static_cast<Mesh *>(mv);
-    rsAssert(slot < sm->mHal.state.vertexBuffersCount);
+    for (uint32_t i = 0; i < idxCount; i ++) {
+        sm->setPrimitive((Allocation*)idx[i], (RsPrimitive)primType[i], i);
+    }
 
-    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);
-
-    sm->setPrimitive((Allocation *)va, (RsPrimitive)primType, slot);
-}
-
-void rsi_MeshInitVertexAttribs(Context *rsc, RsMesh mv) {
-    Mesh *sm = static_cast<Mesh *>(mv);
     sm->init();
+
+    return sm;
 }
 
 }}