Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2551)

Unified Diff: Source/core/rendering/svg/RenderSVGRoot.cpp

Issue 666163005: Factor SVG root painter code into SVGRootPainter (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/svg/RenderSVGRoot.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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()
« no previous file with comments | « Source/core/rendering/svg/RenderSVGRoot.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698