diff options
author | robertphillips <robertphillips@google.com> | 2016-04-07 07:34:15 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-07 07:34:15 -0700 |
commit | 11171f3b66ba6aba561fcaafbc51eaa354b73353 (patch) | |
tree | 020973f14f0e9325ad763b4b1af4c9b99a09424d | |
parent | 32f7782706fbf692c613457a74d080e18e27b15a (diff) |
Update MagnifierImageFilter to sk_sp
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1864843002
Review URL: https://codereview.chromium.org/1864843002
-rw-r--r-- | bench/MagnifierBench.cpp | 4 | ||||
-rw-r--r-- | fuzz/FilterFuzz.cpp | 5 | ||||
-rw-r--r-- | gm/imagemagnifier.cpp | 4 | ||||
-rw-r--r-- | include/effects/SkMagnifierImageFilter.h | 11 | ||||
-rw-r--r-- | samplecode/SampleFilterFuzz.cpp | 5 | ||||
-rw-r--r-- | src/effects/SkMagnifierImageFilter.cpp | 14 |
6 files changed, 27 insertions, 16 deletions
diff --git a/bench/MagnifierBench.cpp b/bench/MagnifierBench.cpp index 61850597fa..98deade164 100644 --- a/bench/MagnifierBench.cpp +++ b/bench/MagnifierBench.cpp @@ -38,11 +38,11 @@ protected: const int h = fIsSmall ? FILTER_HEIGHT_SMALL : FILTER_HEIGHT_LARGE; SkPaint paint; paint.setImageFilter( - SkMagnifierImageFilter::Create( + SkMagnifierImageFilter::Make( SkRect::MakeXYWH(SkIntToScalar(w / 4), SkIntToScalar(h / 4), SkIntToScalar(w / 2), - SkIntToScalar(h / 2)), 100))->unref(); + SkIntToScalar(h / 2)), 100, nullptr)); for (int i = 0; i < loops; i++) { canvas->drawBitmap(fCheckerboard, 0, 0, &paint); diff --git a/fuzz/FilterFuzz.cpp b/fuzz/FilterFuzz.cpp index 12ae50dd71..ebb9de85c2 100644 --- a/fuzz/FilterFuzz.cpp +++ b/fuzz/FilterFuzz.cpp @@ -579,8 +579,9 @@ static sk_sp<SkImageFilter> make_image_filter(bool canBeNull) { make_image_filter()); break; case MAGNIFIER: - filter = sk_sp<SkImageFilter>(SkMagnifierImageFilter::Create(make_rect(), - make_scalar(true))); + filter = SkMagnifierImageFilter::Make(make_rect(), + make_scalar(true), + make_image_filter()); break; case DOWN_SAMPLE: filter = SkDownSampleImageFilter::Make(make_scalar(), make_image_filter()); diff --git a/gm/imagemagnifier.cpp b/gm/imagemagnifier.cpp index 73639813a3..5697aa2480 100644 --- a/gm/imagemagnifier.cpp +++ b/gm/imagemagnifier.cpp @@ -15,11 +15,11 @@ DEF_SIMPLE_GM_BG(imagemagnifier, canvas, WIDTH, HEIGHT, SK_ColorBLACK) { SkPaint filterPaint; filterPaint.setImageFilter( - SkMagnifierImageFilter::Create( + SkMagnifierImageFilter::Make( SkRect::MakeXYWH(SkIntToScalar(100), SkIntToScalar(100), SkIntToScalar(WIDTH / 2), SkIntToScalar(HEIGHT / 2)), - 100))->unref(); + 100, nullptr)); canvas->saveLayer(nullptr, &filterPaint); const char* str = "The quick brown fox jumped over the lazy dog."; SkRandom rand; diff --git a/include/effects/SkMagnifierImageFilter.h b/include/effects/SkMagnifierImageFilter.h index bea03adab3..739f1eec73 100644 --- a/include/effects/SkMagnifierImageFilter.h +++ b/include/effects/SkMagnifierImageFilter.h @@ -14,13 +14,20 @@ class SK_API SkMagnifierImageFilter : public SkImageFilter { public: - static SkImageFilter* Create(const SkRect& src, SkScalar inset, SkImageFilter* input = NULL); + static sk_sp<SkImageFilter> Make(const SkRect& src, SkScalar inset, sk_sp<SkImageFilter> input); SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMagnifierImageFilter) +#ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR + static SkImageFilter* Create(const SkRect& src, SkScalar inset, + SkImageFilter* input = nullptr) { + return Make(src, inset, sk_ref_sp<SkImageFilter>(input)).release(); + } +#endif + protected: - SkMagnifierImageFilter(const SkRect& srcRect, SkScalar inset, SkImageFilter* input); + SkMagnifierImageFilter(const SkRect& srcRect, SkScalar inset, sk_sp<SkImageFilter> input); void flatten(SkWriteBuffer&) const override; bool onFilterImageDeprecated(Proxy*, const SkBitmap& src, const Context&, diff --git a/samplecode/SampleFilterFuzz.cpp b/samplecode/SampleFilterFuzz.cpp index 8f83c3e465..a7f4163b27 100644 --- a/samplecode/SampleFilterFuzz.cpp +++ b/samplecode/SampleFilterFuzz.cpp @@ -582,8 +582,9 @@ static sk_sp<SkImageFilter> make_image_filter(bool canBeNull) { make_image_filter()); break; case MAGNIFIER: - filter = sk_sp<SkImageFilter>(SkMagnifierImageFilter::Create(make_rect(), - make_scalar(true))); + filter = SkMagnifierImageFilter::Make(make_rect(), + make_scalar(true), + make_image_filter()); break; case DOWN_SAMPLE: filter = SkDownSampleImageFilter::Make(make_scalar(), make_image_filter()); diff --git a/src/effects/SkMagnifierImageFilter.cpp b/src/effects/SkMagnifierImageFilter.cpp index dfd7f04f6a..616aaafcac 100644 --- a/src/effects/SkMagnifierImageFilter.cpp +++ b/src/effects/SkMagnifierImageFilter.cpp @@ -232,8 +232,8 @@ void GrMagnifierEffect::onComputeInvariantOutput(GrInvariantOutput* inout) const //////////////////////////////////////////////////////////////////////////////// -SkImageFilter* SkMagnifierImageFilter::Create(const SkRect& srcRect, SkScalar inset, - SkImageFilter* input) { +sk_sp<SkImageFilter> SkMagnifierImageFilter::Make(const SkRect& srcRect, SkScalar inset, + sk_sp<SkImageFilter> input) { if (!SkScalarIsFinite(inset) || !SkIsValidRect(srcRect)) { return nullptr; @@ -242,13 +242,15 @@ SkImageFilter* SkMagnifierImageFilter::Create(const SkRect& srcRect, SkScalar in if (srcRect.fLeft < 0 || srcRect.fTop < 0) { return nullptr; } - return new SkMagnifierImageFilter(srcRect, inset, input); + return sk_sp<SkImageFilter>(new SkMagnifierImageFilter(srcRect, inset, std::move(input))); } SkMagnifierImageFilter::SkMagnifierImageFilter(const SkRect& srcRect, SkScalar inset, - SkImageFilter* input) - : INHERITED(1, &input), fSrcRect(srcRect), fInset(inset) { + sk_sp<SkImageFilter> input) + : INHERITED(&input, 1, nullptr) + , fSrcRect(srcRect) + , fInset(inset) { SkASSERT(srcRect.x() >= 0 && srcRect.y() >= 0 && inset >= 0); } @@ -285,7 +287,7 @@ sk_sp<SkFlattenable> SkMagnifierImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); SkRect src; buffer.readRect(&src); - return sk_sp<SkFlattenable>(Create(src, buffer.readScalar(), common.getInput(0).get())); + return Make(src, buffer.readScalar(), common.getInput(0)); } void SkMagnifierImageFilter::flatten(SkWriteBuffer& buffer) const { |