Index: ui/gfx/android/java_bitmap.cc |
diff --git a/ui/gfx/android/java_bitmap.cc b/ui/gfx/android/java_bitmap.cc |
index b7a0f5add151a0fdf52872b6bf6363bb191256f8..316dbb90bf500915ab59990d77504c2c87b15bfe 100644 |
--- a/ui/gfx/android/java_bitmap.cc |
+++ b/ui/gfx/android/java_bitmap.cc |
@@ -41,10 +41,29 @@ bool JavaBitmap::RegisterJavaBitmap(JNIEnv* env) { |
return RegisterNativesImpl(env); |
} |
-static ScopedJavaLocalRef<jobject> CreateJavaBitmap(int width, int height, |
- bool is565_config) { |
- return Java_BitmapHelper_createBitmap(AttachCurrentThread(), |
- width, height, is565_config); |
+static ScopedJavaLocalRef<jobject> CreateJavaBitmap(int width, |
+ int height, |
+ int bitmap_config) { |
+ |
+ return Java_BitmapHelper_createBitmap( |
+ AttachCurrentThread(), width, height, bitmap_config); |
+} |
+ |
+static int SkBitmapConfigToBitmapFormat(SkBitmap::Config bitmap_config) { |
+ switch (bitmap_config) { |
+ case SkBitmap::kA8_Config: |
+ return BITMAP_FORMAT_ALPHA_8; |
+ case SkBitmap::kARGB_4444_Config: |
+ return BITMAP_FORMAT_ARGB_4444; |
+ case SkBitmap::kARGB_8888_Config: |
+ return BITMAP_FORMAT_ARGB_8888; |
+ case SkBitmap::kRGB_565_Config: |
+ return BITMAP_FORMAT_RGB_565; |
+ case SkBitmap::kNo_Config: |
+ default: |
+ NOTREACHED(); |
+ return BITMAP_FORMAT_NO_CONFIG; |
+ } |
} |
ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { |
@@ -52,10 +71,9 @@ ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { |
SkBitmap::Config config = skbitmap->getConfig(); |
DCHECK((config == SkBitmap::kRGB_565_Config) || |
(config == SkBitmap::kARGB_8888_Config)); |
- // If the Config is not RGB565 it is default i.e ARGB8888 |
- ScopedJavaLocalRef<jobject> jbitmap = |
- CreateJavaBitmap(skbitmap->width(), skbitmap->height(), |
- (config == SkBitmap::kRGB_565_Config)); |
+ int java_bitmap_config = SkBitmapConfigToBitmapFormat(config); |
+ ScopedJavaLocalRef<jobject> jbitmap = CreateJavaBitmap( |
+ skbitmap->width(), skbitmap->height(), java_bitmap_config); |
SkAutoLockPixels src_lock(*skbitmap); |
JavaBitmap dst_lock(jbitmap.obj()); |
void* src_pixels = skbitmap->getPixels(); |
@@ -102,8 +120,8 @@ SkBitmap CreateSkBitmapFromResource(const char* name, gfx::Size size) { |
} |
SkBitmap::Config ConvertToSkiaConfig(jobject bitmap_config) { |
- int jbitmap_config = |
- Java_BitmapHelper_bitmapConfig(AttachCurrentThread(), bitmap_config); |
+ int jbitmap_config = Java_BitmapHelper_getBitmapFormatForConfig( |
+ AttachCurrentThread(), bitmap_config); |
switch (jbitmap_config) { |
case BITMAP_FORMAT_ALPHA_8: |
return SkBitmap::kA8_Config; |