Index: Source/core/paint/SVGFilterPainter.h |
diff --git a/Source/core/paint/SVGFilterPainter.h b/Source/core/paint/SVGFilterPainter.h |
index 1d6768d714da552014f4c87b286507cf456b9299..94a968e5975f74410b6fa9fd414e5a3dbc0a1bbc 100644 |
--- a/Source/core/paint/SVGFilterPainter.h |
+++ b/Source/core/paint/SVGFilterPainter.h |
@@ -5,20 +5,39 @@ |
#ifndef SVGFilterPainter_h |
#define SVGFilterPainter_h |
+#include "platform/graphics/GraphicsContext.h" |
+#include "platform/graphics/paint/DisplayItemList.h" |
+#include "wtf/OwnPtr.h" |
+ |
namespace blink { |
-class GraphicsContext; |
+class FilterData; |
class LayoutObject; |
class LayoutSVGResourceFilter; |
+class SVGFilterRecordingContext { |
+public: |
+ explicit SVGFilterRecordingContext(GraphicsContext* initialContext) : m_initialContext(initialContext) { } |
+ |
+ GraphicsContext* beginContent(FilterData*); |
+ void endContent(FilterData*); |
+ |
+ GraphicsContext* paintingContext() const { return m_initialContext; } |
+ |
+private: |
+ OwnPtr<DisplayItemList> m_displayItemList; |
+ OwnPtr<GraphicsContext> m_context; |
+ GraphicsContext* m_initialContext; |
+}; |
+ |
class SVGFilterPainter { |
public: |
SVGFilterPainter(LayoutSVGResourceFilter& filter) : m_filter(filter) { } |
// Returns the context that should be used to paint the filter contents, or |
// null if the content should not be recorded. |
- GraphicsContext* prepareEffect(LayoutObject&, GraphicsContext*); |
- void finishEffect(LayoutObject&, GraphicsContext*); |
+ GraphicsContext* prepareEffect(LayoutObject&, SVGFilterRecordingContext&); |
+ void finishEffect(LayoutObject&, SVGFilterRecordingContext&); |
private: |
LayoutSVGResourceFilter& m_filter; |