Index: src/gpu/GrInOrderDrawBuffer.cpp |
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp |
index b671742309f862783f77b07a53b18795305f36cb..21a92499d8eb4dfae1d3c5e8c55b4ca66641a3d3 100644 |
--- a/src/gpu/GrInOrderDrawBuffer.cpp |
+++ b/src/gpu/GrInOrderDrawBuffer.cpp |
@@ -585,26 +585,30 @@ void GrInOrderDrawBuffer::CopySurface::execute(GrClipTarget* gpu) { |
gpu->copySurface(this->dst(), this->src(), fSrcRect, fDstPoint); |
} |
-bool GrInOrderDrawBuffer::onCopySurface(GrSurface* dst, |
- GrSurface* src, |
- const SkIRect& srcRect, |
- const SkIPoint& dstPoint) { |
+bool GrInOrderDrawBuffer::copySurface(GrSurface* dst, |
+ GrSurface* src, |
+ const SkIRect& srcRect, |
+ const SkIPoint& dstPoint) { |
if (fDstGpu->canCopySurface(dst, src, srcRect, dstPoint)) { |
CopySurface* cs = GrNEW_APPEND_TO_RECORDER(fCmdBuffer, CopySurface, (dst, src)); |
cs->fSrcRect = srcRect; |
cs->fDstPoint = dstPoint; |
this->recordTraceMarkersIfNecessary(); |
return true; |
+ } else if (GrDrawTarget::canCopySurface(dst, src, srcRect, dstPoint)) { |
+ GrDrawTarget::copySurface(dst, src, srcRect, dstPoint); |
+ return true; |
} else { |
return false; |
} |
} |
-bool GrInOrderDrawBuffer::onCanCopySurface(GrSurface* dst, |
- GrSurface* src, |
- const SkIRect& srcRect, |
- const SkIPoint& dstPoint) { |
- return fDstGpu->canCopySurface(dst, src, srcRect, dstPoint); |
+bool GrInOrderDrawBuffer::canCopySurface(GrSurface* dst, |
+ GrSurface* src, |
+ const SkIRect& srcRect, |
+ const SkIPoint& dstPoint) { |
+ return fDstGpu->canCopySurface(dst, src, srcRect, dstPoint) || |
+ GrDrawTarget::canCopySurface(dst, src, srcRect, dstPoint); |
} |
void GrInOrderDrawBuffer::initCopySurfaceDstDesc(const GrSurface* src, GrSurfaceDesc* desc) { |