diff options
author | Jason Sams <rjsams@android.com> | 2009-09-21 19:41:04 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-09-21 19:41:04 -0700 |
commit | 768bc02d815a94ad29146f1ed60c847d1af118cc (patch) | |
tree | 1e7d9331f53bf4ef0ea3fdfbe7e6ff2e5c8940da /graphics/java/android/renderscript/SimpleMesh.java | |
parent | 88a83d3f108dcf01443b241439e14eedbd9615f5 (diff) | |
download | frameworks_base-768bc02d815a94ad29146f1ed60c847d1af118cc.zip frameworks_base-768bc02d815a94ad29146f1ed60c847d1af118cc.tar.gz frameworks_base-768bc02d815a94ad29146f1ed60c847d1af118cc.tar.bz2 |
Implement more type checks on Allocations.
Add tracking for allocations created using the "sized" helper.
Add more param validation for data upload calls.
Diffstat (limited to 'graphics/java/android/renderscript/SimpleMesh.java')
-rw-r--r-- | graphics/java/android/renderscript/SimpleMesh.java | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/graphics/java/android/renderscript/SimpleMesh.java b/graphics/java/android/renderscript/SimpleMesh.java index 5d87654..dc74c61 100644 --- a/graphics/java/android/renderscript/SimpleMesh.java +++ b/graphics/java/android/renderscript/SimpleMesh.java @@ -162,7 +162,6 @@ public class SimpleMesh extends BaseObj { } public SimpleMesh create() { - Log.e("rs", "SimpleMesh create"); SimpleMesh sm = internalCreate(mRS, this); sm.mVertexTypes = new Type[mVertexTypeCount]; for(int ct=0; ct < mVertexTypeCount; ct++) { @@ -177,7 +176,7 @@ public class SimpleMesh extends BaseObj { public static class TriangleMeshBuilder { float mVtxData[]; int mVtxCount; - int mIndexData[]; + short mIndexData[]; int mIndexCount; RenderScript mRS; Element mElement; @@ -191,7 +190,7 @@ public class SimpleMesh extends BaseObj { mVtxCount = 0; mIndexCount = 0; mVtxData = new float[128]; - mIndexData = new int[128]; + mIndexData = new short[128]; mVtxSize = vtxSize; mNorm = norm; mTex = tex; @@ -268,13 +267,13 @@ public class SimpleMesh extends BaseObj { public void addTriangle(int idx1, int idx2, int idx3) { if((mIndexCount + 3) >= mIndexData.length) { - int t[] = new int[mIndexData.length * 2]; + short t[] = new short[mIndexData.length * 2]; System.arraycopy(mIndexData, 0, t, 0, mIndexData.length); mIndexData = t; } - mIndexData[mIndexCount++] = idx1; - mIndexData[mIndexCount++] = idx2; - mIndexData[mIndexCount++] = idx3; + mIndexData[mIndexCount++] = (short)idx1; + mIndexData[mIndexCount++] = (short)idx2; + mIndexData[mIndexCount++] = (short)idx3; } public SimpleMesh create() { @@ -309,10 +308,6 @@ public class SimpleMesh extends BaseObj { vertexAlloc.data(mVtxData); vertexAlloc.uploadToBufferObject(); - // This is safe because length is a pow2 - for(int ct=0; ct < (mIndexCount+1); ct += 2) { - mIndexData[ct >> 1] = mIndexData[ct] | (mIndexData[ct+1] << 16); - } indexAlloc.data(mIndexData); indexAlloc.uploadToBufferObject(); |