summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
commit32761a6cee1d0dee366b885b7b9c777e67885688 (patch)
treed6bec92bebfb216f4126356e55518842c2f476a1 /Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
parenta4e969f4965059196ca948db781e52f7cfebf19e (diff)
downloadWebKitGtk-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.cpp26
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 (&currentElement == 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)