Make compute work without an app context.

Change-Id: I644b4711135d6f5d9866b6c2e5e6f6a5ceb1f3d4
This commit is contained in:
Jason Sams
2012-02-24 17:51:24 -08:00
parent a6f338ca5f
commit 1a4e1f3efd
2 changed files with 18 additions and 11 deletions

View File

@ -87,6 +87,7 @@ public class RenderScript {
* 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 @@ public class RenderScript {
* @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 @@ public class RenderScript {
}
RenderScript(Context ctx) {
mApplicationContext = ctx.getApplicationContext();
if (ctx != null) {
mApplicationContext = ctx.getApplicationContext();
}
}
/**
@ -917,21 +918,16 @@ public class RenderScript {
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) {
@ -942,6 +938,17 @@ public class RenderScript {
return rs;
}
/**
* 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.