From d7b3774da62d3c70cc7e8cf549967a1c823501e6 Mon Sep 17 00:00:00 2001 From: Joe Onorato Date: Sun, 9 Aug 2009 22:57:44 -0700 Subject: Let java put #defines into renderscript --- graphics/java/android/renderscript/ScriptC.java | 33 ++++++++++++++++++------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'graphics/java/android/renderscript/ScriptC.java') diff --git a/graphics/java/android/renderscript/ScriptC.java b/graphics/java/android/renderscript/ScriptC.java index 0592f5d..0f231d6 100644 --- a/graphics/java/android/renderscript/ScriptC.java +++ b/graphics/java/android/renderscript/ScriptC.java @@ -16,11 +16,13 @@ package android.renderscript; -import java.io.IOException; -import java.io.InputStream; - import android.content.res.Resources; +import android.util.Log; +import java.io.IOException; +import java.io.InputStream; +import java.util.Map.Entry; +import java.util.HashMap; /** * @hide @@ -30,12 +32,11 @@ public class ScriptC extends Script { super(id, rs); } - - - public static class Builder extends Script.Builder { byte[] mProgram; int mProgramLength; + HashMap mIntDefines = new HashMap(); + HashMap mFloatDefines = new HashMap(); public Builder(RenderScript rs) { super(rs); @@ -63,7 +64,7 @@ public class ScriptC extends Script { } } - public void setScript(InputStream is) throws IOException { + public void setScript(InputStream is) throws IOException { byte[] buf = new byte[1024]; int currentPos = 0; while(true) { @@ -88,19 +89,33 @@ public class ScriptC extends Script { b.mRS.nScriptCBegin(); b.transferCreate(); - b.mRS.nScriptCSetScript(b.mProgram, 0, b.mProgramLength); + for (Entry e: b.mIntDefines.entrySet()) { + b.mRS.nScriptCAddDefineI32(e.getKey(), e.getValue().intValue()); + } + for (Entry e: b.mFloatDefines.entrySet()) { + b.mRS.nScriptCAddDefineF(e.getKey(), e.getValue().floatValue()); + } + b.mRS.nScriptCSetScript(b.mProgram, 0, b.mProgramLength); int id = b.mRS.nScriptCCreate(); ScriptC obj = new ScriptC(id, b.mRS); b.transferObject(obj); + return obj; } + public void addDefine(String name, int value) { + mIntDefines.put(name, value); + } + + public void addDefine(String name, float value) { + mFloatDefines.put(name, value); + } + public ScriptC create() { return internalCreate(this); } } - } -- cgit v1.1