Index: src/gpu/GrGpu.h |
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h |
index e8d493930490c07dc28fdc2dc7093cc677fa51c6..f2ad10f41714c6faf9beb947eed234025b20677e 100644 |
--- a/src/gpu/GrGpu.h |
+++ b/src/gpu/GrGpu.h |
@@ -256,6 +256,16 @@ |
const GrPrimitiveProcessor&, |
const GrPipeline&, |
const GrBatchTracker&) const = 0; |
+ |
+ // Called to determine whether a copySurface call would succeed or not. Derived |
+ // classes must keep this consistent with their implementation of onCopySurface(). Fallbacks |
+ // to issuing a draw from the src to dst take place at the GrDrawTarget level and this function |
+ // should only return true if a faster copy path exists. The rect and point are pre-clipped. The |
+ // src rect and implied dst rect are guaranteed to be within the src/dst bounds and non-empty. |
+ virtual bool canCopySurface(const GrSurface* dst, |
+ const GrSurface* src, |
+ const SkIRect& srcRect, |
+ const SkIPoint& dstPoint) = 0; |
// Called to perform a surface to surface copy. Fallbacks to issuing a draw from the src to dst |
// take place at the GrDrawTarget level and this function implement faster copy paths. The rect |