On Tue Feb 25 20:20:12 2025 +0000, Stefan Brüns wrote:
I think the current implementation is only incorrect when the fill mode is D2D1_FILL_MODE_ALTERNATE (0) (aka Even-Odd), but correct for D2D1_FILL_MODE_WINDING (1). More specifically, when the fill mode is ALTERNATE *and* there are intersections - for all of the other three cases (WINDING with and without intersections, ALTERNATE without), it is correct. According to my experience, even-odd fill mode is quite uncommon. Having an implementation which is correct 99% of the time in real-world usage, and leaving the remainder with an explicit, verbose FIXME is an definitive improvement. Today, the result is always incorrect.
@d1saster - Maybe you could extend the test so all 4 cases (2 fill modes, intersecting/non-intersecting) are tested (marking the ALTERNATE-intersecting one as known-fail).