Chromium Code Reviews| 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; |
| }; |