Merge "Pass in code cache directory when creating a script group."
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 },
|
||||||
|
|||||||
Reference in New Issue
Block a user