Merge "Pass in code cache directory when creating a script group."

This commit is contained in:
Yang Ni
2015-02-03 06:20:19 +00:00
committed by Gerrit Code Review
3 changed files with 11 additions and 15 deletions

View File

@@ -330,10 +330,10 @@ public class RenderScript {
rsnClosureSetGlobal(mContext, closureID, fieldID, value, size); rsnClosureSetGlobal(mContext, closureID, fieldID, value, size);
} }
native long rsnScriptGroup2Create(long con, long[] closures); native long rsnScriptGroup2Create(long con, String cachePath, long[] closures);
synchronized long nScriptGroup2Create(long[] closures) { synchronized long nScriptGroup2Create(String cachePath, long[] closures) {
validate(); validate();
return rsnScriptGroup2Create(mContext, closures); return rsnScriptGroup2Create(mContext, cachePath, closures);
} }
native void rsnScriptGroup2Execute(long con, long groupID); native void rsnScriptGroup2Execute(long con, long groupID);

View File

@@ -7,9 +7,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
@hide Pending Android public API approval.
*/
/** /**
****************************** ******************************
@@ -240,12 +237,10 @@ public class ScriptGroup2 extends BaseObj {
for (int i = 0; i < closureIDs.length; i++) { for (int i = 0; i < closureIDs.length; i++) {
closureIDs[i] = closures.get(i).getID(rs); closureIDs[i] = closures.get(i).getID(rs);
} }
long id = rs.nScriptGroup2Create(closureIDs); long id = rs.nScriptGroup2Create(ScriptC.mCachePath, closureIDs);
setID(id); setID(id);
} }
// TODO: If this was reflected method, we could enforce the number of
// arguments.
public Object[] execute(Object... inputs) { public Object[] execute(Object... inputs) {
if (inputs.length < mInputs.size()) { if (inputs.length < mInputs.size()) {
Log.e(TAG, this.toString() + " receives " + inputs.length + " inputs, " + Log.e(TAG, this.toString() + " receives " + inputs.length + " inputs, " +
@@ -309,8 +304,6 @@ public class ScriptGroup2 extends BaseObj {
} }
public ScriptGroup2 create(Future... outputs) { public ScriptGroup2 create(Future... outputs) {
// TODO: Save all script groups that have been created and return one that was
// saved and matches the outputs.
ScriptGroup2 ret = new ScriptGroup2(mRS, mClosures, mInputs, outputs); ScriptGroup2 ret = new ScriptGroup2(mRS, mClosures, mInputs, outputs);
return ret; return ret;
} }

View File

@@ -258,7 +258,9 @@ nClosureSetGlobal(JNIEnv *_env, jobject _this, jlong con, jlong closureID,
static long static long
nScriptGroup2Create(JNIEnv *_env, jobject _this, jlong con, nScriptGroup2Create(JNIEnv *_env, jobject _this, jlong con,
jlongArray closureArray) { jstring cacheDir, jlongArray closureArray) {
AutoJavaStringToUTF8 cacheDirUTF(_env, cacheDir);
jlong* jClosures = _env->GetLongArrayElements(closureArray, nullptr); jlong* jClosures = _env->GetLongArrayElements(closureArray, nullptr);
jsize numClosures = _env->GetArrayLength(closureArray); jsize numClosures = _env->GetArrayLength(closureArray);
RsClosure* closures = (RsClosure*)alloca(sizeof(RsClosure) * numClosures); RsClosure* closures = (RsClosure*)alloca(sizeof(RsClosure) * numClosures);
@@ -266,8 +268,9 @@ nScriptGroup2Create(JNIEnv *_env, jobject _this, jlong con,
closures[i] = (RsClosure)jClosures[i]; closures[i] = (RsClosure)jClosures[i];
} }
return (jlong)(uintptr_t)rsScriptGroup2Create((RsContext)con, closures, return (jlong)(uintptr_t)rsScriptGroup2Create(
numClosures); (RsContext)con, cacheDirUTF.c_str(), cacheDirUTF.length(),
closures, numClosures);
} }
static void static void
@@ -2008,7 +2011,7 @@ static JNINativeMethod methods[] = {
{"rsnScriptKernelIDCreate", "(JJII)J", (void*)nScriptKernelIDCreate }, {"rsnScriptKernelIDCreate", "(JJII)J", (void*)nScriptKernelIDCreate },
{"rsnScriptFieldIDCreate", "(JJI)J", (void*)nScriptFieldIDCreate }, {"rsnScriptFieldIDCreate", "(JJI)J", (void*)nScriptFieldIDCreate },
{"rsnScriptGroupCreate", "(J[J[J[J[J[J)J", (void*)nScriptGroupCreate }, {"rsnScriptGroupCreate", "(J[J[J[J[J[J)J", (void*)nScriptGroupCreate },
{"rsnScriptGroup2Create", "(J[J)J", (void*)nScriptGroup2Create }, {"rsnScriptGroup2Create", "(JLjava/lang/String;[J)J", (void*)nScriptGroup2Create },
{"rsnScriptGroupSetInput", "(JJJJ)V", (void*)nScriptGroupSetInput }, {"rsnScriptGroupSetInput", "(JJJJ)V", (void*)nScriptGroupSetInput },
{"rsnScriptGroupSetOutput", "(JJJJ)V", (void*)nScriptGroupSetOutput }, {"rsnScriptGroupSetOutput", "(JJJJ)V", (void*)nScriptGroupSetOutput },
{"rsnScriptGroupExecute", "(JJ)V", (void*)nScriptGroupExecute }, {"rsnScriptGroupExecute", "(JJ)V", (void*)nScriptGroupExecute },