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 83d4a46518203edb5ecafd2efdc7d3b253a32806..aff3d0b9ee7baaff8fb70933d8f4c191e58f3e77 100644 |
| --- a/ui/gfx/android/java_bitmap.cc |
| +++ b/ui/gfx/android/java_bitmap.cc |
| @@ -71,22 +71,20 @@ static ScopedJavaLocalRef<jobject> CreateJavaBitmapFromResource( |
| requested_size.height()); |
| } |
| -static SkBitmap ConvertToSkBitmap(ScopedJavaLocalRef<jobject> jbitmap) { |
| - if (jbitmap.is_null()) |
| - return SkBitmap(); |
| +SkBitmap CreateSkBitmapFromJavaBitmap(JavaBitmap& jbitmap) { |
| + DCHECK_EQ(jbitmap.format(), ANDROID_BITMAP_FORMAT_RGBA_8888); |
| - JavaBitmap src_lock(jbitmap.obj()); |
| - DCHECK_EQ(src_lock.format(), ANDROID_BITMAP_FORMAT_RGBA_8888); |
| - |
| - gfx::Size src_size = src_lock.size(); |
| + gfx::Size src_size = jbitmap.size(); |
| SkBitmap skbitmap; |
| skbitmap.setConfig(SkBitmap::kARGB_8888_Config, |
| - src_size.width(), src_size.height(), src_lock.stride()); |
| + src_size.width(), |
| + src_size.height(), |
| + jbitmap.stride()); |
| skbitmap.allocPixels(); |
| SkAutoLockPixels dst_lock(skbitmap); |
| - void* src_pixels = src_lock.pixels(); |
| + void* src_pixels = jbitmap.pixels(); |
| void* dst_pixels = skbitmap.getPixels(); |
| memcpy(dst_pixels, src_pixels, skbitmap.getSize()); |
| @@ -94,6 +92,14 @@ static SkBitmap ConvertToSkBitmap(ScopedJavaLocalRef<jobject> jbitmap) { |
| return skbitmap; |
| } |
| +static SkBitmap ConvertToSkBitmap(ScopedJavaLocalRef<jobject> jbitmap) { |
|
aelias_OOO_until_Jul13
2013/09/06 04:17:38
Could you get rid of this method by making CreateJ
powei
2013/09/09 17:57:18
Done. Consolidated into fewer functions.
|
| + if (jbitmap.is_null()) |
| + return SkBitmap(); |
| + |
| + JavaBitmap src_lock(jbitmap.obj()); |
| + return CreateSkBitmapFromJavaBitmap(src_lock); |
| +} |
| + |
| SkBitmap CreateSkBitmapFromResource(const char* name, gfx::Size size) { |
| DCHECK(!size.IsEmpty()); |
| SkBitmap bitmap = |