aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-03-30 12:32:58 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-30 12:32:58 -0700
commit491fb17cab07574a9d5656c1c97ad0acc3af5c70 (patch)
tree7e6577620cf303677ba308a2590b4a1d1938d24e /include
parentd632bb4dfc184d7c523bb436940c182ed42551ea (diff)
Update SkComposeImageFilter to sk_sp
Diffstat (limited to 'include')
-rw-r--r--include/effects/SkComposeImageFilter.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/include/effects/SkComposeImageFilter.h b/include/effects/SkComposeImageFilter.h
index cf73a001c8..49c7685415 100644
--- a/include/effects/SkComposeImageFilter.h
+++ b/include/effects/SkComposeImageFilter.h
@@ -12,25 +12,32 @@
class SK_API SkComposeImageFilter : public SkImageFilter {
public:
- static SkImageFilter* Create(SkImageFilter* outer, SkImageFilter* inner) {
+ static sk_sp<SkImageFilter> Make(sk_sp<SkImageFilter> outer, sk_sp<SkImageFilter> inner) {
if (!outer) {
- return SkSafeRef(inner);
+ return inner;
}
if (!inner) {
- return SkRef(outer);
+ return outer;
}
- SkImageFilter* inputs[2] = { outer, inner };
- return new SkComposeImageFilter(inputs);
+ sk_sp<SkImageFilter> inputs[2] = { std::move(outer), std::move(inner) };
+ return sk_sp<SkImageFilter>(new SkComposeImageFilter(inputs));
}
SkRect computeFastBounds(const SkRect& src) const override;
SK_TO_STRING_OVERRIDE()
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
+#ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR
+ static SkImageFilter* Create(SkImageFilter* outer, SkImageFilter* inner) {
+ return Make(sk_ref_sp<SkImageFilter>(outer),
+ sk_ref_sp<SkImageFilter>(inner)).release();
+ }
+#endif
+
protected:
- explicit SkComposeImageFilter(SkImageFilter* inputs[2]) : INHERITED(2, inputs) {
- SkASSERT(inputs[0]);
- SkASSERT(inputs[1]);
+ explicit SkComposeImageFilter(sk_sp<SkImageFilter> inputs[2]) : INHERITED(inputs, 2, nullptr) {
+ SkASSERT(inputs[0].get());
+ SkASSERT(inputs[1].get());
}
sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&,
SkIPoint* offset) const override;