| Index: Source/platform/graphics/GraphicsContext.cpp
|
| diff --git a/Source/platform/graphics/GraphicsContext.cpp b/Source/platform/graphics/GraphicsContext.cpp
|
| index 35ffdcda590929fffca9474693d5ce0529d72d83..9127696d1190547617250ee5f596be2b82933efb 100644
|
| --- a/Source/platform/graphics/GraphicsContext.cpp
|
| +++ b/Source/platform/graphics/GraphicsContext.cpp
|
| @@ -93,9 +93,10 @@ private:
|
| } // unnamed namespace
|
|
|
| struct GraphicsContext::CanvasSaveState {
|
| - CanvasSaveState(unsigned mask, int count) : m_flags(mask), m_restoreCount(count) { }
|
| + CanvasSaveState(bool pendingSave, int count)
|
| + : m_pendingSave(pendingSave), m_restoreCount(count) { }
|
|
|
| - unsigned m_flags;
|
| + bool m_pendingSave;
|
| int m_restoreCount;
|
| };
|
|
|
| @@ -116,7 +117,7 @@ GraphicsContext::GraphicsContext(SkCanvas* canvas)
|
| : m_canvas(canvas)
|
| , m_paintStateStack()
|
| , m_paintStateIndex(0)
|
| - , m_canvasSaveFlags(0)
|
| + , m_pendingCanvasSave(false)
|
| , m_annotationMode(0)
|
| #if !ASSERT_DISABLED
|
| , m_annotationCount(0)
|
| @@ -152,8 +153,8 @@ void GraphicsContext::save()
|
|
|
| m_paintState->incrementSaveCount();
|
|
|
| - m_canvasStateStack.append(CanvasSaveState(m_canvasSaveFlags, m_canvas->getSaveCount()));
|
| - m_canvasSaveFlags |= SkCanvas::kMatrixClip_SaveFlag;
|
| + m_canvasStateStack.append(CanvasSaveState(m_pendingCanvasSave, m_canvas->getSaveCount()));
|
| + m_pendingCanvasSave = true;
|
| }
|
|
|
| void GraphicsContext::restore()
|
| @@ -175,7 +176,7 @@ void GraphicsContext::restore()
|
|
|
| CanvasSaveState savedState = m_canvasStateStack.last();
|
| m_canvasStateStack.removeLast();
|
| - m_canvasSaveFlags = savedState.m_flags;
|
| + m_pendingCanvasSave = savedState.m_pendingSave;
|
| m_canvas->restoreToCount(savedState.m_restoreCount);
|
| }
|
|
|
| @@ -184,7 +185,7 @@ void GraphicsContext::saveLayer(const SkRect* bounds, const SkPaint* paint)
|
| if (paintingDisabled())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrixClip_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->saveLayer(bounds, paint);
|
| if (m_trackOpaqueRegion)
|
| @@ -421,7 +422,7 @@ void GraphicsContext::setMatrix(const SkMatrix& matrix)
|
| if (paintingDisabled())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrix_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->setMatrix(matrix);
|
| }
|
| @@ -434,7 +435,7 @@ void GraphicsContext::concat(const SkMatrix& matrix)
|
| if (matrix.isIdentity())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrix_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->concat(matrix);
|
| }
|
| @@ -529,7 +530,7 @@ void GraphicsContext::drawDisplayList(DisplayList* displayList)
|
| if (paintingDisabled() || displayList->bounds().isEmpty())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrixClip_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| const FloatRect& bounds = displayList->bounds();
|
| if (bounds.x() || bounds.y())
|
| @@ -1484,7 +1485,7 @@ void GraphicsContext::clipRect(const SkRect& rect, AntiAliasingMode aa, SkRegion
|
| if (paintingDisabled())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kClip_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->clipRect(rect, op, aa == AntiAliased);
|
| }
|
| @@ -1494,7 +1495,7 @@ void GraphicsContext::clipPath(const SkPath& path, AntiAliasingMode aa, SkRegion
|
| if (paintingDisabled())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kClip_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->clipPath(path, op, aa == AntiAliased);
|
| }
|
| @@ -1504,7 +1505,7 @@ void GraphicsContext::clipRRect(const SkRRect& rect, AntiAliasingMode aa, SkRegi
|
| if (paintingDisabled())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kClip_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->clipRRect(rect, op, aa == AntiAliased);
|
| }
|
| @@ -1514,7 +1515,7 @@ void GraphicsContext::beginCull(const FloatRect& rect)
|
| if (paintingDisabled())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrixClip_SaveFlag);
|
| + realizeCanvasSave();
|
| m_canvas->pushCull(rect);
|
| }
|
|
|
| @@ -1523,7 +1524,7 @@ void GraphicsContext::endCull()
|
| if (paintingDisabled())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrixClip_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->popCull();
|
| }
|
| @@ -1533,7 +1534,7 @@ void GraphicsContext::rotate(float angleInRadians)
|
| if (paintingDisabled())
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrix_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->rotate(WebCoreFloatToSkScalar(angleInRadians * (180.0f / 3.14159265f)));
|
| }
|
| @@ -1546,7 +1547,7 @@ void GraphicsContext::translate(float w, float h)
|
| if (!w && !h)
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrix_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->translate(WebCoreFloatToSkScalar(w), WebCoreFloatToSkScalar(h));
|
| }
|
| @@ -1559,7 +1560,7 @@ void GraphicsContext::scale(const FloatSize& size)
|
| if (size.width() == 1.0f && size.height() == 1.0f)
|
| return;
|
|
|
| - realizeCanvasSave(SkCanvas::kMatrix_SaveFlag);
|
| + realizeCanvasSave();
|
|
|
| m_canvas->scale(WebCoreFloatToSkScalar(size.width()), WebCoreFloatToSkScalar(size.height()));
|
| }
|
|
|