aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image/SkImage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/image/SkImage.cpp')
-rw-r--r--src/image/SkImage.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index fe6369ed35..6217f4ecda 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -169,14 +169,25 @@ sk_sp<SkImage> SkImage::makeSubset(const SkIRect& subset) const {
#if SK_SUPPORT_GPU
GrTexture* SkImage::getTexture() const {
- return as_IB(this)->onGetTexture();
+ return as_IB(this)->peekTexture();
}
-bool SkImage::isTextureBacked() const { return SkToBool(as_IB(this)->peekProxy()); }
+bool SkImage::isTextureBacked() const { return SkToBool(as_IB(this)->peekTexture()); }
GrBackendObject SkImage::getTextureHandle(bool flushPendingGrContextIO,
GrSurfaceOrigin* origin) const {
- return as_IB(this)->onGetTextureHandle(flushPendingGrContextIO, origin);
+ GrTexture* texture = as_IB(this)->peekTexture();
+ if (texture) {
+ GrContext* context = texture->getContext();
+ if (context && flushPendingGrContextIO) {
+ context->prepareSurfaceForExternalIO(texture);
+ }
+ if (origin) {
+ *origin = texture->origin();
+ }
+ return texture->getTextureHandle();
+ }
+ return 0;
}
#else