Index: Source/core/rendering/svg/RenderSVGModelObject.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGModelObject.cpp b/Source/core/rendering/svg/RenderSVGModelObject.cpp |
index 79d09a4078b108cc18305ee0a71376c4d0b17e04..385f5b008d81a13a681bc4c22e872283f2c3310b 100644 |
--- a/Source/core/rendering/svg/RenderSVGModelObject.cpp |
+++ b/Source/core/rendering/svg/RenderSVGModelObject.cpp |
@@ -50,19 +50,19 @@ |
return child->isSVG() && !(child->isSVGInline() || child->isSVGInlineText()); |
} |
-LayoutRect RenderSVGModelObject::clippedOverflowRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer) const |
+LayoutRect RenderSVGModelObject::clippedOverflowRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationState) const |
{ |
- return SVGRenderSupport::clippedOverflowRectForRepaint(this, paintInvalidationContainer); |
+ return SVGRenderSupport::clippedOverflowRectForRepaint(this, paintInvalidationContainer, paintInvalidationState); |
} |
-void RenderSVGModelObject::computeFloatRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer, FloatRect& paintInvalidationRect, bool fixed) const |
+void RenderSVGModelObject::computeFloatRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer, FloatRect& paintInvalidationRect, bool fixed, const PaintInvalidationState* paintInvalidationState) const |
{ |
- SVGRenderSupport::computeFloatRectForRepaint(this, paintInvalidationContainer, paintInvalidationRect, fixed); |
+ SVGRenderSupport::computeFloatRectForRepaint(this, paintInvalidationContainer, paintInvalidationRect, fixed, paintInvalidationState); |
} |
-void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const |
+void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed, const PaintInvalidationState* paintInvalidationState) const |
{ |
- SVGRenderSupport::mapLocalToContainer(this, repaintContainer, transformState, wasFixed); |
+ SVGRenderSupport::mapLocalToContainer(this, repaintContainer, transformState, wasFixed, paintInvalidationState); |
} |
const RenderObject* RenderSVGModelObject::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const |
@@ -124,7 +124,7 @@ |
quads.append(localToAbsoluteQuad(FloatQuad(paintInvalidationRectInLocalCoordinates()))); |
} |
-void RenderSVGModelObject::invalidateTreeAfterLayout(const RenderLayerModelObject& paintInvalidationContainer) |
+void RenderSVGModelObject::invalidateTreeAfterLayout(const PaintInvalidationState& paintInvalidationState) |
{ |
// Note: This is a reduced version of RenderBox::invalidateTreeAfterLayout(). |
// FIXME: Should share code with RenderBox::invalidateTreeAfterLayout(). |
@@ -133,13 +133,13 @@ |
if (!shouldCheckForPaintInvalidationAfterLayout()) |
return; |
- ForceHorriblySlowRectMapping slowRectMapping(*this); |
+ ForceHorriblySlowRectMapping slowRectMapping(&paintInvalidationState); |
const LayoutRect oldPaintInvalidationRect = previousPaintInvalidationRect(); |
const LayoutPoint oldPositionFromPaintInvalidationContainer = previousPositionFromPaintInvalidationContainer(); |
- ASSERT(&paintInvalidationContainer == containerForPaintInvalidation()); |
- setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(&paintInvalidationContainer)); |
- setPreviousPositionFromPaintInvalidationContainer(RenderLayer::positionFromPaintInvalidationContainer(this, &paintInvalidationContainer)); |
+ ASSERT(paintInvalidationState.paintInvalidationContainer() == containerForPaintInvalidation()); |
+ setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(&paintInvalidationState.paintInvalidationContainer(), &paintInvalidationState)); |
+ setPreviousPositionFromPaintInvalidationContainer(RenderLayer::positionFromPaintInvalidationContainer(this, &paintInvalidationState.paintInvalidationContainer(), &paintInvalidationState)); |
// If an ancestor container had its transform changed, then we just |
// need to update the RenderSVGModelObject's repaint rect above. The invalidation |
@@ -152,13 +152,13 @@ |
// issue paint invalidations. We can then skip issuing of paint invalidations for the child |
// renderers as they'll be covered by the RenderView. |
if (view()->doingFullRepaint()) { |
- RenderObject::invalidateTreeAfterLayout(paintInvalidationContainer); |
+ RenderObject::invalidateTreeAfterLayout(paintInvalidationState); |
return; |
} |
invalidatePaintIfNeeded(paintInvalidationState.paintInvalidationContainer(), oldPaintInvalidationRect, oldPositionFromPaintInvalidationContainer); |
- RenderObject::invalidateTreeAfterLayout(paintInvalidationContainer); |
+ RenderObject::invalidateTreeAfterLayout(paintInvalidationState); |
} |
} // namespace WebCore |