Index: skia/ext/bitmap_platform_device_android.cc |
=================================================================== |
--- skia/ext/bitmap_platform_device_android.cc (revision 127021) |
+++ skia/ext/bitmap_platform_device_android.cc (working copy) |
@@ -21,21 +21,25 @@ |
return NULL; |
} |
+BitmapPlatformDevice* BitmapPlatformDevice::CreateAndClear(int width, |
+ int height, |
+ bool is_opaque) { |
+ BitmapPlatformDevice* device = Create(width, height, is_opaque); |
+ if (!is_opaque) |
+ device->accessBitmap(true).eraseARGB(0, 0, 0, 0); |
+ return device; |
+} |
+ |
BitmapPlatformDevice* BitmapPlatformDevice::Create(int width, int height, |
bool is_opaque, |
uint8_t* data) { |
SkBitmap bitmap; |
bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); |
- if (data) { |
+ if (data) |
bitmap.setPixels(data); |
- } else { |
- if (!bitmap.allocPixels()) |
- return NULL; |
- // Follow the logic in SkCanvas::createDevice(), initialize the bitmap if it |
- // is not opaque. |
- if (!is_opaque) |
- bitmap.eraseARGB(0, 0, 0, 0); |
- } |
+ else if (!bitmap.allocPixels()) |
+ return NULL; |
+ |
bitmap.setIsOpaque(is_opaque); |
return new BitmapPlatformDevice(bitmap); |
} |