[comp.windows.x] X11R2 bug filling arcs with pie-mode

claus@sinix.UUCP (Claus Gittinger) (09/21/88)

this bug appeared on Siemens Mx300/X9733 and on uVax running X11R2;
am I alone with it or do you notice the same behavior ?

VERSION:
	X11R2

SYNOPSIS:
	filling arcs with XFillArc(s) and arc_mode==ARCPIESLICE
	produces funny results when angle2 is > 180 degrees.

REPEAT-BY:
	XFillArc(dpy, mainWindow, gc, x, y, w, h, 135*64, 250*64);

FIX:
	(has only been tested on Siemens machines)
	after computing the points for the polygon,
	miPolyFillArc passes them to FillPolygon, with Convex shape.
	The Pie is only Convex, if angle2 <= 180 degrees.

		    ....
	pPts[0].y = parcs[i].y + parcs[i].height/2;
	if (parcs[i].angle2 < (FULLCIRCLE/2))
	    (*pGC->FillPolygon)(pDraw, pGC, Convex,
				CoordModeOrigin, cpt + 1, pPts);
	else
	    (*pGC->FillPolygon)(pDraw, pGC, Nonconvex,
				CoordModeOrigin, cpt + 1, pPts);
		    ....

	by the way: shouldn't we move the Xfree out of the if statement ?


	improvement, comments welcome -- no flames please !