Lines Matching refs:slice
308 miFillArcSliceSetup(xArc *arc, miArcSliceRec *slice, GCPtr pGC)
328 slice->min_top_y = 0;
329 slice->max_top_y = arc->height >> 1;
330 slice->min_bot_y = 1 - (arc->height & 1);
331 slice->max_bot_y = slice->max_top_y - 1;
332 slice->flip_top = FALSE;
333 slice->flip_bot = FALSE;
336 slice->edge1_top = (angle1 < HALFCIRCLE);
337 slice->edge2_top = (angle2 <= HALFCIRCLE);
340 if (angle2 ? slice->edge2_top : slice->edge1_top)
341 slice->min_top_y = slice->min_bot_y;
343 slice->min_top_y = arc->height;
344 slice->min_bot_y = 0;
348 slice->min_top_y = slice->min_bot_y;
349 if (angle1 ? slice->edge1_top : slice->edge2_top)
350 slice->min_bot_y = arc->height;
352 slice->min_bot_y = 0;
354 else if (slice->edge1_top == slice->edge2_top)
358 slice->flip_top = slice->edge1_top;
359 slice->flip_bot = !slice->edge1_top;
361 else if (slice->edge1_top)
363 slice->min_top_y = 1;
364 slice->min_bot_y = arc->height;
368 slice->min_bot_y = 0;
369 slice->min_top_y = arc->height;
372 miGetPieEdge(arc, angle1, &slice->edge1,
373 slice->edge1_top, !slice->edge1_top);
374 miGetPieEdge(arc, angle2, &slice->edge2,
375 slice->edge2_top, slice->edge2_top);
445 slice->edge1.dx = dx * 2;
446 slice->edge1.dy = dy * 2;
451 slice->edge1.dx = floor((dx * 32768) / scale + .5);
452 slice->edge1.dy = floor((dy * 32768) / scale + .5);
454 if (!slice->edge1.dy)
461 slice->min_top_y = y;
462 slice->min_bot_y = arc->height;
466 slice->max_bot_y = -y - (arc->height & 1);
473 slice->max_top_y = y;
476 slice->min_top_y = arc->height;
477 slice->min_bot_y = -y - (arc->height & 1);
480 slice->edge1_top = TRUE;
481 slice->edge1.x = 65536;
482 slice->edge1.stepx = 0;
483 slice->edge1.e = 0;
484 slice->edge1.dx = -1;
485 slice->edge2 = slice->edge1;
486 slice->edge2_top = FALSE;
488 else if (!slice->edge1.dx)
492 slice->edge1.x = ceil(x1);
493 slice->edge1_top = signdy < 0;
494 slice->edge1.x += arc->x + (arc->width >> 1);
495 slice->edge1.stepx = 0;
496 slice->edge1.e = 0;
497 slice->edge1.dx = -1;
498 slice->edge2_top = !slice->edge1_top;
499 slice->edge2 = slice->edge1;
504 slice->edge1.dx = -slice->edge1.dx;
506 slice->edge1.dx = -slice->edge1.dx;
507 k = ceil(((x1 + x2) * slice->edge1.dy - (y1 + y2) * slice->edge1.dx) / 2.0);
508 slice->edge2.dx = slice->edge1.dx;
509 slice->edge2.dy = slice->edge1.dy;
510 slice->edge1_top = signdy < 0;
511 slice->edge2_top = !slice->edge1_top;
512 miGetArcEdge(arc, &slice->edge1, k,
513 slice->edge1_top, !slice->edge1_top);
514 miGetArcEdge(arc, &slice->edge2, k,
515 slice->edge2_top, slice->edge2_top);
651 miArcSliceRec slice;
659 miFillArcSliceSetup(arc, &slice, pGC);
662 if (slice.flip_top || slice.flip_bot)
677 slice.edge1.x += pDraw->x;
678 slice.edge2.x += pDraw->x;
685 MIARCSLICESTEP(slice.edge1);
686 MIARCSLICESTEP(slice.edge2);
687 if (miFillSliceUpper(slice))
690 MIARCSLICEUPPER(xl, xr, slice, slw);
691 ADDSLICESPANS(slice.flip_top);
693 if (miFillSliceLower(slice))
696 MIARCSLICELOWER(xl, xr, slice, slw);
697 ADDSLICESPANS(slice.flip_bot);
715 miArcSliceRec slice;
723 miFillArcSliceSetup(arc, &slice, pGC);
726 if (slice.flip_top || slice.flip_bot)
741 slice.edge1.x += pDraw->x;
742 slice.edge2.x += pDraw->x;
749 MIARCSLICESTEP(slice.edge1);
750 MIARCSLICESTEP(slice.edge2);
751 if (miFillSliceUpper(slice))
754 MIARCSLICEUPPER(xl, xr, slice, slw);
755 ADDSLICESPANS(slice.flip_top);
757 if (miFillSliceLower(slice))
760 MIARCSLICELOWER(xl, xr, slice, slw);
761 ADDSLICESPANS(slice.flip_bot);