diff options
author | robertphillips <robertphillips@google.com> | 2016-04-01 09:28:51 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-01 09:28:51 -0700 |
commit | 549c8991959333e5c0f53faebcbbd5d6bc8f6a56 (patch) | |
tree | db498c61ef16f570f8c43b5c7bf462529134704a /include/effects/SkImageSource.h | |
parent | f27002947d40ab884e13d39ee2ef0ac4ccadcd6a (diff) |
Update SkImageSource to sk_sp
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842243002
Review URL: https://codereview.chromium.org/1842243002
Diffstat (limited to 'include/effects/SkImageSource.h')
-rw-r--r-- | include/effects/SkImageSource.h | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/include/effects/SkImageSource.h b/include/effects/SkImageSource.h index c18e2e57b5..0b4fecd776 100644 --- a/include/effects/SkImageSource.h +++ b/include/effects/SkImageSource.h @@ -13,17 +13,43 @@ class SK_API SkImageSource : public SkImageFilter { public: - static SkImageFilter* Create(SkImage*); - static SkImageFilter* Create(SkImage*, - const SkRect& srcRect, - const SkRect& dstRect, - SkFilterQuality); + static sk_sp<SkImageFilter> Make(sk_sp<SkImage> image) { + if (!image) { + return nullptr; + } + + return sk_sp<SkImageFilter>(new SkImageSource(std::move(image))); + } + static sk_sp<SkImageFilter> Make(sk_sp<SkImage> image, + const SkRect& srcRect, + const SkRect& dstRect, + SkFilterQuality filterQuality) { + if (!image) { + return nullptr; + } + + return sk_sp<SkImageFilter>(new SkImageSource(std::move(image), + srcRect, dstRect, + filterQuality)); + } SkRect computeFastBounds(const SkRect& src) const override; SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkImageSource) +#ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR + static SkImageFilter* Create(SkImage* image) { + return Make(sk_ref_sp<SkImage>(image)).release(); + } + static SkImageFilter* Create(SkImage* image, + const SkRect& srcRect, + const SkRect& dstRect, + SkFilterQuality filterQuality) { + return Make(sk_ref_sp<SkImage>(image), srcRect, dstRect, filterQuality).release(); + } +#endif + protected: void flatten(SkWriteBuffer&) const override; @@ -31,8 +57,8 @@ protected: SkIPoint* offset) const override; private: - explicit SkImageSource(SkImage*); - SkImageSource(SkImage*, + explicit SkImageSource(sk_sp<SkImage>); + SkImageSource(sk_sp<SkImage>, const SkRect& srcRect, const SkRect& dstRect, SkFilterQuality); |