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..d2fd72b8387a39e913756a80dbc3b562d279be44 100644 |
| --- a/ui/gfx/android/java_bitmap.cc |
| +++ b/ui/gfx/android/java_bitmap.cc |
| @@ -41,10 +41,12 @@ 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, |
| + jobject bitmap_config) { |
|
bulach
2014/02/28 13:19:25
ditto, just pass the int through instead of the jo
sivag
2014/03/04 12:36:04
Done.
|
| + |
| + return Java_BitmapHelper_createBitmap( |
| + AttachCurrentThread(), width, height, bitmap_config); |
| } |
| ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { |
| @@ -53,9 +55,10 @@ 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 |
| - ScopedJavaLocalRef<jobject> jbitmap = |
| - CreateJavaBitmap(skbitmap->width(), skbitmap->height(), |
| - (config == SkBitmap::kRGB_565_Config)); |
| + ScopedJavaLocalRef<jobject> java_bitmap_config = |
| + ConvertToJavaBitmapConfig(config); |
| + ScopedJavaLocalRef<jobject> jbitmap = CreateJavaBitmap( |
| + skbitmap->width(), skbitmap->height(), java_bitmap_config.obj()); |
| SkAutoLockPixels src_lock(*skbitmap); |
| JavaBitmap dst_lock(jbitmap.obj()); |
| void* src_pixels = skbitmap->getPixels(); |
| @@ -102,8 +105,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; |
| @@ -119,4 +122,30 @@ SkBitmap::Config ConvertToSkiaConfig(jobject bitmap_config) { |
| } |
| } |
| +ScopedJavaLocalRef<jobject> ConvertToJavaBitmapConfig( |
|
bulach
2014/02/28 13:19:25
nit: perhaps SkBitmapConfigToBitmapFormat ?
...mak
jdduke (slow)
2014/02/28 14:20:59
+1 to passing an int and removing the additional J
sivag
2014/03/04 12:36:04
Done.
sivag
2014/03/04 12:36:04
Done.
|
| + SkBitmap::Config bitmap_config) { |
| + int matching_enum_config = BITMAP_FORMAT_NO_CONFIG; |
| + switch (bitmap_config) { |
| + case SkBitmap::kA8_Config: |
| + matching_enum_config = BITMAP_FORMAT_ALPHA_8; |
| + 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); |
| + return Java_BitmapHelper_getJavabitmapConfig(AttachCurrentThread(), |
| + matching_enum_config); |
| +} |
| + |
| } // namespace gfx |