summaryrefslogtreecommitdiffstats
path: root/graphics/java/android/renderscript/Mesh.java
diff options
context:
space:
mode:
authorAlex Sakhartchouk <alexst@google.com>2010-07-13 12:46:36 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-07-13 12:46:36 -0700
commit250fd1144f238ce40ba7c40c7ad4d77c20a44695 (patch)
tree2b713cfa4967af2c25c6af5a9d8e1e678de90654 /graphics/java/android/renderscript/Mesh.java
parent72c37ff17ad04a199cceb41dec3d1c003fa17c89 (diff)
parent80a4c2cd34aedb4f1a2e5e7d1ac26a9aeebe41ae (diff)
downloadframeworks_base-250fd1144f238ce40ba7c40c7ad4d77c20a44695.zip
frameworks_base-250fd1144f238ce40ba7c40c7ad4d77c20a44695.tar.gz
frameworks_base-250fd1144f238ce40ba7c40c7ad4d77c20a44695.tar.bz2
Merge "Work on synchronizing a3d created files and java layer. Adding culling to ProgramRaster"
Diffstat (limited to 'graphics/java/android/renderscript/Mesh.java')
-rw-r--r--graphics/java/android/renderscript/Mesh.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/graphics/java/android/renderscript/Mesh.java b/graphics/java/android/renderscript/Mesh.java
index 5a53878..4bee97a 100644
--- a/graphics/java/android/renderscript/Mesh.java
+++ b/graphics/java/android/renderscript/Mesh.java
@@ -59,6 +59,38 @@ public class Mesh extends BaseObj {
return mPrimitives[slot];
}
+ @Override
+ void updateFromNative() {
+ int vtxCount = mRS.nMeshGetVertexBufferCount(mID);
+ int idxCount = mRS.nMeshGetIndexCount(mID);
+
+ int[] vtxIDs = new int[vtxCount];
+ int[] idxIDs = new int[idxCount];
+ int[] primitives = new int[idxCount];
+
+ mRS.nMeshGetVertices(mID, vtxIDs, vtxCount);
+ mRS.nMeshGetIndices(mID, idxIDs, primitives, vtxCount);
+
+ mVertexBuffers = new Allocation[vtxCount];
+ mIndexBuffers = new Allocation[idxCount];
+ mPrimitives = new Primitive[idxCount];
+
+ for(int i = 0; i < vtxCount; i ++) {
+ if(vtxIDs[i] != 0) {
+ mVertexBuffers[i] = new Allocation(vtxIDs[i], mRS);
+ mVertexBuffers[i].updateFromNative();
+ }
+ }
+
+ for(int i = 0; i < idxCount; i ++) {
+ if(idxIDs[i] != 0) {
+ mIndexBuffers[i] = new Allocation(idxIDs[i], mRS);
+ mIndexBuffers[i].updateFromNative();
+ }
+ mPrimitives[i] = Primitive.values()[primitives[i]];
+ }
+ }
+
public static class Builder {
RenderScript mRS;