summaryrefslogtreecommitdiffstats
path: root/core/jni/android_view_Surface.cpp
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-08-07 20:55:14 -0700
committerMathias Agopian <mathias@google.com>2009-08-07 20:55:14 -0700
commitf1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429 (patch)
tree596c50f9d0690da9d446003c21738582d26762f5 /core/jni/android_view_Surface.cpp
parent1d40f50de5a207351d5fe3f0eada2c8bf74dcd82 (diff)
downloadframeworks_base-f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429.zip
frameworks_base-f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429.tar.gz
frameworks_base-f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429.tar.bz2
add support for RGBX_8888
Diffstat (limited to 'core/jni/android_view_Surface.cpp')
-rw-r--r--core/jni/android_view_Surface.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp
index bd3c805..02677f4 100644
--- a/core/jni/android_view_Surface.cpp
+++ b/core/jni/android_view_Surface.cpp
@@ -242,11 +242,12 @@ static jboolean Surface_isValid(JNIEnv* env, jobject clazz)
static inline SkBitmap::Config convertPixelFormat(PixelFormat format)
{
- /* note: if PIXEL_FORMAT_XRGB_8888 means that all alpha bytes are 0xFF, then
+ /* note: if PIXEL_FORMAT_RGBX_8888 means that all alpha bytes are 0xFF, then
we can map to SkBitmap::kARGB_8888_Config, and optionally call
bitmap.setIsOpaque(true) on the resulting SkBitmap (as an accelerator)
*/
switch (format) {
+ case PIXEL_FORMAT_RGBX_8888: return SkBitmap::kARGB_8888_Config;
case PIXEL_FORMAT_RGBA_8888: return SkBitmap::kARGB_8888_Config;
case PIXEL_FORMAT_RGBA_4444: return SkBitmap::kARGB_4444_Config;
case PIXEL_FORMAT_RGB_565: return SkBitmap::kRGB_565_Config;
@@ -294,6 +295,9 @@ static jobject Surface_lockCanvas(JNIEnv* env, jobject clazz, jobject dirtyRect)
SkBitmap bitmap;
ssize_t bpr = info.s * bytesPerPixel(info.format);
bitmap.setConfig(convertPixelFormat(info.format), info.w, info.h, bpr);
+ if (info.format == PIXEL_FORMAT_RGBX_8888) {
+ bitmap.setIsOpaque(true);
+ }
if (info.w > 0 && info.h > 0) {
bitmap.setPixels(info.bits);
} else {