summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2016-07-17 15:08:51 +0200
committerUli Schlachter <psychon@znc.in>2016-11-27 17:32:07 +0100
commitf75075eef91c42aa38e24e03f93cd1d598b0ee5f (patch)
treed9a669dbc06ab00631412adf01c1e07da8871509
parent42a743cfcb5344f804a2d3be885bdc63f72df5dd (diff)
cairo-xcb: Remove a wrong optimisation
When doing a "complicated" mask operation, we draw the clip to a surface and use this as a mask in later operations. The code assumes that this operation draws to the whole target surface and thus a deferred clear may be skipped. However, this requires that the extents of the trapezoids that will be drawn and the extents of the surface are the same. This assumption is wrong, as can be seen e.g. by the bug report that this commit fixes. The fix is just not to skip the deferred clear. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=84330 Signed-off-by: Uli Schlachter <psychon@znc.in>
-rw-r--r--src/cairo-xcb-surface-render.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c
index 044339bce..139dcda82 100644
--- a/src/cairo-xcb-surface-render.c
+++ b/src/cairo-xcb-surface-render.c
@@ -3399,8 +3399,6 @@ _composite_mask_clip (void *closure,
}
}
- dst->deferred_clear = FALSE; /* assert(trap extents == extents); */
-
status = _composite_traps (&info,
dst, CAIRO_OPERATOR_SOURCE, mask_pattern,
dst_x, dst_y,