Index: include/effects/SkLayerRasterizer.h |
diff --git a/include/effects/SkLayerRasterizer.h b/include/effects/SkLayerRasterizer.h |
index be81a2ba3defd30f273788967bfb95481ec50d51..8096d784337d766a089c01b101cef3ac02bb12cd 100644 |
--- a/include/effects/SkLayerRasterizer.h |
+++ b/include/effects/SkLayerRasterizer.h |
@@ -21,6 +21,33 @@ public: |
SkLayerRasterizer(); |
virtual ~SkLayerRasterizer(); |
+ class SK_API Builder { |
+ public: |
+ Builder(); |
+ ~Builder(); |
+ |
+ void addLayer(const SkPaint& paint) { |
+ this->addLayer(paint, 0, 0); |
+ } |
+ |
+ /** |
+ * Add a new layer (above any previous layers) to the rasterizer. |
+ * The layer will extract those fields that affect the mask from |
+ * the specified paint, but will not retain a reference to the paint |
+ * object itself, so it may be reused without danger of side-effects. |
+ */ |
+ void addLayer(const SkPaint& paint, SkScalar dx, SkScalar dy); |
+ |
+ /** |
+ * Pass queue of layers on to newly created layer rasterizer and return it. The builder |
+ * cannot be used any more after calling this function. |
+ */ |
+ SkLayerRasterizer* detachRasterizer(); |
+ |
+ private: |
+ SkDeque* fLayers; |
+ }; |
+ |
void addLayer(const SkPaint& paint) { |
reed1
2014/02/24 13:35:40
Consider adding a build-guard here, to remind us t
Dominik Grewe
2014/02/24 13:54:34
Done.
|
this->addLayer(paint, 0, 0); |
} |
@@ -35,6 +62,7 @@ public: |
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLayerRasterizer) |
protected: |
+ SkLayerRasterizer(SkDeque* layers); |
SkLayerRasterizer(SkReadBuffer&); |
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; |
@@ -44,7 +72,7 @@ protected: |
SkMask* mask, SkMask::CreateMode mode) const; |
private: |
- SkDeque fLayers; |
+ SkDeque* fLayers; |
typedef SkRasterizer INHERITED; |
}; |