On Mon Apr 6 06:19:23 2026 +0000, Conor McCarthy wrote:
I think this is already covered. `combine_regions_to_spans` calls `region_element_to_spans` on `left`, `right` or `both`, then `region_element_to_spans` calls `combine_regions_to_spans` if it encounters an intersect, and then `combine_regions_to_spans` once again begins by calling `bounds_intersect_region_element_rect`. Suppose our region looks like this:
- Intersect[A]
- Intersect[B]
- Rectangle[C] # graphics bounds
- Rectangle[D] # graphics clipping region
- Path[E] # what we're drawing
`combine_regions_to_spans` when called for [B] will use the optimized path to return a span array for the intersection of [C] and [D]. But, `combine_regions_to_spans` when called for [A] will have span lists for [B] and [E], which it must combine using a loop, even though it's easy to prove that [B] is a rectangle. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10359#note_135706