From 7d25a829d3da96fb6ac0d285aa1bfb2022271bee Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Tue, 9 Apr 2013 23:51:56 -0700 Subject: Defer RS cache creation until a ScriptC is built. Bug: 8582926 Change-Id: If017f41382f023f8f6ddd78ba198402d427c95f8 --- graphics/java/android/renderscript/ScriptC.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'graphics/java/android/renderscript/ScriptC.java') 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); } } -- cgit v1.2.3