Bartosz Kosiorek (@gang65) commented about dlls/gdiplus/region.c:
+ + scans = (RECT*)&(*rgndata)->Buffer; + + /* translate edges into scans based on winding mode */ + for (i=0; i < edges->length; i++) { - graphics->hdc = hdc = new_hdc = CreateCompatibleDC(0); - if (!new_hdc) - return OutOfMemory; + BOOL new_in_shape; + + winding_count += edges->edges[i].rising ? 1 : -1; + + /* check all edges at this point before starting/ending a scan */ + if (i + 1 < edges->length && + edges->edges[i+1].x == edges->edges[i].x && edges->edges[i+1].y == edges->edges[i].y) It would be great to use the same formatting in whole PR
edges->edges[i + 1].x == edges->edges[i].x && edges->edges[i + 1].y == edges->edges[i].y)
There are more places with inconsistent formatting. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7654#note_99045