Commit 55d70e89 authored by Evan Stade's avatar Evan Stade Committed by Alexandre Julliard

gdiplus: Changed the way the direction of the endcap is calculated to make…

gdiplus: Changed the way the direction of the endcap is calculated to make LineCapArrowAnchor direction match Windows better.
parent f9b0dac9
...@@ -384,8 +384,13 @@ static GpStatus draw_polybezier(HDC hdc, GpPen *pen, GDIPCONST GpPointF * pt, ...@@ -384,8 +384,13 @@ static GpStatus draw_polybezier(HDC hdc, GpPen *pen, GDIPCONST GpPointF * pt,
if(pen->endcap == LineCapArrowAnchor) if(pen->endcap == LineCapArrowAnchor)
shorten_bezier_amt(ptf, pen->width); shorten_bezier_amt(ptf, pen->width);
draw_cap(hdc, pen->color, pen->endcap, pen->width, ptf[3].X, /* the direction of the line cap is parallel to the direction at the
ptf[3].Y, pt[count - 1].X, pt[count - 1].Y); * end of the bezier (which, if it has been shortened, is not the same
* as the direction from pt[count-2] to pt[count-1]) */
draw_cap(hdc, pen->color, pen->endcap, pen->width,
pt[count - 1].X - (ptf[3].X - ptf[2].X),
pt[count - 1].Y - (ptf[3].Y - ptf[2].Y),
pt[count - 1].X, pt[count - 1].Y);
} }
for(i = 0; i < count - 4; i ++){ for(i = 0; i < count - 4; i ++){
...@@ -474,8 +479,10 @@ static GpStatus draw_poly(HDC hdc, GpPen *pen, GDIPCONST GpPointF * pt, ...@@ -474,8 +479,10 @@ static GpStatus draw_poly(HDC hdc, GpPen *pen, GDIPCONST GpPointF * pt,
if(pen->endcap == LineCapArrowAnchor) if(pen->endcap == LineCapArrowAnchor)
shorten_bezier_amt(ptf, pen->width); shorten_bezier_amt(ptf, pen->width);
draw_cap(hdc, pen->color, pen->endcap, pen->width, ptf[3].X, draw_cap(hdc, pen->color, pen->endcap, pen->width,
ptf[3].Y, pt[count - 1].X, pt[count - 1].Y); pt[count - 1].X - (ptf[3].X - ptf[2].X),
pt[count - 1].Y - (ptf[3].Y - ptf[2].Y),
pt[count - 1].X, pt[count - 1].Y);
} }
for(i = 0; i < 4; i ++){ for(i = 0; i < 4; i ++){
pti[i + count - 4].x = roundr(ptf[i].X); pti[i + count - 4].x = roundr(ptf[i].X);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment