| Index: Source/core/rendering/svg/RenderSVGRoot.cpp
|
| diff --git a/Source/core/rendering/svg/RenderSVGRoot.cpp b/Source/core/rendering/svg/RenderSVGRoot.cpp
|
| index c872957c2f28f79102679f0a10cc009dbd00236f..dadbf2252401145717ca03cb052d3057536b5602 100644
|
| --- a/Source/core/rendering/svg/RenderSVGRoot.cpp
|
| +++ b/Source/core/rendering/svg/RenderSVGRoot.cpp
|
| @@ -26,20 +26,17 @@
|
| #include "core/rendering/svg/RenderSVGRoot.h"
|
|
|
| #include "core/frame/LocalFrame.h"
|
| +#include "core/paint/SVGRootPainter.h"
|
| #include "core/rendering/HitTestResult.h"
|
| #include "core/rendering/RenderLayer.h"
|
| #include "core/rendering/RenderPart.h"
|
| #include "core/rendering/RenderView.h"
|
| -#include "core/rendering/svg/RenderSVGResourceContainer.h"
|
| #include "core/rendering/svg/SVGRenderSupport.h"
|
| -#include "core/rendering/svg/SVGRenderingContext.h"
|
| -#include "core/rendering/svg/SVGResources.h"
|
| #include "core/rendering/svg/SVGResourcesCache.h"
|
| #include "core/svg/SVGElement.h"
|
| #include "core/svg/SVGSVGElement.h"
|
| #include "core/svg/graphics/SVGImage.h"
|
| #include "platform/LengthFunctions.h"
|
| -#include "platform/graphics/GraphicsContext.h"
|
|
|
| namespace blink {
|
|
|
| @@ -217,49 +214,7 @@ bool RenderSVGRoot::shouldApplyViewportClip() const
|
|
|
| void RenderSVGRoot::paintReplaced(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
|
| {
|
| - // An empty viewport disables rendering.
|
| - if (pixelSnappedBorderBoxRect().isEmpty())
|
| - return;
|
| -
|
| - // SVG outlines are painted during PaintPhaseForeground.
|
| - if (paintInfo.phase == PaintPhaseOutline || paintInfo.phase == PaintPhaseSelfOutline)
|
| - return;
|
| -
|
| - // An empty viewBox also disables rendering.
|
| - // (http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute)
|
| - SVGSVGElement* svg = toSVGSVGElement(node());
|
| - ASSERT(svg);
|
| - if (svg->hasEmptyViewBox())
|
| - return;
|
| -
|
| - // Don't paint if we don't have kids, except if we have filters we should paint those.
|
| - if (!firstChild()) {
|
| - SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(this);
|
| - if (!resources || !resources->filter())
|
| - return;
|
| - }
|
| -
|
| - // Make a copy of the PaintInfo because applyTransform will modify the damage rect.
|
| - PaintInfo childPaintInfo(paintInfo);
|
| - GraphicsContextStateSaver stateSaver(*childPaintInfo.context);
|
| -
|
| - // Apply initial viewport clip
|
| - if (shouldApplyViewportClip())
|
| - childPaintInfo.context->clip(pixelSnappedIntRect(overflowClipRect(paintOffset)));
|
| -
|
| - // Convert from container offsets (html renderers) to a relative transform (svg renderers).
|
| - // Transform from our paint container's coordinate system to our local coords.
|
| - IntPoint adjustedPaintOffset = roundedIntPoint(paintOffset);
|
| - childPaintInfo.applyTransform(AffineTransform::translation(adjustedPaintOffset.x(), adjustedPaintOffset.y()) * localToBorderBoxTransform());
|
| -
|
| - SVGRenderingContext renderingContext;
|
| - if (childPaintInfo.phase == PaintPhaseForeground) {
|
| - renderingContext.prepareToRenderSVGContent(this, childPaintInfo);
|
| - if (!renderingContext.isRenderingPrepared())
|
| - return;
|
| - }
|
| -
|
| - RenderBox::paint(childPaintInfo, LayoutPoint());
|
| + SVGRootPainter(*this).paint(paintInfo, paintOffset);
|
| }
|
|
|
| void RenderSVGRoot::willBeDestroyed()
|
|
|