diff options
author | Uli Schlachter <psychon@znc.in> | 2016-07-17 15:08:51 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2016-07-21 18:58:58 +0200 |
commit | 3f8241f48488d3da4afce6646e043ee70cf1cfd2 (patch) | |
tree | bc1087fcbd571936a71554e5ba2d2989d961860a | |
parent | 56ad58a8078c5818d85b9c93ea4e3bc94ea887c8 (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.c | 2 |
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, |