diff options
| author | Jason Sams <rjsams@android.com> | 2012-02-24 16:22:16 -0800 |
|---|---|---|
| committer | Jason Sams <rjsams@android.com> | 2012-02-24 16:22:16 -0800 |
| commit | a6f338ca5f0c8359d1952167858851dd025e47e2 (patch) | |
| tree | a35f3d74cf0a27eda412ae5c60166bb5b097ba02 /graphics/java/android/renderscript | |
| parent | 9733f2609312d1ad93344eb64aa40ecb665b1c4b (diff) | |
| download | frameworks_base-a6f338ca5f0c8359d1952167858851dd025e47e2.zip frameworks_base-a6f338ca5f0c8359d1952167858851dd025e47e2.tar.gz frameworks_base-a6f338ca5f0c8359d1952167858851dd025e47e2.tar.bz2 | |
Do RS caching the same way HardwareRenderer does.
Eliminates the need for an application context for caching.
Change-Id: I4374738083b5eb4ce983d2cb5409428e3668c423
Diffstat (limited to 'graphics/java/android/renderscript')
| -rw-r--r-- | graphics/java/android/renderscript/RenderScript.java | 21 | ||||
| -rw-r--r-- | graphics/java/android/renderscript/ScriptC.java | 6 |
2 files changed, 22 insertions, 5 deletions
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index 9517513..fd4ecf1 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -17,6 +17,7 @@ package android.renderscript; import java.lang.reflect.Field; +import java.io.File; import android.content.Context; import android.content.pm.ApplicationInfo; @@ -82,6 +83,26 @@ public class RenderScript { native void nContextInitToClient(int con); native void nContextDeinitToClient(int con); + /** + * Name of the file that holds the object cache. + */ + private static final String CACHE_PATH = "com.android.renderscript.cache"; + + /** + * Sets the directory to use as a persistent storage for the + * renderscript object file cache. + * + * @hide + * @param cacheDir A directory the current process can write to + */ + + static String mCachePath; + public static void setupDiskCache(File cacheDir) { + File f = new File(cacheDir, CACHE_PATH); + mCachePath = f.getAbsolutePath(); + f.mkdirs(); + } + // Methods below are wrapped to protect the non-threadsafe // lockless fifo. diff --git a/graphics/java/android/renderscript/ScriptC.java b/graphics/java/android/renderscript/ScriptC.java index 90f959f..108b230 100644 --- a/graphics/java/android/renderscript/ScriptC.java +++ b/graphics/java/android/renderscript/ScriptC.java @@ -92,13 +92,9 @@ public class ScriptC extends Script { throw new Resources.NotFoundException(); } - // E.g, /system/apps/Fountain.apk - //String packageName = rs.getApplicationContext().getPackageResourcePath(); - // For res/raw/fountain.bc, it wil be /com.android.fountain:raw/fountain String resName = resources.getResourceEntryName(resourceID); - String cacheDir = rs.getApplicationContext().getCacheDir().toString(); Log.v(TAG, "Create script for resource = " + resName); - return rs.nScriptCCreate(resName, cacheDir, pgm, pgmLength); + return rs.nScriptCCreate(resName, rs.mCachePath, pgm, pgmLength); } } |
