With larger ellipses, rounding will cause some spans close to vertical tangent to be of zero length, leading to sometimes rather large missing portion of the arc.
Try to detect this case and work around it. Signed-off-by: Olivier Fourdan <ofour...@redhat.com> --- mi/miarc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mi/miarc.c b/mi/miarc.c index e8bc87e..be9c94c 100644 --- a/mi/miarc.c +++ b/mi/miarc.c @@ -563,6 +563,16 @@ miComputeEllipseSpans(int lw, xArc * parc, miArcSpanData * spdata) outx = x + t; } } + if (ICEIL(xorg + outx) - ICEIL(xorg + inx) < lw ) { + if (inx <= 0.0) { + outx = outx + ICEIL(-r); + inx = inx + ICEIL(r); + } + else { + outx = outx + ICEIL(r); + inx = inx + ICEIL(-r); + } + } span->lx = ICEIL(xorg - outx); if (inx <= 0.0) { spdata->count1++; -- 2.3.5 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel