diff options
author | Stephen Hines <srhines@google.com> | 2013-04-09 23:51:56 -0700 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2013-04-10 01:20:47 -0700 |
commit | 7d25a829d3da96fb6ac0d285aa1bfb2022271bee (patch) | |
tree | c39d28f869452758074215736f6b5a5c80f676e2 /graphics/java/android/renderscript/ScriptC.java | |
parent | d7094ea29bac0c3c296b79caca150e3a543fe39b (diff) |
Defer RS cache creation until a ScriptC is built.
Bug: 8582926
Change-Id: If017f41382f023f8f6ddd78ba198402d427c95f8
Diffstat (limited to 'graphics/java/android/renderscript/ScriptC.java')
-rw-r--r-- | graphics/java/android/renderscript/ScriptC.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/graphics/java/android/renderscript/ScriptC.java b/graphics/java/android/renderscript/ScriptC.java index 9221c7aac69f..2f69775a20ae 100644 --- a/graphics/java/android/renderscript/ScriptC.java +++ b/graphics/java/android/renderscript/ScriptC.java @@ -64,6 +64,12 @@ public class ScriptC extends Script { rs.addAllocSizeForGC(mGCSize); } + /** + * Name of the file that holds the object cache. + */ + private static final String CACHE_PATH = "com.android.renderscript.cache"; + + static String mCachePath; private static synchronized int internalCreate(RenderScript rs, Resources resources, int resourceID) { byte[] pgm; @@ -96,7 +102,13 @@ public class ScriptC extends Script { String resName = resources.getResourceEntryName(resourceID); + // Create the RS cache path if we haven't done so already. + if (mCachePath == null) { + File f = new File(rs.mCacheDir, CACHE_PATH); + mCachePath = f.getAbsolutePath(); + f.mkdirs(); + } Log.v(TAG, "Create script for resource = " + resName); - return rs.nScriptCCreate(resName, rs.mCachePath, pgm, pgmLength); + return rs.nScriptCCreate(resName, mCachePath, pgm, pgmLength); } } |