Chromium Code Reviews| 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..2defb0e2bccfdffd148d27e0e132c3e132357bdf 100644 |
| --- a/ui/gfx/android/java_bitmap.cc |
| +++ b/ui/gfx/android/java_bitmap.cc |
| @@ -41,10 +41,36 @@ 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) { |
| + int matching_enum_config = BITMAP_FORMAT_NO_CONFIG; |
|
bulach
2014/03/04 13:05:13
no need to initialize..
sivag
2014/03/04 13:57:55
Done.
|
| + switch (bitmap_config) { |
| + case SkBitmap::kA8_Config: |
| + matching_enum_config = BITMAP_FORMAT_ALPHA_8; |
|
bulach
2014/03/04 13:05:13
would it be possible to just "return" on these cas
sivag
2014/03/04 13:57:55
Done.
|
| + break; |
| + case SkBitmap::kARGB_4444_Config: |
| + matching_enum_config = BITMAP_FORMAT_ARGB_4444; |
| + break; |
| + case SkBitmap::kARGB_8888_Config: |
| + matching_enum_config = BITMAP_FORMAT_ARGB_8888; |
| + break; |
| + case SkBitmap::kRGB_565_Config: |
| + matching_enum_config = BITMAP_FORMAT_RGB_565; |
| + break; |
| + case SkBitmap::kNo_Config: |
| + default: |
| + matching_enum_config = BITMAP_FORMAT_NO_CONFIG; |
| + break; |
| + } |
| + DCHECK(matching_enum_config == BITMAP_FORMAT_NO_CONFIG); |
|
bulach
2014/03/04 13:05:13
shouldn't this be != ?
sivag
2014/03/04 13:57:55
Done.
|
| + return matching_enum_config; |
| } |
| ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { |
| @@ -53,9 +79,9 @@ ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { |
| DCHECK((config == SkBitmap::kRGB_565_Config) || |
| (config == SkBitmap::kARGB_8888_Config)); |
| // If the Config is not RGB565 it is default i.e ARGB8888 |
|
bulach
2014/03/04 13:05:13
this comment is obsolete now..
sivag
2014/03/04 13:57:55
Done.
|
| - 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 +128,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_getConfigEnumValue( |
| + AttachCurrentThread(), bitmap_config); |
| switch (jbitmap_config) { |
| case BITMAP_FORMAT_ALPHA_8: |
| return SkBitmap::kA8_Config; |