Index: Source/WebCore/rendering/svg/RenderSVGShape.h |
=================================================================== |
--- Source/WebCore/rendering/svg/RenderSVGShape.h (revision 118879) |
+++ Source/WebCore/rendering/svg/RenderSVGShape.h (working copy) |
@@ -30,7 +30,7 @@ |
#include "AffineTransform.h" |
#include "FloatRect.h" |
#include "RenderSVGModelObject.h" |
-#include "SVGMarkerLayoutInfo.h" |
+#include "SVGMarkerData.h" |
#include "StrokeStyleApplier.h" |
#include <wtf/OwnPtr.h> |
#include <wtf/Vector.h> |
@@ -93,9 +93,6 @@ |
virtual bool shapeDependentFillContains(const FloatPoint&, const WindRule) const; |
float strokeWidth() const; |
void setIsPaintingFallback(bool isFallback) { m_fillFallback = isFallback; } |
- FloatRect calculateMarkerBoundsIfNeeded(); |
- void processZeroLengthSubpaths(); |
- |
bool hasPath() const { return m_path.get(); } |
private: |
@@ -124,21 +121,27 @@ |
Path* nonScalingStrokePath(const Path*, const AffineTransform&); |
bool shouldStrokeZeroLengthSubpath() const; |
FloatRect zeroLengthSubpathRect(const FloatPoint&, float) const; |
+ void processZeroLengthSubpaths(); |
+ bool shouldGenerateMarkerPositions() const; |
+ FloatRect markerRect(float strokeWidth) const; |
+ void processMarkerPositions(); |
+ |
void fillShape(RenderStyle*, GraphicsContext*, Path*, RenderSVGShape*); |
void strokePath(RenderStyle*, GraphicsContext*, Path*, RenderSVGResource*, |
const Color&, bool, const AffineTransform&, int); |
void fillAndStrokePath(GraphicsContext*); |
void inflateWithStrokeAndMarkerBounds(); |
+ void drawMarkers(PaintInfo&); |
private: |
FloatRect m_fillBoundingBox; |
FloatRect m_strokeAndMarkerBoundingBox; |
FloatRect m_repaintBoundingBox; |
- SVGMarkerLayoutInfo m_markerLayoutInfo; |
AffineTransform m_localTransform; |
OwnPtr<Path> m_path; |
Vector<FloatPoint> m_zeroLengthLinecapLocations; |
+ Vector<MarkerPosition> m_markerPositions; |
bool m_needsBoundariesUpdate : 1; |
bool m_needsShapeUpdate : 1; |