| Index: include/effects/SkLayerRasterizer.h
|
| diff --git a/include/effects/SkLayerRasterizer.h b/include/effects/SkLayerRasterizer.h
|
| index be81a2ba3defd30f273788967bfb95481ec50d51..fdfb179cb6bab604188c2f20b12f74697e29b757 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,19 @@ protected:
|
| const SkIRect* clipBounds,
|
| SkMask* mask, SkMask::CreateMode mode) const;
|
|
|
| +#ifdef SK_SUPPORT_LEGACY_LAYERRASTERIZER_API
|
| +public:
|
| +#endif
|
| + SkLayerRasterizer();
|
| +
|
| private:
|
| - SkDeque fLayers;
|
| +#ifdef SK_SUPPORT_LEGACY_LAYERRASTERIZER_API
|
| + SkDeque* fLayers;
|
| +#else
|
| + const SkDeque* const fLayers;
|
| +#endif
|
| +
|
| + static SkDeque* ReadLayers(SkReadBuffer& buffer);
|
|
|
| typedef SkRasterizer INHERITED;
|
| };
|
|
|