Merge "Add USAGE_SHARED for Allocations."

This commit is contained in:
Tim Murray
2012-12-19 13:03:29 -08:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 3 deletions

View File

@@ -19226,6 +19226,7 @@ package android.renderscript {
field public static final int USAGE_IO_INPUT = 32; // 0x20
field public static final int USAGE_IO_OUTPUT = 64; // 0x40
field public static final int USAGE_SCRIPT = 1; // 0x1
field public static final int USAGE_SHARED = 128; // 0x80
}
public static final class Allocation.MipmapControl extends java.lang.Enum {

View File

@@ -147,6 +147,19 @@ public class Allocation extends BaseObj {
*/
public static final int USAGE_IO_OUTPUT = 0x0040;
/**
* USAGE_SHARED The allocation's backing store will be inherited
* from another object (usually a Bitmap); calling appropriate
* copy methods will be significantly faster than if the entire
* allocation were copied every time.
*
* This is set by default for allocations created with
* CreateFromBitmap(RenderScript, Bitmap) in API version 18 and
* higher.
*
*/
public static final int USAGE_SHARED = 0x0080;
/**
* Controls mipmap behavior when using the bitmap creation and
* update functions.
@@ -245,7 +258,8 @@ public class Allocation extends BaseObj {
USAGE_GRAPHICS_CONSTANTS |
USAGE_GRAPHICS_RENDER_TARGET |
USAGE_IO_INPUT |
USAGE_IO_OUTPUT)) != 0) {
USAGE_IO_OUTPUT |
USAGE_SHARED)) != 0) {
throw new RSIllegalArgumentException("Unknown usage specified.");
}
@@ -1236,8 +1250,11 @@ public class Allocation extends BaseObj {
}
/**
* Creates a non-mipmapped renderscript allocation to use as a
* graphics texture
* Creates a RenderScript allocation from a bitmap.
*
* With target API version 18 or greater, this allocation will be
* created with USAGE_SHARED. With target API version 17 or lower,
* this allocation will be created with USAGE_GRAPHICS_TEXTURE.
*
* @param rs Context to which the allocation will belong.
* @param b bitmap source for the allocation data
@@ -1246,6 +1263,10 @@ public class Allocation extends BaseObj {
*
*/
static public Allocation createFromBitmap(RenderScript rs, Bitmap b) {
if (rs.getApplicationContext().getApplicationInfo().targetSdkVersion >= 18) {
return createFromBitmap(rs, b, MipmapControl.MIPMAP_NONE,
USAGE_SHARED | USAGE_SCRIPT);
}
return createFromBitmap(rs, b, MipmapControl.MIPMAP_NONE,
USAGE_GRAPHICS_TEXTURE);
}