Index: webkit/plugins/ppapi/ppb_graphics_2d_impl.cc |
diff --git a/webkit/plugins/ppapi/ppb_graphics_2d_impl.cc b/webkit/plugins/ppapi/ppb_graphics_2d_impl.cc |
index f503862c6e123bc318c4b5fbc15df5f7aabc4e0f..89cba977ea524a0df0f064edeed3802ea76f2257 100644 |
--- a/webkit/plugins/ppapi/ppb_graphics_2d_impl.cc |
+++ b/webkit/plugins/ppapi/ppb_graphics_2d_impl.cc |
@@ -548,13 +548,21 @@ void PPB_Graphics2D_Impl::Paint(WebKit::WebCanvas* canvas, |
canvas->restore(); |
} |
+ SkBitmap image; |
+ // Copy to device independent bitmap when target canvas doesn't support |
+ // platform paint. |
+ if (!skia::SupportsPlatformPaint(canvas)) |
+ backing_bitmap.copyTo(&image, SkBitmap::kARGB_8888_Config); |
+ else |
+ image = backing_bitmap; |
+ |
SkPaint paint; |
if (is_always_opaque_) { |
// When we know the device is opaque, we can disable blending for slightly |
// more optimized painting. |
paint.setXfermodeMode(SkXfermode::kSrc_Mode); |
} |
- canvas->drawBitmap(backing_bitmap, |
+ canvas->drawBitmap(image, |
SkIntToScalar(plugin_rect.x()), |
SkIntToScalar(plugin_rect.y()), |
&paint); |