Chromium Code Reviews| Index: Source/core/page/ImageBitmap.cpp |
| diff --git a/Source/core/page/ImageBitmap.cpp b/Source/core/page/ImageBitmap.cpp |
| index 2f83dd31d15ef34c1697d544f39b783227b699fb..f748a3a08008e1a5e6fb23d889dbc74f9ad6438b 100644 |
| --- a/Source/core/page/ImageBitmap.cpp |
| +++ b/Source/core/page/ImageBitmap.cpp |
| @@ -9,6 +9,7 @@ |
| #include "core/html/HTMLImageElement.h" |
| #include "core/html/HTMLVideoElement.h" |
| #include "core/html/ImageData.h" |
| +#include "core/html/canvas/CanvasRenderingContext.h" |
| #include "core/platform/graphics/BitmapImage.h" |
| #include "core/platform/graphics/GraphicsContext.h" |
| #include "wtf/RefPtr.h" |
| @@ -71,6 +72,10 @@ ImageBitmap::ImageBitmap(HTMLCanvasElement* canvas, const IntRect& cropRect) |
| IntRect srcRect = intersection(cropRect, IntRect(IntPoint(), canvasSize)); |
| IntRect dstRect(IntPoint(), srcRect.size()); |
| + CanvasRenderingContext* sourceContext = canvas->renderingContext(); |
| + if (!sourceContext || !sourceContext->isAccelerated() || !sourceContext->is2d()) |
|
Justin Novosad
2013/08/19 20:20:51
Do we really need to call makeRenderingResultsAvai
|
| + canvas->makeRenderingResultsAvailable(); |
| + |
| m_buffer = ImageBuffer::create(canvasSize); |
| m_buffer->context()->drawImageBuffer(canvas->buffer(), dstRect, srcRect); |
| m_bitmap = m_buffer->copyImage(DontCopyBackingStore); |