diff options
author | 2016-03-09 14:47:34 -0800 | |
---|---|---|
committer | 2016-03-09 14:47:34 -0800 | |
commit | 5671c5b9124f17d33bc14b6d347cdc6fe5d19dc8 (patch) | |
tree | 534c601a0a5f7d45cfc69d65485dc086f621cd24 /src/image | |
parent | 6ceeebd37a43d879c120b6ba100ae1febdd67a18 (diff) |
SkImage now has makeShader to return sk_sp
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1785473002
Review URL: https://codereview.chromium.org/1785473002
Diffstat (limited to 'src/image')
-rw-r--r-- | src/image/SkImage.cpp | 12 | ||||
-rw-r--r-- | src/image/SkImageShader.cpp | 8 | ||||
-rw-r--r-- | src/image/SkImageShader.h | 3 |
3 files changed, 15 insertions, 8 deletions
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index 5e7cb07226..a41ac83d19 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -103,11 +103,17 @@ void SkImage::preroll(GrContext* ctx) const { /////////////////////////////////////////////////////////////////////////////////////////////////// -SkShader* SkImage::newShader(SkShader::TileMode tileX, - SkShader::TileMode tileY, +sk_sp<SkShader> SkImage::makeShader(SkShader::TileMode tileX, SkShader::TileMode tileY, + const SkMatrix* localMatrix) const { + return SkImageShader::Make(this, tileX, tileY, localMatrix); +} + +#ifdef SK_SUPPORT_LEGACY_CREATESHADER_PTR +SkShader* SkImage::newShader(SkShader::TileMode tileX, SkShader::TileMode tileY, const SkMatrix* localMatrix) const { - return SkImageShader::Create(this, tileX, tileY, localMatrix); + return this->makeShader(tileX, tileY, localMatrix).release(); } +#endif SkData* SkImage::encode(SkImageEncoder::Type type, int quality) const { SkBitmap bm; diff --git a/src/image/SkImageShader.cpp b/src/image/SkImageShader.cpp index b1bb3ab8f8..00c038ab88 100644 --- a/src/image/SkImageShader.cpp +++ b/src/image/SkImageShader.cpp @@ -28,7 +28,7 @@ SkFlattenable* SkImageShader::CreateProc(SkReadBuffer& buffer) { if (!img) { return nullptr; } - return new SkImageShader(img, tx, ty, &matrix); + return SkImageShader::Make(img, tx, ty, &matrix).release(); } void SkImageShader::flatten(SkWriteBuffer& buffer) const { @@ -51,12 +51,12 @@ SkShader::Context* SkImageShader::onCreateContext(const ContextRec& rec, void* s SkBitmapProvider(fImage), rec, storage); } -SkShader* SkImageShader::Create(const SkImage* image, TileMode tx, TileMode ty, - const SkMatrix* localMatrix) { +sk_sp<SkShader> SkImageShader::Make(const SkImage* image, TileMode tx, TileMode ty, + const SkMatrix* localMatrix) { if (!image) { return nullptr; } - return new SkImageShader(image, tx, ty, localMatrix); + return sk_sp<SkShader>(new SkImageShader(image, tx, ty, localMatrix)); } #ifndef SK_IGNORE_TO_STRING diff --git a/src/image/SkImageShader.h b/src/image/SkImageShader.h index 07b938d202..f466e618a0 100644 --- a/src/image/SkImageShader.h +++ b/src/image/SkImageShader.h @@ -13,7 +13,8 @@ class SkImageShader : public SkShader { public: - static SkShader* Create(const SkImage*, TileMode tx, TileMode ty, const SkMatrix* localMatrix); + static sk_sp<SkShader> Make(const SkImage*, TileMode tx, TileMode ty, + const SkMatrix* localMatrix); bool isOpaque() const override; |