Lines Matching defs:Edge
604 // the following routine fills a triangle via edge stepping, which
631 struct Edge
633 int32_t x; // edge position in 16.16 coordinates
640 edge_dump( Edge* edge )
643 edge->y_top, edge->y_top/float(TRI_ONE),
644 edge->y_bot, edge->y_bot/float(TRI_ONE),
645 edge->x, edge->x/float(FIXED_ONE),
646 edge->x_incr, edge->x_incr/float(FIXED_ONE) );
650 triangle_dump_edges( Edge* edges,
653 LOGI( "%d edge%s:\n", count, count == 1 ? "" : "s" );
658 // the following function sets up an edge, it assumes
663 Edge* edges,
672 Edge* edge = edges + *pcount;
691 if ( ymin > ymax ) // when the edge doesn't cross any scanline
698 // setup edge fields
699 // We add 0.5 to edge->x here because it simplifies the rounding
701 edge->x = (x1 << shift) + (1LU << (TRI_ITERATORS_BITS-1));
702 edge->x_incr = 0;
703 edge->y_top = ymin;
704 edge->y_bot = ymax;
707 edge->x_incr = gglDivQ16(dx, dy);
710 int32_t xadjust = (edge->x_incr * (ymin-y1)) >> TRI_FRACTION_BITS;
711 edge->x += xadjust;
719 triangle_sweep_edges( Edge* left,
720 Edge* right,
765 Edge edges[3];
777 Edge* left = &edges[0];
778 Edge* right = &edges[1];
779 Edge* other = &edges[2];
825 GGLfixed x; // edge position in 12.16 coordinates
848 // the following function sets up an edge, it assumes
862 AAEdge* edge = edges + *pcount;
884 // setup edge fields
885 edge->x = x1 << shift;
886 edge->x_incr = 0;
887 edge->y_top = ymin;
888 edge->y_bot = ymax;
889 edge->y_incr = 0x7FFFFFFF;
892 edge->x_incr = gglDivQ16(dx, dy);
894 edge->y_incr = abs(gglDivQ16(dy, dx));
898 int32_t xadjust = (edge->x_incr * (ymin-y1))
900 edge->x += xadjust;
977 // sort the edge list top to bottom, left to right.
1005 // compute xmin and xmax for the left edge
1012 // compute xmin and xmax for the right edge
1119 // subtract the coverage of the right edge
1150 // did we reach the end of an edge? if so, get a new one.