Hi [Copying Keith as well]
Keith, I hope you don't mind if I copy you directly but I have that feeling you're my best hope with this headache generator :-) Cheers, Olivier ----- Original Message ----- > 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 <[email protected]> > --- > 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 > > _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
