summaryrefslogtreecommitdiffstats
path: root/graphics/java/android/renderscript/Script.java
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/java/android/renderscript/Script.java')
-rw-r--r--graphics/java/android/renderscript/Script.java39
1 files changed, 19 insertions, 20 deletions
diff --git a/graphics/java/android/renderscript/Script.java b/graphics/java/android/renderscript/Script.java
index 42c58ce..47479d8 100644
--- a/graphics/java/android/renderscript/Script.java
+++ b/graphics/java/android/renderscript/Script.java
@@ -20,6 +20,8 @@ package android.renderscript;
* @hide
**/
public class Script extends BaseObj {
+ public static final int MAX_SLOT = 16;
+
boolean mIsRoot;
Type[] mTypes;
@@ -64,39 +66,36 @@ public class Script extends BaseObj {
RenderScript mRS;
boolean mIsRoot = false;
Type[] mTypes;
- int mTypeCount;
+ String[] mNames;
Builder(RenderScript rs) {
mRS = rs;
- mTypes = new Type[4];
- mTypeCount = 0;
+ mTypes = new Type[MAX_SLOT];
+ mNames = new String[MAX_SLOT];
}
- public void addType(Type t) {
- if(mTypeCount >= mTypes.length) {
- Type[] nt = new Type[mTypeCount * 2];
- for(int ct=0; ct < mTypeCount; ct++) {
- nt[ct] = mTypes[ct];
- }
- mTypes = nt;
- }
- mTypes[mTypeCount] = t;
- mTypeCount++;
+ public void setType(Type t, int slot) {
+ mTypes[slot] = t;
+ mNames[slot] = null;
+ }
+
+ public void setType(Type t, String name, int slot) {
+ mTypes[slot] = t;
+ mNames[slot] = name;
}
void transferCreate() {
- mRS.nScriptCSetRoot(mIsRoot);
- for(int ct=0; ct < mTypeCount; ct++) {
- mRS.nScriptCAddType(mTypes[ct].mID);
+ mRS.nScriptSetRoot(mIsRoot);
+ for(int ct=0; ct < mTypes.length; ct++) {
+ if(mTypes[ct] != null) {
+ mRS.nScriptSetType(mTypes[ct].mID, mNames[ct], ct);
+ }
}
}
void transferObject(Script s) {
s.mIsRoot = mIsRoot;
- s.mTypes = new Type[mTypeCount];
- for(int ct=0; ct < mTypeCount; ct++) {
- s.mTypes[ct] = mTypes[ct];
- }
+ s.mTypes = mTypes;
}
public void setRoot(boolean r) {