Daniel Wendt <daniel.wendt(a)linux.com> writes:
> @@ -308,6 +308,11 @@ static int get_arc_points( PHYSDEV dev, const RECT *rect, POINT start, POINT end
> }
>
> memmove( points, points + count, (pos - count) * sizeof(POINT) );
> +
> + if (GetGraphicsMode( dev->hdc ) == GM_ADVANCED)
> + {
> + LPtoDP( dev->hdc, points, pos - count );
> + }
> return pos - count;
> }
>
> @@ -322,7 +327,17 @@ static BOOL draw_arc( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
> BOOL ret = TRUE;
> HRGN outline = 0, interior = 0;
>
> - if (!get_pen_device_rect( pdev, &rect, left, top, right, bottom )) return TRUE;
> + if (GetGraphicsMode(dev->hdc ) != GM_ADVANCED)
> + {
> + if (!get_pen_device_rect( pdev, &rect, left, top, right, bottom )) return TRUE;
> + }
> + else
> + {
> + rect.left = left;
> + rect.top = top;
> + rect.right = right;
> + rect.bottom = bottom;
> + }
I don't think that you want to draw arcs in logical space, that can be
very inefficient.
--
Alexandre Julliard
julliard(a)winehq.org