Lines Matching defs:arc
56 miFillArcSetup(xArc *arc, miFillArcRec *info)
58 info->y = arc->height >> 1;
59 info->dy = arc->height & 1;
60 info->yorg = arc->y + info->y;
61 info->dx = arc->width & 1;
62 info->xorg = arc->x + (arc->width >> 1) + info->dx;
64 if (arc->width == arc->height)
88 info->ym = (arc->width * arc->width) << 3;
89 info->xm = (arc->height * arc->height) << 3;
109 miFillArcDSetup(xArc *arc, miFillArcDRec *info)
113 info->y = arc->height >> 1;
114 info->dy = arc->height & 1;
115 info->yorg = arc->y + info->y;
116 info->dx = arc->width & 1;
117 info->xorg = arc->x + (arc->width >> 1) + info->dx;
119 info->ym = ((double)arc->width) * (arc->width * 8);
120 info->xm = ((double)arc->height) * (arc->height * 8);
140 xArc *arc,
148 y = arc->height >> 1;
149 if (!(arc->width & 1))
154 if (arc->height & 1)
167 edge->x += arc->x + (arc->width >> 1);
264 xArc *arc,
273 miEllipseAngleToSlope (angle, arc->width, arc->height, &dx, &dy, 0, 0);
285 edge->x = arc->x + (arc->width >> 1);
286 if (left && (arc->width & 1))
288 else if (!left && !(arc->width & 1))
299 k = (arc->height & 1) ? dx : 0;
300 if (arc->width & 1)
304 miGetArcEdge(arc, edge, k, top, left);
308 miFillArcSliceSetup(xArc *arc, miArcSliceRec *slice, GCPtr pGC)
312 angle1 = arc->angle1;
313 if (arc->angle2 < 0)
316 angle1 += arc->angle2;
319 angle2 = angle1 + arc->angle2;
329 slice->max_top_y = arc->height >> 1;
330 slice->min_bot_y = 1 - (arc->height & 1);
343 slice->min_top_y = arc->height;
350 slice->min_bot_y = arc->height;
364 slice->min_bot_y = arc->height;
369 slice->min_top_y = arc->height;
372 miGetPieEdge(arc, angle1, &slice->edge1,
374 miGetPieEdge(arc, angle2, &slice->edge2,
383 w2 = (double)arc->width / 2.0;
384 h2 = (double)arc->height / 2.0;
419 if (arc->height & 1)
424 if (arc->width & 1)
462 slice->min_bot_y = arc->height;
466 slice->max_bot_y = -y - (arc->height & 1);
476 slice->min_top_y = arc->height;
477 slice->min_bot_y = -y - (arc->height & 1);
494 slice->edge1.x += arc->x + (arc->width >> 1);
512 miGetArcEdge(arc, &slice->edge1, k,
514 miGetArcEdge(arc, &slice->edge2, k,
538 xArc *arc )
549 points = malloc(sizeof(DDXPointRec) * arc->height);
552 widths = malloc(sizeof(int) * arc->height);
558 miFillArcSetup(arc, &info);
581 xArc *arc )
592 points = malloc(sizeof(DDXPointRec) * arc->height);
595 widths = malloc(sizeof(int) * arc->height);
601 miFillArcDSetup(arc, &info);
646 xArc *arc )
658 miFillArcSetup(arc, &info);
659 miFillArcSliceSetup(arc, &slice, pGC);
661 slw = arc->height;
663 slw += (arc->height >> 1) + 1;
709 xArc *arc )
722 miFillArcDSetup(arc, &info);
723 miFillArcSliceSetup(arc, &slice, pGC);
725 slw = arc->height;
727 slw += (arc->height >> 1) + 1;
771 * fill each arc as it comes.
777 xArc *arc;
779 for(i = narcs, arc = parcs; --i >= 0; arc++)
781 if (miFillArcEmpty(arc))
783 if ((arc->angle2 >= FULLCIRCLE) || (arc->angle2 <= -FULLCIRCLE))
785 if (miCanFillArc(arc))
786 miFillEllipseI(pDraw, pGC, arc);
788 miFillEllipseD(pDraw, pGC, arc);
792 if (miCanFillArc(arc))
793 miFillArcSliceI(pDraw, pGC, arc);
795 miFillArcSliceD(pDraw, pGC, arc);