[PATCH 1/2] gdi32: fix for rotated Arc, ArcTo, Chord and Pie drawing problem (try 2)

Alexandre Julliard julliard at winehq.org
Thu Sep 26 14:13:14 CDT 2013


Daniel Wendt <daniel.wendt at 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 at winehq.org



More information about the wine-devel mailing list