summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderPath.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/RenderPath.h')
-rw-r--r--WebCore/rendering/RenderPath.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/WebCore/rendering/RenderPath.h b/WebCore/rendering/RenderPath.h
index d530f3c..ea4de40 100644
--- a/WebCore/rendering/RenderPath.h
+++ b/WebCore/rendering/RenderPath.h
@@ -41,6 +41,9 @@ public:
RenderPath(SVGStyledTransformableElement*);
const Path& path() const { return m_path; }
+ void setNeedsBoundariesUpdate() { m_needsBoundariesUpdate = true; }
+ void setNeedsPathUpdate() { m_needsPathUpdate = true; }
+ virtual void setNeedsTransformUpdate() { m_needsTransformUpdate = true; }
private:
// Hit-detection seperated for the fill and the stroke
@@ -52,9 +55,7 @@ private:
virtual FloatRect markerBoundingBox() const;
virtual FloatRect repaintRectInLocalCoordinates() const;
- virtual const AffineTransform& localToParentTransform() const;
-
- void setPath(const Path&);
+ virtual const AffineTransform& localToParentTransform() const { return m_localTransform; }
virtual bool isRenderPath() const { return true; }
virtual const char* renderName() const { return "RenderPath"; }
@@ -64,11 +65,17 @@ private:
virtual void addFocusRingRects(Vector<IntRect>&, int tx, int ty);
virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction);
+ virtual void styleWillChange(StyleDifference, const RenderStyle*);
void calculateMarkerBoundsIfNeeded() const;
+ void invalidateCachedBoundaries();
private:
- virtual AffineTransform localTransform() const;
+ virtual AffineTransform localTransform() const { return m_localTransform; }
+
+ bool m_needsBoundariesUpdate : 1;
+ bool m_needsPathUpdate : 1;
+ bool m_needsTransformUpdate : 1;
mutable Path m_path;
mutable FloatRect m_cachedLocalFillBBox;