Daniel Wendt <daniel.we...@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 julli...@winehq.org