aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/effects/SkImageSource.h
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-04-01 09:28:51 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-01 09:28:51 -0700
commit549c8991959333e5c0f53faebcbbd5d6bc8f6a56 (patch)
treedb498c61ef16f570f8c43b5c7bf462529134704a /include/effects/SkImageSource.h
parentf27002947d40ab884e13d39ee2ef0ac4ccadcd6a (diff)
Update SkImageSource to sk_sp
Diffstat (limited to 'include/effects/SkImageSource.h')
-rw-r--r--include/effects/SkImageSource.h40
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);