| Index: include/effects/SkMorphologyImageFilter.h
|
| diff --git a/include/effects/SkMorphologyImageFilter.h b/include/effects/SkMorphologyImageFilter.h
|
| index 4e699a7633eaa9b924b32e675ef86e1dfdb2b14a..27608ecd07f8d727e0e91a81400312b7af75a508 100644
|
| --- a/include/effects/SkMorphologyImageFilter.h
|
| +++ b/include/effects/SkMorphologyImageFilter.h
|
| @@ -36,7 +36,8 @@ protected:
|
|
|
| virtual Op op() const = 0;
|
|
|
| - SkMorphologyImageFilter(int radiusX, int radiusY, SkImageFilter* input,
|
| + SkMorphologyImageFilter(int radiusX, int radiusY,
|
| + sk_sp<SkImageFilter> input,
|
| const CropRect* cropRect);
|
| sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source,
|
| const Context&,
|
| @@ -54,23 +55,37 @@ private:
|
| ///////////////////////////////////////////////////////////////////////////////
|
| class SK_API SkDilateImageFilter : public SkMorphologyImageFilter {
|
| public:
|
| - static SkImageFilter* Create(int radiusX, int radiusY,
|
| - SkImageFilter* input = nullptr,
|
| - const CropRect* cropRect = nullptr) {
|
| + static sk_sp<SkImageFilter> Make(int radiusX, int radiusY,
|
| + sk_sp<SkImageFilter> input,
|
| + const CropRect* cropRect = nullptr) {
|
| if (radiusX < 0 || radiusY < 0) {
|
| return nullptr;
|
| }
|
| - return new SkDilateImageFilter(radiusX, radiusY, input, cropRect);
|
| + return sk_sp<SkImageFilter>(new SkDilateImageFilter(radiusX, radiusY,
|
| + std::move(input),
|
| + cropRect));
|
| }
|
|
|
| SK_TO_STRING_OVERRIDE()
|
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDilateImageFilter)
|
|
|
| +#ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR
|
| + static SkImageFilter* Create(int radiusX, int radiusY,
|
| + SkImageFilter* input = nullptr,
|
| + const CropRect* cropRect = nullptr) {
|
| + return Make(radiusX, radiusY,
|
| + sk_ref_sp<SkImageFilter>(input),
|
| + cropRect).release();
|
| + }
|
| +#endif
|
| +
|
| protected:
|
| Op op() const override { return kDilate_Op; }
|
|
|
| private:
|
| - SkDilateImageFilter(int radiusX, int radiusY, SkImageFilter* input, const CropRect* cropRect)
|
| + SkDilateImageFilter(int radiusX, int radiusY,
|
| + sk_sp<SkImageFilter> input,
|
| + const CropRect* cropRect)
|
| : INHERITED(radiusX, radiusY, input, cropRect) {}
|
|
|
| typedef SkMorphologyImageFilter INHERITED;
|
| @@ -79,23 +94,36 @@ private:
|
| ///////////////////////////////////////////////////////////////////////////////
|
| class SK_API SkErodeImageFilter : public SkMorphologyImageFilter {
|
| public:
|
| - static SkImageFilter* Create(int radiusX, int radiusY,
|
| - SkImageFilter* input = nullptr,
|
| - const CropRect* cropRect = nullptr) {
|
| + static sk_sp<SkImageFilter> Make(int radiusX, int radiusY,
|
| + sk_sp<SkImageFilter> input,
|
| + const CropRect* cropRect = nullptr) {
|
| if (radiusX < 0 || radiusY < 0) {
|
| return nullptr;
|
| }
|
| - return new SkErodeImageFilter(radiusX, radiusY, input, cropRect);
|
| + return sk_sp<SkImageFilter>(new SkErodeImageFilter(radiusX, radiusY,
|
| + std::move(input),
|
| + cropRect));
|
| }
|
|
|
| SK_TO_STRING_OVERRIDE()
|
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkErodeImageFilter)
|
|
|
| +#ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR
|
| + static SkImageFilter* Create(int radiusX, int radiusY,
|
| + SkImageFilter* input = nullptr,
|
| + const CropRect* cropRect = nullptr) {
|
| + return Make(radiusX, radiusY,
|
| + sk_ref_sp<SkImageFilter>(input),
|
| + cropRect).release();
|
| + }
|
| +#endif
|
| +
|
| protected:
|
| Op op() const override { return kErode_Op; }
|
|
|
| private:
|
| - SkErodeImageFilter(int radiusX, int radiusY, SkImageFilter* input, const CropRect* cropRect)
|
| + SkErodeImageFilter(int radiusX, int radiusY,
|
| + sk_sp<SkImageFilter> input, const CropRect* cropRect)
|
| : INHERITED(radiusX, radiusY, input, cropRect) {}
|
|
|
| typedef SkMorphologyImageFilter INHERITED;
|
|
|