diff options
Diffstat (limited to 'WebCore/rendering/RenderPath.h')
| -rw-r--r-- | WebCore/rendering/RenderPath.h | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/WebCore/rendering/RenderPath.h b/WebCore/rendering/RenderPath.h index 2ff179e..d530f3c 100644 --- a/WebCore/rendering/RenderPath.h +++ b/WebCore/rendering/RenderPath.h @@ -25,10 +25,10 @@ #define RenderPath_h #if ENABLE(SVG) - +#include "AffineTransform.h" #include "FloatRect.h" #include "RenderSVGModelObject.h" -#include "TransformationMatrix.h" +#include "SVGMarkerLayoutInfo.h" namespace WebCore { @@ -40,7 +40,7 @@ class RenderPath : public RenderSVGModelObject { public: RenderPath(SVGStyledTransformableElement*); - const Path& path() const; + const Path& path() const { return m_path; } private: // Hit-detection seperated for the fill and the stroke @@ -48,9 +48,11 @@ private: bool strokeContains(const FloatPoint&, bool requiresStroke = true) const; virtual FloatRect objectBoundingBox() const; + virtual FloatRect strokeBoundingBox() const; + virtual FloatRect markerBoundingBox() const; virtual FloatRect repaintRectInLocalCoordinates() const; - virtual TransformationMatrix localToParentTransform() const; + virtual const AffineTransform& localToParentTransform() const; void setPath(const Path&); @@ -59,20 +61,22 @@ private: virtual void layout(); virtual void paint(PaintInfo&, int parentX, int parentY); - virtual void addFocusRingRects(GraphicsContext*, int tx, int ty); + virtual void addFocusRingRects(Vector<IntRect>&, int tx, int ty); virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction); - FloatRect drawMarkersIfNeeded(GraphicsContext*, const FloatRect&, const Path&) const; + void calculateMarkerBoundsIfNeeded() const; private: - virtual TransformationMatrix localTransform() const; + virtual AffineTransform localTransform() const; mutable Path m_path; mutable FloatRect m_cachedLocalFillBBox; + mutable FloatRect m_cachedLocalStrokeBBox; mutable FloatRect m_cachedLocalRepaintRect; - FloatRect m_markerBounds; - TransformationMatrix m_localTransform; + mutable FloatRect m_cachedLocalMarkerBBox; + mutable SVGMarkerLayoutInfo m_markerLayoutInfo; + AffineTransform m_localTransform; }; inline RenderPath* toRenderPath(RenderObject* object) @@ -94,5 +98,3 @@ void toRenderPath(const RenderPath*); #endif // ENABLE(SVG) #endif - -// vim:ts=4:noet |
