Chromium Code Reviews| Index: include/effects/SkLayerRasterizer.h |
| diff --git a/include/effects/SkLayerRasterizer.h b/include/effects/SkLayerRasterizer.h |
| index be81a2ba3defd30f273788967bfb95481ec50d51..efbf79ad13b8a58d11387a462e9174252673bff9 100644 |
| --- a/include/effects/SkLayerRasterizer.h |
| +++ b/include/effects/SkLayerRasterizer.h |
| @@ -18,9 +18,36 @@ class SkPaint; |
| class SK_API SkLayerRasterizer : public SkRasterizer { |
| 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; |
| + }; |
| + |
| +#ifdef SK_SUPPORT_LEGACY_LAYERRASTERIZER_API |
| void addLayer(const SkPaint& paint) { |
| this->addLayer(paint, 0, 0); |
| } |
| @@ -31,10 +58,12 @@ public: |
| object itself, so it may be reused without danger of side-effects. |
| */ |
| void addLayer(const SkPaint& paint, SkScalar dx, SkScalar dy); |
| +#endif |
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLayerRasterizer) |
| protected: |
| + SkLayerRasterizer(SkDeque* layers); |
| SkLayerRasterizer(SkReadBuffer&); |
| virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; |
| @@ -43,8 +72,13 @@ protected: |
| const SkIRect* clipBounds, |
| SkMask* mask, SkMask::CreateMode mode) const; |
| +#ifdef SK_SUPPORT_LEGACY_LAYERRASTERIZER_API |
| +public: |
| +#endif |
| + SkLayerRasterizer(); |
| + |
| private: |
| - SkDeque fLayers; |
| + SkDeque* fLayers; |
|
reed1
2014/02/24 13:59:48
question: can this be 'const' when we switch over
scroggo
2014/02/24 14:00:21
In the interest of immutability, should these be c
Dominik Grewe
2014/02/24 14:44:41
Yes, I've made them const behind the guard. That a
|
| typedef SkRasterizer INHERITED; |
| }; |