am af61d43d: am 6d718c2f: Merge "Add support for setting the cache directory."

* commit 'af61d43d6ce065832f906757c2185c3dad74d489':
  Add support for setting the cache directory.
This commit is contained in:
Tim Murray
2015-04-10 01:30:14 +00:00
committed by Android Git Automerger
2 changed files with 26 additions and 0 deletions

View File

@ -16,6 +16,7 @@
package android.renderscript;
import java.io.File;
import java.lang.reflect.Method;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@ -231,6 +232,11 @@ public class RenderScript {
validate();
rsnContextSetPriority(mContext, p);
}
native void rsnContextSetCacheDir(long con, String cacheDir);
synchronized void nContextSetCacheDir(String cacheDir) {
validate();
rsnContextSetCacheDir(mContext, cacheDir);
}
native void rsnContextDump(long con, int bits);
synchronized void nContextDump(int bits) {
validate();
@ -1326,6 +1332,14 @@ public class RenderScript {
if (rs.mContext == 0) {
throw new RSDriverException("Failed to create RS context.");
}
// set up cache directory for entire context
final String CACHE_PATH = "com.android.renderscript.cache";
File f = new File(RenderScriptCacheDir.mCacheDir, CACHE_PATH);
String mCachePath = f.getAbsolutePath();
f.mkdirs();
rs.nContextSetCacheDir(mCachePath);
rs.mMessageThread = new MessageThread(rs);
rs.mMessageThread.start();
return rs;

View File

@ -689,6 +689,17 @@ nContextSetPriority(JNIEnv *_env, jobject _this, jlong con, jint p)
rsContextSetPriority((RsContext)con, p);
}
static void
nContextSetCacheDir(JNIEnv *_env, jobject _this, jlong con, jstring cacheDir)
{
AutoJavaStringToUTF8 cacheDirUTF(_env, cacheDir);
if (kLogApi) {
ALOGD("ContextSetCacheDir, con(%p), cacheDir(%s)", (RsContext)con, cacheDirUTF.c_str());
}
rsContextSetCacheDir((RsContext)con, cacheDirUTF.c_str(), cacheDirUTF.length());
}
static void
@ -2312,6 +2323,7 @@ static JNINativeMethod methods[] = {
{"rsnContextCreateGL", "(JIIIIIIIIIIIIFI)J", (void*)nContextCreateGL },
{"rsnContextFinish", "(J)V", (void*)nContextFinish },
{"rsnContextSetPriority", "(JI)V", (void*)nContextSetPriority },
{"rsnContextSetCacheDir", "(JLjava/lang/String;)V", (void*)nContextSetCacheDir },
{"rsnContextSetSurface", "(JIILandroid/view/Surface;)V", (void*)nContextSetSurface },
{"rsnContextDestroy", "(J)V", (void*)nContextDestroy },
{"rsnContextDump", "(JI)V", (void*)nContextDump },