aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2017-02-08 12:49:00 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-02-08 12:49:16 +0000
commit696b29346e85307a05af47768d358161eba3f6bd (patch)
tree2b488b37e0240e0176c539ad4efd4e25ca5bbd7d /src/core
parent9852dc027f77c20640796d6988b0efcd42aa0b73 (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.cpp2
-rw-r--r--src/core/SkSpecialImage.cpp33
-rw-r--r--src/core/SkSpecialImage.h9
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)