summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/svg/SVGRenderSupport.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/svg/SVGRenderSupport.h')
-rw-r--r--Source/WebCore/rendering/svg/SVGRenderSupport.h25
1 files changed, 14 insertions, 11 deletions
diff --git a/Source/WebCore/rendering/svg/SVGRenderSupport.h b/Source/WebCore/rendering/svg/SVGRenderSupport.h
index 026c14e7a..d6ff72d7c 100644
--- a/Source/WebCore/rendering/svg/SVGRenderSupport.h
+++ b/Source/WebCore/rendering/svg/SVGRenderSupport.h
@@ -21,10 +21,8 @@
* Boston, MA 02110-1301, USA.
*/
-#ifndef SVGRenderSupport_h
-#define SVGRenderSupport_h
+#pragma once
-#if ENABLE(SVG)
#include "PaintInfo.h"
namespace WebCore {
@@ -45,6 +43,8 @@ class TransformState;
// SVGRendererSupport is a helper class sharing code between all SVG renderers.
class SVGRenderSupport {
public:
+ static void layoutDifferentRootIfNeeded(const RenderElement&);
+
// Shares child layouting code between RenderSVGRoot/RenderSVG(Hidden)Container
static void layoutChildren(RenderElement&, bool selfNeedsLayout);
@@ -68,8 +68,9 @@ public:
// Important functions used by nearly all SVG renderers centralizing coordinate transformations / repaint rect calculations
static FloatRect repaintRectForRendererInLocalCoordinatesExcludingSVGShadow(const RenderElement&);
static LayoutRect clippedOverflowRectForRepaint(const RenderElement&, const RenderLayerModelObject* repaintContainer);
- static void computeFloatRectForRepaint(const RenderElement&, const RenderLayerModelObject* repaintContainer, FloatRect&, bool fixed);
- static void mapLocalToContainer(const RenderElement&, const RenderLayerModelObject* repaintContainer, TransformState&, bool* wasFixed = 0);
+ static FloatRect computeFloatRectForRepaint(const RenderElement&, const FloatRect&, const RenderLayerModelObject* repaintContainer, bool fixed);
+ static const RenderElement& localToParentTransform(const RenderElement&, AffineTransform &);
+ static void mapLocalToContainer(const RenderElement&, const RenderLayerModelObject* repaintContainer, TransformState&, bool* wasFixed);
static const RenderElement* pushMappingToContainer(const RenderElement&, const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&);
static bool checkForSVGRepaintDuringLayout(const RenderElement&);
@@ -84,10 +85,15 @@ public:
static void setRendererHasSVGShadow(RenderObject&, bool hasShadow);
static void childAdded(RenderElement& parent, RenderObject& child);
- static void styleChanged(RenderElement&);
+ static void styleChanged(RenderElement&, const RenderStyle*);
+
+#if ENABLE(CSS_COMPOSITING)
+ static bool isolatesBlending(const RenderStyle&);
+ static void updateMaskedAncestorShouldIsolateBlending(const RenderElement&);
+#endif
- // FIXME: These methods do not belong here.
- static const RenderSVGRoot& findTreeRootObject(const RenderElement&);
+ static RenderSVGRoot* findTreeRootObject(RenderElement&);
+ static const RenderSVGRoot* findTreeRootObject(const RenderElement&);
private:
// This class is not constructable.
@@ -96,6 +102,3 @@ private:
};
} // namespace WebCore
-
-#endif // ENABLE(SVG)
-#endif // SVGRenderSupport_h