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