#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
-namespace WebCore {
+namespace blink {
-class Document;
class RenderObject;
class RenderSVGResourceClipper;
class RenderSVGResourceContainer;
class RenderSVGResourceFilter;
class RenderSVGResourceMarker;
class RenderSVGResourceMasker;
+class RenderSVGResourcePaintServer;
+class SVGElement;
class SVGRenderStyle;
// Holds a set of resources associated with a RenderObject
public:
SVGResources();
- static PassOwnPtr<SVGResources> buildResources(const RenderObject*, const SVGRenderStyle*);
+ static PassOwnPtr<SVGResources> buildResources(const RenderObject*, const SVGRenderStyle&);
void layoutIfNeeded();
+ static bool supportsMarkers(const SVGElement&);
+
// Ordinary resources
RenderSVGResourceClipper* clipper() const { return m_clipperFilterMaskerData ? m_clipperFilterMaskerData->clipper : 0; }
RenderSVGResourceMarker* markerStart() const { return m_markerData ? m_markerData->markerStart : 0; }
}
// Paint servers
- RenderSVGResourceContainer* fill() const { return m_fillStrokeData ? m_fillStrokeData->fill : 0; }
- RenderSVGResourceContainer* stroke() const { return m_fillStrokeData ? m_fillStrokeData->stroke : 0; }
+ RenderSVGResourcePaintServer* fill() const { return m_fillStrokeData ? m_fillStrokeData->fill : 0; }
+ RenderSVGResourcePaintServer* stroke() const { return m_fillStrokeData ? m_fillStrokeData->stroke : 0; }
// Chainable resources - linked through xlink:href
RenderSVGResourceContainer* linkedResource() const { return m_linkedResource; }
bool setMarkerMid(RenderSVGResourceMarker*);
bool setMarkerEnd(RenderSVGResourceMarker*);
bool setMasker(RenderSVGResourceMasker*);
- bool setFill(RenderSVGResourceContainer*);
- bool setStroke(RenderSVGResourceContainer*);
+ bool setFill(RenderSVGResourcePaintServer*);
+ bool setStroke(RenderSVGResourcePaintServer*);
bool setLinkedResource(RenderSVGResourceContainer*);
// From SVG 1.1 2nd Edition
// From SVG 1.1 2nd Edition
// fill: 'shapes' and 'text content elements'
// stroke: 'shapes' and 'text content elements'
- // -> altGlyph, circle, ellipse, line, path, polygon, polyline, rect, text, textPath, tspan
+ // -> circle, ellipse, line, path, polygon, polyline, rect, text, textPath, tspan
struct FillStrokeData {
WTF_MAKE_FAST_ALLOCATED;
public:
return adoptPtr(new FillStrokeData);
}
- RenderSVGResourceContainer* fill;
- RenderSVGResourceContainer* stroke;
+ RenderSVGResourcePaintServer* fill;
+ RenderSVGResourcePaintServer* stroke;
};
OwnPtr<ClipperFilterMaskerData> m_clipperFilterMaskerData;