Index: Source/core/html/HTMLCanvasElement.cpp |
diff --git a/Source/core/html/HTMLCanvasElement.cpp b/Source/core/html/HTMLCanvasElement.cpp |
index c7cca4d73eabc4a4f92fac2aa4b0d86ec78bea16..44c70e50b3bb62d1ac3ff0d7f118cca2b0bbc244 100644 |
--- a/Source/core/html/HTMLCanvasElement.cpp |
+++ b/Source/core/html/HTMLCanvasElement.cpp |
@@ -73,7 +73,6 @@ HTMLCanvasElement::HTMLCanvasElement(const QualifiedName& tagName, Document& doc |
, m_ignoreReset(false) |
, m_deviceScaleFactor(1) |
, m_originClean(true) |
- , m_hasCreatedImageBuffer(false) |
, m_didClearImageBuffer(false) |
, m_accelerationDisabled(false) |
, m_externallyAllocatedMemory(0) |
@@ -238,7 +237,7 @@ void HTMLCanvasElement::reset() |
return; |
bool ok; |
- bool hadImageBuffer = hasCreatedImageBuffer(); |
+ bool hadImageBuffer = m_imageBuffer.get(); |
int w = getAttribute(widthAttr).toInt(&ok); |
if (!ok || w < 0) |
@@ -265,7 +264,7 @@ void HTMLCanvasElement::reset() |
// If the size of an existing buffer matches, we can just clear it instead of reallocating. |
// This optimization is only done for 2D canvases for now. |
- if (m_hasCreatedImageBuffer && oldSize == newSize && m_deviceScaleFactor == newDeviceScaleFactor && m_context && m_context->is2d()) { |
+ if (m_imageBuffer && oldSize == newSize && m_deviceScaleFactor == newDeviceScaleFactor && m_context && m_context->is2d()) { |
if (!m_didClearImageBuffer) |
clearImageBuffer(); |
return; |
@@ -323,15 +322,13 @@ void HTMLCanvasElement::paint(GraphicsContext* context, const LayoutRect& r, boo |
m_context->paintRenderingResultsToCanvas(); |
} |
- if (hasCreatedImageBuffer()) { |
- ImageBuffer* imageBuffer = buffer(); |
- if (imageBuffer) { |
- CompositeOperator compositeOperator = !m_context || m_context->hasAlpha() ? CompositeSourceOver : CompositeCopy; |
- if (m_presentedImage) |
- context->drawImage(m_presentedImage.get(), pixelSnappedIntRect(r), compositeOperator, DoNotRespectImageOrientation, useLowQualityScale); |
- else |
- context->drawImageBuffer(imageBuffer, pixelSnappedIntRect(r), compositeOperator, BlendModeNormal, useLowQualityScale); |
- } |
+ ImageBuffer* imageBuffer = buffer(); |
+ if (imageBuffer) { |
+ CompositeOperator compositeOperator = !m_context || m_context->hasAlpha() ? CompositeSourceOver : CompositeCopy; |
+ if (m_presentedImage) |
+ context->drawImage(m_presentedImage.get(), pixelSnappedIntRect(r), compositeOperator, DoNotRespectImageOrientation, useLowQualityScale); |
+ else |
+ context->drawImageBuffer(imageBuffer, pixelSnappedIntRect(r), compositeOperator, BlendModeNormal, useLowQualityScale); |
} |
if (is3D()) |
@@ -359,7 +356,6 @@ void HTMLCanvasElement::clearPresentationCopy() |
void HTMLCanvasElement::setSurfaceSize(const IntSize& size) |
{ |
m_size = size; |
- m_hasCreatedImageBuffer = false; |
m_contextStateSaver.clear(); |
m_imageBuffer.clear(); |
setExternallyAllocatedMemory(0); |
@@ -478,7 +474,6 @@ void HTMLCanvasElement::createImageBuffer() |
{ |
ASSERT(!m_imageBuffer); |
- m_hasCreatedImageBuffer = true; |
m_didClearImageBuffer = true; |
FloatSize logicalSize = size(); |
@@ -533,7 +528,7 @@ GraphicsContext* HTMLCanvasElement::drawingContext() const |
GraphicsContext* HTMLCanvasElement::existingDrawingContext() const |
{ |
- if (!m_hasCreatedImageBuffer) |
+ if (!m_imageBuffer) |
return 0; |
return drawingContext(); |
@@ -541,7 +536,7 @@ GraphicsContext* HTMLCanvasElement::existingDrawingContext() const |
ImageBuffer* HTMLCanvasElement::buffer() const |
{ |
- if (!m_hasCreatedImageBuffer) |
+ if (!m_imageBuffer) |
const_cast<HTMLCanvasElement*>(this)->createImageBuffer(); |
return m_imageBuffer.get(); |
} |
@@ -558,7 +553,7 @@ Image* HTMLCanvasElement::copiedImage() const |
void HTMLCanvasElement::clearImageBuffer() |
{ |
- ASSERT(m_hasCreatedImageBuffer); |
+ ASSERT(m_imageBuffer); |
ASSERT(!m_didClearImageBuffer); |
ASSERT(m_context); |
@@ -579,7 +574,7 @@ void HTMLCanvasElement::clearCopiedImage() |
AffineTransform HTMLCanvasElement::baseTransform() const |
{ |
- ASSERT(m_hasCreatedImageBuffer); |
+ ASSERT(m_imageBuffer); |
FloatSize unscaledSize = size(); |
FloatSize deviceSize = convertLogicalToDevice(unscaledSize); |
IntSize size(deviceSize.width(), deviceSize.height()); |