https://bugs.winehq.org/show_bug.cgi?id=57306
--- Comment #70 from Fabian Maurer dark.shadow4@web.de ---
If pt.x is 0, then either width or height is 0, so there's nothing to draw, so we shouldn't be in this function in the first place.
I'm not so sure about that. The test sample I linked draws a tiny circle, but scaling this up, it seems to be a rect with just one pixel missing in the corners.
As such, a proposition - let's cut this shit at the earliest opportunity:
in draw_arc right after width and height are calculated, let's just add
We're not in draw_arc there.
Unless this code is actually do anything when the passed rectangle has 0 width/height, that seems a sane solution, doesn't it ?
...or perhaps call dibdrv_LineTo, if that's what's supposed to happen in the degenerate case...
I think drawing a rectangle is the best compromise. It's not pixel perfect, but the entire thing is very much not pixel perfect. As I said, writing tests is hard.
Could you test my updated branch? See https://gitlab.winehq.org/DarkShadow44/wine/-/tree/win32u_dib
This is would I propose as a fix, at least for now.