diff options
author | robertphillips <robertphillips@google.com> | 2016-04-05 15:09:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-05 15:09:00 -0700 |
commit | ae8c933ca89315c1256bcf23749b5ee5cbc0d53c (patch) | |
tree | 2a6f8810f638f8ffb5c5c905d434dee933d3f60b /src/core | |
parent | 77304a5b76858acf9f1bbdabd1b2014c40b399ec (diff) |
Update SkMatrixImageFilter to sk_sp
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1858353002
Review URL: https://codereview.chromium.org/1858353002
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkImageFilter.cpp | 8 | ||||
-rw-r--r-- | src/core/SkMatrixImageFilter.cpp | 16 | ||||
-rw-r--r-- | src/core/SkMatrixImageFilter.h | 16 |
3 files changed, 25 insertions, 15 deletions
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index 11a2f74c70..0e0df3625f 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -573,10 +573,10 @@ bool SkImageFilter::asFragmentProcessor(GrFragmentProcessor**, GrTexture*, return false; } -SkImageFilter* SkImageFilter::CreateMatrixFilter(const SkMatrix& matrix, - SkFilterQuality filterQuality, - SkImageFilter* input) { - return SkMatrixImageFilter::Create(matrix, filterQuality, input); +sk_sp<SkImageFilter> SkImageFilter::MakeMatrixFilter(const SkMatrix& matrix, + SkFilterQuality filterQuality, + sk_sp<SkImageFilter> input) { + return SkMatrixImageFilter::Make(matrix, filterQuality, std::move(input)); } sk_sp<SkImageFilter> SkImageFilter::makeWithLocalMatrix(const SkMatrix& matrix) const { diff --git a/src/core/SkMatrixImageFilter.cpp b/src/core/SkMatrixImageFilter.cpp index 70bc81af43..6cd79f3f4a 100644 --- a/src/core/SkMatrixImageFilter.cpp +++ b/src/core/SkMatrixImageFilter.cpp @@ -16,16 +16,18 @@ SkMatrixImageFilter::SkMatrixImageFilter(const SkMatrix& transform, SkFilterQuality filterQuality, - SkImageFilter* input) - : INHERITED(1, &input) + sk_sp<SkImageFilter> input) + : INHERITED(&input, 1, nullptr) , fTransform(transform) , fFilterQuality(filterQuality) { } -SkMatrixImageFilter* SkMatrixImageFilter::Create(const SkMatrix& transform, - SkFilterQuality filterQuality, - SkImageFilter* input) { - return new SkMatrixImageFilter(transform, filterQuality, input); +sk_sp<SkImageFilter> SkMatrixImageFilter::Make(const SkMatrix& transform, + SkFilterQuality filterQuality, + sk_sp<SkImageFilter> input) { + return sk_sp<SkImageFilter>(new SkMatrixImageFilter(transform, + filterQuality, + std::move(input))); } sk_sp<SkFlattenable> SkMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { @@ -33,7 +35,7 @@ sk_sp<SkFlattenable> SkMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { SkMatrix matrix; buffer.readMatrix(&matrix); SkFilterQuality quality = static_cast<SkFilterQuality>(buffer.readInt()); - return sk_sp<SkImageFilter>(Create(matrix, quality, common.getInput(0).get())); + return Make(matrix, quality, common.getInput(0)); } void SkMatrixImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkMatrixImageFilter.h b/src/core/SkMatrixImageFilter.h index d7745668c4..e02541c12e 100644 --- a/src/core/SkMatrixImageFilter.h +++ b/src/core/SkMatrixImageFilter.h @@ -25,19 +25,27 @@ public: * passed to filterImage() is used instead. */ - static SkMatrixImageFilter* Create(const SkMatrix& transform, - SkFilterQuality filterQuality, - SkImageFilter* input = nullptr); + static sk_sp<SkImageFilter> Make(const SkMatrix& transform, + SkFilterQuality filterQuality, + sk_sp<SkImageFilter> input); SkRect computeFastBounds(const SkRect&) const override; SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMatrixImageFilter) +#ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR + static SkImageFilter* Create(const SkMatrix& transform, + SkFilterQuality filterQuality, + SkImageFilter* input = nullptr) { + return Make(transform, filterQuality, sk_ref_sp<SkImageFilter>(input)).release(); + } +#endif + protected: SkMatrixImageFilter(const SkMatrix& transform, SkFilterQuality, - SkImageFilter* input); + sk_sp<SkImageFilter> input); void flatten(SkWriteBuffer&) const override; sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&, |