vello/piet-gpu
Elias Naur 29cfb8b63e eliminate inconsistent line intersections from path_coarse.comp
The finite precision of floating point computations can lead the coarse
renderer into inconsistent tile intersections, which implies impossible line
segments such as lines with gaps or double intersections. The winding number
algorithm is sensitive to these errors which show up as incorrectly filled
paths.

This change forces all intersections to be consistent.
First, the floating point top edge intersection test is removed; top edge intersections are
completely determined by left edge intersections.
Then, left edge intersections are inserted from the tile with the last top edge
intersection. The next top edge is then fixed to be the last tile with a left
edge intersection.

More details in the patch comments.

Fixes #23

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-12-01 18:35:29 +01:00
..
bin Continuing work on clips 2020-11-20 18:25:27 -08:00
shader eliminate inconsistent line intersections from path_coarse.comp 2020-12-01 18:35:29 +01:00
src Scratch buffer for clip stack 2020-11-22 18:14:09 -08:00
Cargo.toml Update dependencies 2020-11-14 08:25:43 -08:00
Ghostscript_Tiger.svg Fills 2020-05-01 19:42:20 -07:00