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; |