aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar Eric Karl <ericrk@chromium.org>2017-03-31 09:38:52 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-01 01:22:45 +0000
commitd58f040532f2f5a63d24bd17d7c588e52c0b99c3 (patch)
treee38f39fd56e11da5be3d4ede931bb1e29c591f20 /include
parentc8c176025c4fb610007c9705e37439c38b3aff5d (diff)
Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup
Crurently, when preparing a texture for blitFramebuffer, we ignore the kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to copy from one src rect to a different dst rect. This change updates initDescForDstCopy and setupDstTexture to allocate larger textures if necessary and accomodate this flags requirements. Bug: 658277 Change-Id: I9f45a03d4055e0ad87c01e1d826287695096e609 Reviewed-on: https://skia-review.googlesource.com/10941 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'include')
-rw-r--r--include/gpu/GrCaps.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/gpu/GrCaps.h b/include/gpu/GrCaps.h
index 239d4a4ea9..a7096e3fd9 100644
--- a/include/gpu/GrCaps.h
+++ b/include/gpu/GrCaps.h
@@ -189,9 +189,12 @@ public:
* This is can be called before allocating a texture to be a dst for copySurface. This is only
* used for doing dst copies needed in blends, thus the src is always a GrRenderTarget. It will
* populate the origin, config, and flags fields of the desc such that copySurface can
- * efficiently succeed.
+ * efficiently succeed. rectsMustMatch will be set to true if the copy operation must ensure
+ * that the src and dest rects are identical. disallowSubrect will be set to true if copy rect
+ * must equal src's bounds.
*/
- virtual bool initDescForDstCopy(const GrRenderTarget* src, GrSurfaceDesc* desc) const = 0;
+ virtual bool initDescForDstCopy(const GrRenderTarget* src, GrSurfaceDesc* desc,
+ bool* rectsMustMatch, bool* disallowSubrect) const = 0;
protected:
/** Subclasses must call this at the end of their constructors in order to apply caps