Index: Source/core/rendering/svg/RenderSVGContainer.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGContainer.cpp b/Source/core/rendering/svg/RenderSVGContainer.cpp |
index 04f28cae87257b2b442e7b64b9495cdc46c1b4b6..4372b5b54140ad461794ef791441102b2655800a 100644 |
--- a/Source/core/rendering/svg/RenderSVGContainer.cpp |
+++ b/Source/core/rendering/svg/RenderSVGContainer.cpp |
@@ -25,6 +25,7 @@ |
#include "core/rendering/svg/RenderSVGContainer.h" |
+#include "core/frame/Settings.h" |
#include "core/rendering/GraphicsContextAnnotator.h" |
#include "core/rendering/LayoutRectRecorder.h" |
#include "core/rendering/LayoutRepainter.h" |
@@ -32,6 +33,7 @@ |
#include "core/rendering/svg/SVGRenderingContext.h" |
#include "core/rendering/svg/SVGResources.h" |
#include "core/rendering/svg/SVGResourcesCache.h" |
+#include "platform/graphics/GraphicsContextCullSaver.h" |
#include "platform/graphics/GraphicsContextStateSaver.h" |
namespace WebCore { |
@@ -130,10 +132,14 @@ void RenderSVGContainer::paint(PaintInfo& paintInfo, const LayoutPoint&) |
childPaintInfo.applyTransform(localToParentTransform()); |
SVGRenderingContext renderingContext; |
+ GraphicsContextCullSaver cullSaver(*childPaintInfo.context); |
bool continueRendering = true; |
if (childPaintInfo.phase == PaintPhaseForeground) { |
renderingContext.prepareToRenderSVGContent(this, childPaintInfo); |
continueRendering = renderingContext.isRenderingPrepared(); |
+ |
+ if (continueRendering && document().settings()->containerCullingEnabled()) |
+ cullSaver.cull(repaintRectInLocalCoordinates()); |
} |
if (continueRendering) { |