[cairo] Bad bug when filling clipped area
cairouser at yahoo.com
Sat Apr 24 20:07:43 PDT 2010
More follow-up. It seems that the problem is triggered by the following
optimization in _clip_and_composite_boxes():
/* Use a fast path if the boxes are pixel aligned */
status = _composite_boxes (dst, op, src, boxes, antialias, clip, extents);
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
If the first box (in order of drawing) is pixel aligned, and the next
one is not - this fast path breaks, evidently somehow picking up the
wrong clip trapezoid (what looks like first trapezoid instead of the
second one, though I don't know enough to explain this properly). As a
quick and dirty solution disabling this fast path solves the issue, no
doubt at expense of performance.
It would be great if someone actually looked into this.
> Please see this attached code sample. When running it using cairo 1.9.6
> (built for MacOS), the clipped area fill is completely wrong. Changing
> the value X of filled squares can fix the issue, so this is somehow
> Having a fix for this would be great - as this issue manifests itself in
> a few cases and really breaks the output.
More information about the cairo