summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2016-07-17 15:08:51 +0200
committerUli Schlachter <psychon@znc.in>2016-07-21 18:58:58 +0200
commit3f8241f48488d3da4afce6646e043ee70cf1cfd2 (patch)
treebc1087fcbd571936a71554e5ba2d2989d961860a
parent56ad58a8078c5818d85b9c93ea4e3bc94ea887c8 (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 64a3d5a77..a4969c957 100644
--- a/src/cairo-xcb-surface-render.c
+++ b/src/cairo-xcb-surface-render.c
@@ -3400,8 +3400,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,