diff options
-rw-r--r-- | graphics/java/android/renderscript/Allocation.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/graphics/java/android/renderscript/Allocation.java b/graphics/java/android/renderscript/Allocation.java index 17c0778..b27c7f5 100644 --- a/graphics/java/android/renderscript/Allocation.java +++ b/graphics/java/android/renderscript/Allocation.java @@ -363,6 +363,17 @@ public class Allocation extends BaseObj { static public Allocation createFromBitmapResourceBoxed(RenderScript rs, Resources res, int id, Element dstFmt, boolean genMips) throws IllegalArgumentException { + mBitmapOptions.inPreferredConfig = null; + if (dstFmt == rs.mElement_RGBA_8888) { + mBitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888; + } else if (dstFmt == rs.mElement_RGB_888) { + mBitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888; + } else if (dstFmt == rs.mElement_RGBA_4444) { + mBitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_4444; + } else if (dstFmt == rs.mElement_RGB_565) { + mBitmapOptions.inPreferredConfig = Bitmap.Config.RGB_565; + } + Bitmap b = BitmapFactory.decodeResource(res, id, mBitmapOptions); return createFromBitmapBoxed(rs, b, dstFmt, genMips); } |