diff options
| author | Mathias Agopian <mathias@google.com> | 2009-08-07 20:55:14 -0700 |
|---|---|---|
| committer | Mathias Agopian <mathias@google.com> | 2009-08-07 20:55:14 -0700 |
| commit | f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429 (patch) | |
| tree | 596c50f9d0690da9d446003c21738582d26762f5 | |
| parent | 1d40f50de5a207351d5fe3f0eada2c8bf74dcd82 (diff) | |
| download | frameworks_base-f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429.zip frameworks_base-f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429.tar.gz frameworks_base-f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429.tar.bz2 | |
add support for RGBX_8888
| -rw-r--r-- | core/jni/android_view_Surface.cpp | 6 | ||||
| -rw-r--r-- | opengl/libagl/copybit.cpp | 2 |
2 files changed, 7 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 { diff --git a/opengl/libagl/copybit.cpp b/opengl/libagl/copybit.cpp index 3c5bcdf..867459d 100644 --- a/opengl/libagl/copybit.cpp +++ b/opengl/libagl/copybit.cpp @@ -75,6 +75,8 @@ private: static bool supportedCopybitsFormat(int format) { switch (format) { case COPYBIT_FORMAT_RGBA_8888: + case COPYBIT_FORMAT_RGBX_8888: + case COPYBIT_FORMAT_RGB_888: case COPYBIT_FORMAT_RGB_565: case COPYBIT_FORMAT_BGRA_8888: case COPYBIT_FORMAT_RGBA_5551: |
