summaryrefslogtreecommitdiffstats
path: root/graphics/java/android/renderscript/SimpleMesh.java
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-09-21 19:41:04 -0700
committerJason Sams <rjsams@android.com>2009-09-21 19:41:04 -0700
commit768bc02d815a94ad29146f1ed60c847d1af118cc (patch)
tree1e7d9331f53bf4ef0ea3fdfbe7e6ff2e5c8940da /graphics/java/android/renderscript/SimpleMesh.java
parent88a83d3f108dcf01443b241439e14eedbd9615f5 (diff)
downloadframeworks_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.java17
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();