Index: Source/core/html/HTMLCanvasElement.cpp |
diff --git a/Source/core/html/HTMLCanvasElement.cpp b/Source/core/html/HTMLCanvasElement.cpp |
index bff1d0678e104fb06abbebdc0c4de0344297ea9e..c5cd8ad55aedd19b8e2097d4a03acf0b5972e3d7 100644 |
--- a/Source/core/html/HTMLCanvasElement.cpp |
+++ b/Source/core/html/HTMLCanvasElement.cpp |
@@ -48,6 +48,7 @@ |
#include "platform/graphics/Canvas2DImageBufferSurface.h" |
#include "platform/graphics/GraphicsContextStateSaver.h" |
#include "platform/graphics/ImageBuffer.h" |
+#include "platform/graphics/RecordingImageBufferSurface.h" |
#include "platform/graphics/UnacceleratedImageBufferSurface.h" |
#include "platform/graphics/gpu/WebGLImageBufferSurface.h" |
#include "platform/transforms/AffineTransform.h" |
@@ -452,6 +453,12 @@ PassOwnPtr<ImageBufferSurface> HTMLCanvasElement::createImageBufferSurface(const |
if (is3D()) |
return adoptPtr(new WebGLImageBufferSurface(size(), opacityMode)); |
+ if (document().settings() && document().settings()->displayList2dCanvasEnabled()) { |
+ OwnPtr<ImageBufferSurface> surface = adoptPtr(new RecordingImageBufferSurface(size(), opacityMode)); |
+ if (surface->isValid()) |
+ return surface.release(); |
+ } |
+ |
if (shouldAccelerate(deviceSize)) { |
if (document().settings()) |
*msaaSampleCount = document().settings()->accelerated2dCanvasMSAASampleCount(); |