diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/rendering/svg/RenderSVGModelObject.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/rendering/svg/RenderSVGModelObject.cpp')
-rw-r--r-- | Source/WebCore/rendering/svg/RenderSVGModelObject.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp b/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp index 78768eafe..e64cafa4d 100644 --- a/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp +++ b/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp @@ -29,8 +29,6 @@ */ #include "config.h" - -#if ENABLE(SVG) #include "RenderSVGModelObject.h" #include "RenderLayerModelObject.h" @@ -41,8 +39,8 @@ namespace WebCore { -RenderSVGModelObject::RenderSVGModelObject(SVGElement& element, PassRef<RenderStyle> style) - : RenderElement(element, std::move(style), 0) +RenderSVGModelObject::RenderSVGModelObject(SVGElement& element, RenderStyle&& style) + : RenderElement(element, WTFMove(style), 0) , m_hasSVGShadow(false) { } @@ -52,9 +50,9 @@ LayoutRect RenderSVGModelObject::clippedOverflowRectForRepaint(const RenderLayer return SVGRenderSupport::clippedOverflowRectForRepaint(*this, repaintContainer); } -void RenderSVGModelObject::computeFloatRectForRepaint(const RenderLayerModelObject* repaintContainer, FloatRect& repaintRect, bool fixed) const +FloatRect RenderSVGModelObject::computeFloatRectForRepaint(const FloatRect& repaintRect, const RenderLayerModelObject* repaintContainer, bool fixed) const { - SVGRenderSupport::computeFloatRectForRepaint(*this, repaintContainer, repaintRect, fixed); + return SVGRenderSupport::computeFloatRectForRepaint(*this, repaintRect, repaintContainer, fixed); } void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const @@ -76,7 +74,7 @@ LayoutRect RenderSVGModelObject::outlineBoundsForRepaint(const RenderLayerModelO adjustRectForOutlineAndShadow(box); FloatQuad containerRelativeQuad = localToContainerQuad(FloatRect(box), repaintContainer); - return containerRelativeQuad.enclosingBoundingBox(); + return LayoutRect(snapRectToDevicePixels(LayoutRect(containerRelativeQuad.boundingBox()), document().deviceScaleFactor())); } void RenderSVGModelObject::absoluteRects(Vector<IntRect>& rects, const LayoutPoint& accumulatedOffset) const @@ -88,7 +86,7 @@ void RenderSVGModelObject::absoluteRects(Vector<IntRect>& rects, const LayoutPoi void RenderSVGModelObject::absoluteQuads(Vector<FloatQuad>& quads, bool* wasFixed) const { - quads.append(localToAbsoluteQuad(strokeBoundingBox(), 0 /* mode */, wasFixed)); + quads.append(localToAbsoluteQuad(strokeBoundingBox(), UseTransforms, wasFixed)); } void RenderSVGModelObject::willBeDestroyed() @@ -126,11 +124,11 @@ static void getElementCTM(SVGElement* element, AffineTransform& transform) Node* current = element; while (current && current->isSVGElement()) { - SVGElement* currentElement = toSVGElement(current); - localTransform = currentElement->renderer()->localToParentTransform(); + SVGElement& currentElement = downcast<SVGElement>(*current); + localTransform = currentElement.renderer()->localToParentTransform(); transform = localTransform.multiply(transform); // For getCTM() computation, stop at the nearest viewport element - if (currentElement == stopAtElement) + if (¤tElement == stopAtElement) break; current = current->parentOrShadowHostNode(); @@ -173,7 +171,7 @@ bool RenderSVGModelObject::checkIntersection(RenderElement* renderer, const Floa if (!isGraphicsElement(*renderer)) return false; AffineTransform ctm; - SVGElement* svgElement = toSVGElement(renderer->element()); + SVGElement* svgElement = downcast<SVGElement>(renderer->element()); getElementCTM(svgElement, ctm); ASSERT(svgElement->renderer()); return intersectsAllowingEmpty(rect, ctm.mapRect(svgElement->renderer()->repaintRectInLocalCoordinates())); @@ -186,12 +184,10 @@ bool RenderSVGModelObject::checkEnclosure(RenderElement* renderer, const FloatRe if (!isGraphicsElement(*renderer)) return false; AffineTransform ctm; - SVGElement* svgElement = toSVGElement(renderer->element()); + SVGElement* svgElement = downcast<SVGElement>(renderer->element()); getElementCTM(svgElement, ctm); ASSERT(svgElement->renderer()); return rect.contains(ctm.mapRect(svgElement->renderer()->repaintRectInLocalCoordinates())); } } // namespace WebCore - -#endif // ENABLE(SVG) |