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 |