Chromium Code Reviews| Index: include/effects/SkXfermodeImageFilter.h |
| diff --git a/include/effects/SkXfermodeImageFilter.h b/include/effects/SkXfermodeImageFilter.h |
| index 6df7903fa4474127d4fa5f9cf6dec953a4ca7233..f1e5d71070a9537300dbe62d2ff40d23650b0a8b 100644 |
| --- a/include/effects/SkXfermodeImageFilter.h |
| +++ b/include/effects/SkXfermodeImageFilter.h |
| @@ -21,13 +21,19 @@ class SK_API SkXfermodeImageFilter : public SkImageFilter { |
| */ |
| public: |
| + static sk_sp<SkImageFilter> Make(sk_sp<SkXfermode> mode, SkImageFilter* background, |
|
dogben
2016/04/01 20:08:52
Shouldn't this accept background and foreground as
reed1
2016/04/02 14:26:56
Indeed. Subsequent changes will fix those. Since (
robertphillips
2016/04/03 18:26:46
Yep - I'm slowly churning my way through all the I
|
| + SkImageFilter* foreground, const CropRect* cropRect); |
| + static sk_sp<SkImageFilter> Make(sk_sp<SkXfermode> mode, SkImageFilter* background) { |
| + return Make(std::move(mode), background, nullptr, nullptr); |
| + } |
| +#ifdef SK_SUPPORT_LEGACY_XFERMODE_PTR |
| static SkImageFilter* Create(SkXfermode* mode, SkImageFilter* background, |
| SkImageFilter* foreground = NULL, |
| const CropRect* cropRect = NULL) { |
| - SkImageFilter* inputs[2] = { background, foreground }; |
| - return new SkXfermodeImageFilter(mode, inputs, cropRect); |
| + return Make(sk_ref_sp(mode), background, foreground, cropRect).release(); |
| } |
| - |
| +#endif |
| + |
| SK_TO_STRING_OVERRIDE() |
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkXfermodeImageFilter) |
| @@ -43,12 +49,12 @@ public: |
| #endif |
| protected: |
| - SkXfermodeImageFilter(SkXfermode* mode, SkImageFilter* inputs[2], |
| + SkXfermodeImageFilter(sk_sp<SkXfermode> mode, SkImageFilter* inputs[2], |
| const CropRect* cropRect); |
| void flatten(SkWriteBuffer&) const override; |
| private: |
| - SkAutoTUnref<SkXfermode> fMode; |
| + sk_sp<SkXfermode> fMode; |
| typedef SkImageFilter INHERITED; |
| }; |