mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-01-05 12:40:22 +01:00
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>
This commit is contained in:
parent
56ad58a807
commit
3f8241f484
1 changed files with 0 additions and 2 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue