Repository navigation
Union of many paths in one coverage pass (#28) - #29
Merged
Merged
Conversation
Shapes of one paint drawn one after another leave seams where they abut or overlap along antialiased edges (1 − (1 − a)(1 − b) instead of a + b). A Union collects fills, strokes and shapes, and Canvas.FillUnion sums their coverage in one accumulator and composites once. - Stroker outlines wind one way everywhere (documented on LineSink, tested over random strokes); elements winding the other way (mirrored non-hairline strokes, fills by their exact signed area) are reversed. - Strokes keep the analytic path: Rasterizer.addStrip sums the closed-form rows into the accumulator band by band, so the union does not fall back to walking outline edges. - Shapes contribute their recorded edges and strips, so banded unions stroke once per page. EvenOdd fills and dense dashes are drawn on their own. - Tests against the supersampled union (overlapping/abutting rectangles of both orientations, dense hatches), single-element equality, bands, concurrency, zero allocations. ADR 0006 records the design and numbers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014ndd7AKiqjKUpYoL1CoEmU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Shapes of one paint drawn one after another leave seams where they abut
or overlap along antialiased edges (1 − (1 − a)(1 − b) instead of a + b).
A Union collects fills, strokes and shapes, and Canvas.FillUnion sums
their coverage in one accumulator and composites once.
tested over random strokes); elements winding the other way (mirrored
non-hairline strokes, fills by their exact signed area) are reversed.
closed-form rows into the accumulator band by band, so the union does
not fall back to walking outline edges.
stroke once per page. EvenOdd fills and dense dashes are drawn on
their own.
of both orientations, dense hatches), single-element equality, bands,
concurrency, zero allocations. ADR 0006 records the design and numbers.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_014ndd7AKiqjKUpYoL1CoEmU