| Index: include/effects/SkOffsetImageFilter.h
|
| diff --git a/include/effects/SkOffsetImageFilter.h b/include/effects/SkOffsetImageFilter.h
|
| index 908f20b67a87f82a63af73ff5d8a114b26b34aba..cf2ff96ada5369f9f90c36c2d213225b2ae3a3fd 100644
|
| --- a/include/effects/SkOffsetImageFilter.h
|
| +++ b/include/effects/SkOffsetImageFilter.h
|
| @@ -13,12 +13,14 @@
|
|
|
| class SK_API SkOffsetImageFilter : public SkImageFilter {
|
| public:
|
| - static SkImageFilter* Create(SkScalar dx, SkScalar dy, SkImageFilter* input = NULL,
|
| - const CropRect* cropRect = NULL) {
|
| + static sk_sp<SkImageFilter> Make(SkScalar dx, SkScalar dy,
|
| + sk_sp<SkImageFilter> input,
|
| + const CropRect* cropRect = nullptr) {
|
| if (!SkScalarIsFinite(dx) || !SkScalarIsFinite(dy)) {
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| - return new SkOffsetImageFilter(dx, dy, input, cropRect);
|
| +
|
| + return sk_sp<SkImageFilter>(new SkOffsetImageFilter(dx, dy, std::move(input), cropRect));
|
| }
|
|
|
| SkRect computeFastBounds(const SkRect& src) const override;
|
| @@ -26,6 +28,13 @@ public:
|
| SK_TO_STRING_OVERRIDE()
|
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkOffsetImageFilter)
|
|
|
| +#ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR
|
| + static SkImageFilter* Create(SkScalar dx, SkScalar dy, SkImageFilter* input = nullptr,
|
| + const CropRect* cropRect = nullptr) {
|
| + return Make(dx, dy, sk_ref_sp(input), cropRect).release();
|
| + }
|
| +#endif
|
| +
|
| protected:
|
| void flatten(SkWriteBuffer&) const override;
|
| sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&,
|
| @@ -33,7 +42,7 @@ protected:
|
| SkIRect onFilterNodeBounds(const SkIRect&, const SkMatrix&, MapDirection) const override;
|
|
|
| private:
|
| - SkOffsetImageFilter(SkScalar dx, SkScalar dy, SkImageFilter* input, const CropRect*);
|
| + SkOffsetImageFilter(SkScalar dx, SkScalar dy, sk_sp<SkImageFilter> input, const CropRect*);
|
|
|
| SkVector fOffset;
|
|
|
|
|