From bd73ffb83022f1f6b1997e2a91c049949e88a8a2 Mon Sep 17 00:00:00 2001 From: reed Date: Thu, 10 Mar 2016 12:45:18 -0800 Subject: add Make variations to return SkImage by sk_sp some internal call-sites update, but not. Will follow-up in future to complete that. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1778393002 Review URL: https://codereview.chromium.org/1778393002 --- src/image/SkImage_Gpu.cpp | 64 ++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 31 deletions(-) (limited to 'src/image/SkImage_Gpu.cpp') diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp index b87e50ba0a..6494fd1a17 100644 --- a/src/image/SkImage_Gpu.cpp +++ b/src/image/SkImage_Gpu.cpp @@ -134,7 +134,7 @@ bool SkImage_Gpu::onReadPixels(const SkImageInfo& info, void* pixels, size_t row return true; } -SkImage* SkImage_Gpu::onNewSubset(const SkIRect& subset) const { +sk_sp SkImage_Gpu::onMakeSubset(const SkIRect& subset) const { GrContext* ctx = fTexture->getContext(); GrSurfaceDesc desc = fTexture->desc(); desc.fWidth = subset.width(); @@ -145,16 +145,16 @@ SkImage* SkImage_Gpu::onNewSubset(const SkIRect& subset) const { return nullptr; } ctx->copySurface(subTx, fTexture, subset, SkIPoint::Make(0, 0)); - return new SkImage_Gpu(desc.fWidth, desc.fHeight, kNeedNewImageUniqueID, fAlphaType, subTx, - fBudgeted); + return sk_make_sp(desc.fWidth, desc.fHeight, kNeedNewImageUniqueID, + fAlphaType, subTx, fBudgeted); } /////////////////////////////////////////////////////////////////////////////////////////////////// -static SkImage* new_wrapped_texture_common(GrContext* ctx, const GrBackendTextureDesc& desc, - SkAlphaType at, GrWrapOwnership ownership, - SkImage::TextureReleaseProc releaseProc, - SkImage::ReleaseContext releaseCtx) { +static sk_sp new_wrapped_texture_common(GrContext* ctx, const GrBackendTextureDesc& desc, + SkAlphaType at, GrWrapOwnership ownership, + SkImage::TextureReleaseProc releaseProc, + SkImage::ReleaseContext releaseCtx) { if (desc.fWidth <= 0 || desc.fHeight <= 0) { return nullptr; } @@ -167,21 +167,23 @@ static SkImage* new_wrapped_texture_common(GrContext* ctx, const GrBackendTextur } const SkBudgeted budgeted = SkBudgeted::kNo; - return new SkImage_Gpu(desc.fWidth, desc.fHeight, kNeedNewImageUniqueID, at, tex, budgeted); + return sk_make_sp(desc.fWidth, desc.fHeight, kNeedNewImageUniqueID, + at, tex, budgeted); } -SkImage* SkImage::NewFromTexture(GrContext* ctx, const GrBackendTextureDesc& desc, SkAlphaType at, - TextureReleaseProc releaseP, ReleaseContext releaseC) { +sk_sp SkImage::MakeFromTexture(GrContext* ctx, const GrBackendTextureDesc& desc, + SkAlphaType at, TextureReleaseProc releaseP, + ReleaseContext releaseC) { return new_wrapped_texture_common(ctx, desc, at, kBorrow_GrWrapOwnership, releaseP, releaseC); } -SkImage* SkImage::NewFromAdoptedTexture(GrContext* ctx, const GrBackendTextureDesc& desc, - SkAlphaType at) { +sk_sp SkImage::MakeFromAdoptedTexture(GrContext* ctx, const GrBackendTextureDesc& desc, + SkAlphaType at) { return new_wrapped_texture_common(ctx, desc, at, kAdopt_GrWrapOwnership, nullptr, nullptr); } -SkImage* SkImage::NewFromTextureCopy(GrContext* ctx, const GrBackendTextureDesc& desc, - SkAlphaType at) { +sk_sp SkImage::MakeFromTextureCopy(GrContext* ctx, const GrBackendTextureDesc& desc, + SkAlphaType at) { if (desc.fWidth <= 0 || desc.fHeight <= 0) { return nullptr; } @@ -197,14 +199,14 @@ SkImage* SkImage::NewFromTextureCopy(GrContext* ctx, const GrBackendTextureDesc& return nullptr; } - return new SkImage_Gpu(desc.fWidth, desc.fHeight, kNeedNewImageUniqueID, at, dst, - SkBudgeted::kYes); + return sk_make_sp(desc.fWidth, desc.fHeight, kNeedNewImageUniqueID, at, dst, + SkBudgeted::kYes); } -SkImage* SkImage::NewFromYUVTexturesCopy(GrContext* ctx , SkYUVColorSpace colorSpace, - const GrBackendObject yuvTextureHandles[3], - const SkISize yuvSizes[3], - GrSurfaceOrigin origin) { +sk_sp SkImage::MakeFromYUVTexturesCopy(GrContext* ctx , SkYUVColorSpace colorSpace, + const GrBackendObject yuvTextureHandles[3], + const SkISize yuvSizes[3], + GrSurfaceOrigin origin) { const SkBudgeted budgeted = SkBudgeted::kYes; if (yuvSizes[0].fWidth <= 0 || yuvSizes[0].fHeight <= 0 || @@ -275,25 +277,25 @@ SkImage* SkImage::NewFromYUVTexturesCopy(GrContext* ctx , SkYUVColorSpace colorS drawContext->drawRect(GrClip::WideOpen(), paint, SkMatrix::I(), rect); ctx->flushSurfaceWrites(dst); - return new SkImage_Gpu(dstDesc.fWidth, dstDesc.fHeight, kNeedNewImageUniqueID, - kOpaque_SkAlphaType, dst, budgeted); + return sk_make_sp(dstDesc.fWidth, dstDesc.fHeight, kNeedNewImageUniqueID, + kOpaque_SkAlphaType, dst, budgeted); } -static SkImage* create_image_from_maker(GrTextureMaker* maker, SkAlphaType at, uint32_t id) { +static sk_sp create_image_from_maker(GrTextureMaker* maker, SkAlphaType at, uint32_t id) { SkAutoTUnref texture(maker->refTextureForParams(GrTextureParams::ClampNoFilter())); if (!texture) { return nullptr; } - return new SkImage_Gpu(texture->width(), texture->height(), id, at, texture, - SkBudgeted::kNo); + return sk_make_sp(texture->width(), texture->height(), id, at, texture, + SkBudgeted::kNo); } -SkImage* SkImage::newTextureImage(GrContext *context) const { +sk_sp SkImage::makeTextureImage(GrContext *context) const { if (!context) { return nullptr; } if (GrTexture* peek = as_IB(this)->peekTexture()) { - return peek->getContext() == context ? SkRef(const_cast(this)) : nullptr; + return peek->getContext() == context ? sk_ref_sp(const_cast(this)) : nullptr; } // No way to check whether a image is premul or not? SkAlphaType at = this->isOpaque() ? kOpaque_SkAlphaType : kPremul_SkAlphaType; @@ -310,8 +312,8 @@ SkImage* SkImage::newTextureImage(GrContext *context) const { return create_image_from_maker(&maker, at, this->uniqueID()); } -SkImage* SkImage::NewTextureFromPixmap(GrContext* ctx, const SkPixmap& pixmap, - SkBudgeted budgeted) { +sk_sp SkImage::MakeTextureFromPixmap(GrContext* ctx, const SkPixmap& pixmap, + SkBudgeted budgeted) { if (!ctx) { return nullptr; } @@ -319,8 +321,8 @@ SkImage* SkImage::NewTextureFromPixmap(GrContext* ctx, const SkPixmap& pixmap, if (!texture) { return nullptr; } - return new SkImage_Gpu(texture->width(), texture->height(), kNeedNewImageUniqueID, - pixmap.alphaType(), texture, budgeted); + return sk_make_sp(texture->width(), texture->height(), kNeedNewImageUniqueID, + pixmap.alphaType(), texture, budgeted); } /////////////////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3