Make compute work without an app context.
Change-Id: I644b4711135d6f5d9866b6c2e5e6f6a5ceb1f3d4
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index fd4ecf1..6921f37 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -87,6 +87,7 @@
* Name of the file that holds the object cache.
*/
private static final String CACHE_PATH = "com.android.renderscript.cache";
+ static String mCachePath;
/**
* Sets the directory to use as a persistent storage for the
@@ -95,8 +96,6 @@
* @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();
@@ -905,7 +904,9 @@
}
RenderScript(Context ctx) {
- mApplicationContext = ctx.getApplicationContext();
+ if (ctx != null) {
+ mApplicationContext = ctx.getApplicationContext();
+ }
}
/**
@@ -917,21 +918,16 @@
return mApplicationContext;
}
- static int getTargetSdkVersion(Context ctx) {
- return ctx.getApplicationInfo().targetSdkVersion;
- }
-
/**
* Create a basic RenderScript context.
*
+ * @hide
* @param ctx The context.
* @return RenderScript
*/
- public static RenderScript create(Context ctx) {
+ public static RenderScript create(Context ctx, int sdkVersion) {
RenderScript rs = new RenderScript(ctx);
- int sdkVersion = getTargetSdkVersion(ctx);
-
rs.mDev = rs.nDeviceCreate();
rs.mContext = rs.nContextCreate(rs.mDev, 0, sdkVersion);
if (rs.mContext == 0) {
@@ -943,6 +939,17 @@
}
/**
+ * Create a basic RenderScript context.
+ *
+ * @param ctx The context.
+ * @return RenderScript
+ */
+ public static RenderScript create(Context ctx) {
+ int v = ctx.getApplicationInfo().targetSdkVersion;
+ return create(ctx, v);
+ }
+
+ /**
* Print the currently available debugging information about the state of
* the RS context to the log.
*