summaryrefslogtreecommitdiffstats
path: root/graphics/java/android/renderscript/Element.java
diff options
context:
space:
mode:
authorAlex Sakhartchouk <alexst@google.com>2010-07-15 15:19:07 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-07-15 15:19:07 -0700
commit51b7ebc652e320ee89b546f3e699ba31e9394a2c (patch)
treeddda99e3d491b3cf7d7c505ac6a2f072485b1020 /graphics/java/android/renderscript/Element.java
parentc96cdc9844d60d54683fb7700fc5908fdb8ff856 (diff)
parentdfac814c18f73dd7289f9927edca3e3b6ec6bc00 (diff)
downloadframeworks_base-51b7ebc652e320ee89b546f3e699ba31e9394a2c.zip
frameworks_base-51b7ebc652e320ee89b546f3e699ba31e9394a2c.tar.gz
frameworks_base-51b7ebc652e320ee89b546f3e699ba31e9394a2c.tar.bz2
Merge "Populate java objects with native data from a3d file. Remove legacy constructor from programraster Make a3d object creation synchronous"
Diffstat (limited to 'graphics/java/android/renderscript/Element.java')
-rw-r--r--graphics/java/android/renderscript/Element.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/graphics/java/android/renderscript/Element.java b/graphics/java/android/renderscript/Element.java
index 308d663..5d2a059 100644
--- a/graphics/java/android/renderscript/Element.java
+++ b/graphics/java/android/renderscript/Element.java
@@ -17,6 +17,7 @@
package android.renderscript;
import java.lang.reflect.Field;
+import android.util.Log;
/**
* @hide
@@ -308,6 +309,45 @@ public class Element extends BaseObj {
mID = rs.nElementCreate(dt.mID, dk.mID, norm, size);
}
+ Element(RenderScript rs, int id) {
+ super(rs);
+ mID = id;
+ }
+
+ @Override
+ void updateFromNative() {
+
+ // we will pack mType; mKind; mNormalized; mVectorSize; NumSubElements
+ int[] dataBuffer = new int[5];
+ mRS.nElementGetNativeData(mID, dataBuffer);
+ for (DataType dt: DataType.values()) {
+ if(dt.mID == dataBuffer[0]){
+ mType = dt;
+ }
+ }
+ for (DataKind dk: DataKind.values()) {
+ if(dk.mID == dataBuffer[1]){
+ mKind = dk;
+ }
+ }
+
+ mNormalized = dataBuffer[2] == 1 ? true : false;
+ mVectorSize = dataBuffer[3];
+ int numSubElements = dataBuffer[4];
+ if(numSubElements > 0) {
+ mElements = new Element[numSubElements];
+ mElementNames = new String[numSubElements];
+
+ int[] subElementIds = new int[numSubElements];
+ mRS.nElementGetSubElements(mID, subElementIds, mElementNames);
+ for(int i = 0; i < numSubElements; i ++) {
+ mElements[i] = new Element(mRS, subElementIds[i]);
+ mElements[i].updateFromNative();
+ }
+ }
+
+ }
+
public void destroy() throws IllegalStateException {
super.destroy();
}