diff options
author | 2017-02-08 12:49:00 +0000 | |
---|---|---|
committer | 2017-02-08 12:49:16 +0000 | |
commit | 696b29346e85307a05af47768d358161eba3f6bd (patch) | |
tree | 2b488b37e0240e0176c539ad4efd4e25ca5bbd7d /src/core | |
parent | 9852dc027f77c20640796d6988b0efcd42aa0b73 (diff) |
Revert "Remove asTextureRef from SkSpecialImage & update effects accordingly"
This reverts commit e88cf6b7aa5deaeaa9dab18ada7d9d11e1e4be12.
Reason for revert: See if breaking DEPS roll
Original change's description:
> Remove asTextureRef from SkSpecialImage & update effects accordingly
>
> This CL also renames SkSpecialImage::asTextureProxy to asTextureProxyRef
>
> Change-Id: I5ed8e475bb9688453b825ae4500ed0e8d324b5ac
> Reviewed-on: https://skia-review.googlesource.com/7995
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
>
TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I227cbd5fcaf7e2f86e858331d9ec7ff7a5f203ca
Reviewed-on: https://skia-review.googlesource.com/8184
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkBlurImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/core/SkSpecialImage.cpp | 33 | ||||
-rw-r--r-- | src/core/SkSpecialImage.h | 9 |
3 files changed, 36 insertions, 8 deletions
diff --git a/src/core/SkBlurImageFilter.cpp b/src/core/SkBlurImageFilter.cpp index 462edb545a..71b5cdc82e 100644 --- a/src/core/SkBlurImageFilter.cpp +++ b/src/core/SkBlurImageFilter.cpp @@ -141,7 +141,7 @@ sk_sp<SkSpecialImage> SkBlurImageFilterImpl::onFilterImage(SkSpecialImage* sourc // xform during the filter itself. input = ImageToColorSpace(input.get(), ctx.outputProperties()); - sk_sp<GrTextureProxy> inputTexture(input->asTextureProxyRef(context)); + sk_sp<GrTextureProxy> inputTexture(input->asTextureProxy(context)); if (!inputTexture) { return nullptr; } diff --git a/src/core/SkSpecialImage.cpp b/src/core/SkSpecialImage.cpp index b1791c99c2..0ec5459127 100644 --- a/src/core/SkSpecialImage.cpp +++ b/src/core/SkSpecialImage.cpp @@ -50,7 +50,8 @@ public: virtual SkColorSpace* onGetColorSpace() const = 0; #if SK_SUPPORT_GPU - virtual sk_sp<GrTextureProxy> onAsTextureProxyRef(GrContext* context) const = 0; + virtual sk_sp<GrTexture> onAsTextureRef(GrContext* context) const = 0; + virtual sk_sp<GrTextureProxy> onAsTextureProxy(GrContext* context) const = 0; #endif virtual sk_sp<SkSpecialImage> onMakeSubset(const SkIRect& subset) const = 0; @@ -138,8 +139,12 @@ SkColorSpace* SkSpecialImage::getColorSpace() const { } #if SK_SUPPORT_GPU -sk_sp<GrTextureProxy> SkSpecialImage::asTextureProxyRef(GrContext* context) const { - return as_SIB(this)->onAsTextureProxyRef(context); +sk_sp<GrTexture> SkSpecialImage::asTextureRef(GrContext* context) const { + return as_SIB(this)->onAsTextureRef(context); +} + +sk_sp<GrTextureProxy> SkSpecialImage::asTextureProxy(GrContext* context) const { + return as_SIB(this)->onAsTextureProxy(context); } #endif @@ -237,7 +242,16 @@ public: } #if SK_SUPPORT_GPU - sk_sp<GrTextureProxy> onAsTextureProxyRef(GrContext* context) const override { + sk_sp<GrTexture> onAsTextureRef(GrContext* context) const override { + if (context) { + return sk_ref_sp(GrRefCachedBitmapTexture(context, fBitmap, + GrSamplerParams::ClampNoFilter(), nullptr)); + } + + return nullptr; + } + + sk_sp<GrTextureProxy> onAsTextureProxy(GrContext* context) const override { if (context) { sk_sp<GrTexture> tex(sk_ref_sp(GrRefCachedBitmapTexture( context, fBitmap, GrSamplerParams::ClampNoFilter(), nullptr))); @@ -414,7 +428,16 @@ public: GrContext* onGetContext() const override { return fContext; } - sk_sp<GrTextureProxy> onAsTextureProxyRef(GrContext*) const override { + // This entry point should go away in favor of asTextureProxy + sk_sp<GrTexture> onAsTextureRef(GrContext* context) const override { + GrSurface* surf = fSurfaceProxy->instantiate(context->textureProvider()); + if (!surf) { + return nullptr; + } + return sk_ref_sp(surf->asTexture()); + } + + sk_sp<GrTextureProxy> onAsTextureProxy(GrContext*) const override { return sk_ref_sp(fSurfaceProxy->asTextureProxy()); } diff --git a/src/core/SkSpecialImage.h b/src/core/SkSpecialImage.h index 8ccff0e056..bf168f02af 100644 --- a/src/core/SkSpecialImage.h +++ b/src/core/SkSpecialImage.h @@ -136,10 +136,15 @@ public: #if SK_SUPPORT_GPU /** - * Regardless of the underlying backing store, return the contents as a GrTextureProxy. + * Regardless of the underlying backing store, return the contents as a GrTexture. * The active portion of the texture can be retrieved via 'subset'. */ - sk_sp<GrTextureProxy> asTextureProxyRef(GrContext*) const; + sk_sp<GrTexture> asTextureRef(GrContext*) const; + + /** + * The same as above but return the contents as a GrTextureProxy. + */ + sk_sp<GrTextureProxy> asTextureProxy(GrContext*) const; #endif // TODO: hide this whe the imagefilter all have a consistent draw path (see skbug.com/5063) |