On Thu Oct 26 09:25:30 2023 +0000, Bartosz Kosiorek wrote:
Great work! Thanks. This is not 100% accurate with test from: https://github.com/madewokherd/mono/blob/develop/mcs/class/System.Drawing/Te... as in Mono test it is drawing single line (not rectangle). I suspect that it could be connected with Cap Endings. The rectangle will use Joints to draw rectangle (without Caps Endings). More information: https://learn.microsoft.com/en-us/windows/win32/gdiplus/-gdiplus-joining-lin... and https://learn.microsoft.com/en-us/windows/win32/gdiplus/-gdiplus-drawing-a-l...
@gang65 When `IsOutlineVisible` in mono calls `GdipIsOutlineVisiblePathPoint`, `GdipIsOutlineVisiblePathPoint` widens the line into this shape (as of the current code) which it passes to `GdipIsVisiblePathPoint`. I have tested that this matches the shape passed in from wine's `GdipIsOutlineVisiblePathPoint`, and it is _logically_ the correct shape to result from widening the line in the mono test with the pen in the mono test. Do you have evidence to the contrary with current wine code? I believe it is sufficiently accurate in the context, and it sufficiently demonstrates a bug which, if fixed, will result in fixing the mono test.
From looking at the mono test, the path has no joins (as it's a single line), and the pen has no caps, so I'm not sure what you're getting at there.
While you may be able to fix `GdipIsOutlineVisiblePathPoint` without fixing `GdipIsVisiblePathPoint`, as things stand now I believe that fixing `GdipIsVisiblePathPoint` will fix _both_ (and the mono test).