summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderSVGViewportContainer.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/RenderSVGViewportContainer.h')
-rw-r--r--WebCore/rendering/RenderSVGViewportContainer.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/WebCore/rendering/RenderSVGViewportContainer.h b/WebCore/rendering/RenderSVGViewportContainer.h
index b8b30b5..ee08b60 100644
--- a/WebCore/rendering/RenderSVGViewportContainer.h
+++ b/WebCore/rendering/RenderSVGViewportContainer.h
@@ -24,7 +24,6 @@
#define RenderSVGViewportContainer_h
#if ENABLE(SVG)
-
#include "RenderSVGContainer.h"
namespace WebCore {
@@ -35,16 +34,19 @@ class RenderSVGViewportContainer : public RenderSVGContainer {
public:
RenderSVGViewportContainer(SVGStyledElement*);
- // FIXME: This is only public for SVGResourceMarker::draw, likely the callsite should be changed.
- TransformationMatrix viewportTransform() const;
+ // Calculates marker boundaries, mapped to the target element's coordinate space
+ FloatRect markerBoundaries(const TransformationMatrix& markerTransformation) const;
- virtual void paint(PaintInfo&, int parentX, int parentY);
+ // Generates a transformation matrix usable to render marker content. Handles scaling the marker content
+ // acording to SVGs markerUnits="strokeWidth" concept, when a strokeWidth value != -1 is passed in.
+ TransformationMatrix markerContentTransformation(const TransformationMatrix& contentTransformation, const FloatPoint& origin, float strokeWidth = -1) const;
private:
virtual bool isSVGContainer() const { return true; }
virtual const char* renderName() const { return "RenderSVGViewportContainer"; }
- virtual TransformationMatrix localToParentTransform() const;
+ TransformationMatrix viewportTransform() const;
+ virtual const TransformationMatrix& localToParentTransform() const;
// FIXME: This override should be removed once callers of RenderBox::absoluteTransform() can be removed.
virtual TransformationMatrix absoluteTransform() const;
@@ -55,6 +57,7 @@ private:
virtual bool pointIsInsideViewportClip(const FloatPoint& pointInParent);
FloatRect m_viewport;
+ mutable TransformationMatrix m_localToParentTransform;
};
inline RenderSVGViewportContainer* toRenderSVGViewportContainer(RenderObject* object)
@@ -70,5 +73,3 @@ void toRenderSVGViewportContainer(const RenderSVGViewportContainer*);
#endif // ENABLE(SVG)
#endif // RenderSVGViewportContainer_h
-
-// vim:ts=4:noet