1. Add Context to a RenderScript or RenderScriptGL instance.
This is to allow RenderScript to better interact with the Android environment.
E.g., per-app cache.
2. Plumbing, testing.
3. Added getApplicationContext in RenderScript.java.
Change-Id: I85edeebe38825e20b2e86f4f4815689dfc332ef9
diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp
index 04a7b41..a8343b3 100644
--- a/graphics/jni/android_renderscript_RenderScript.cpp
+++ b/graphics/jni/android_renderscript_RenderScript.cpp
@@ -902,11 +902,15 @@
}
static jint
-nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName)
+nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName, jstring cacheDir)
{
LOG_API("nScriptCCreate, con(%p)", con);
const char* resNameUTF = _env->GetStringUTFChars(resName, NULL);
- return (jint)rsScriptCCreate(con, resNameUTF);
+ const char* cacheDirUTF = _env->GetStringUTFChars(cacheDir, NULL);
+ jint i = (jint)rsScriptCCreate(con, resNameUTF, cacheDirUTF);
+ _env->ReleaseStringUTFChars(resName, resNameUTF);
+ _env->ReleaseStringUTFChars(cacheDir, cacheDirUTF);
+ return i;
}
// ---------------------------------------------------------------------------
@@ -1297,7 +1301,7 @@
{"rsnScriptCBegin", "(I)V", (void*)nScriptCBegin },
{"rsnScriptCSetScript", "(I[BII)V", (void*)nScriptCSetScript },
-{"rsnScriptCCreate", "(ILjava/lang/String;)I", (void*)nScriptCCreate },
+{"rsnScriptCCreate", "(ILjava/lang/String;Ljava/lang/String;)I", (void*)nScriptCCreate },
{"rsnProgramStoreBegin", "(III)V", (void*)nProgramStoreBegin },
{"rsnProgramStoreDepthFunc", "(II)V", (void*)nProgramStoreDepthFunc },
@@ -1372,4 +1376,3 @@
bail:
return result;
}
-