draw: quads never provoke the first vertex

This commit is contained in:
Marek Olšák 2010-03-09 04:40:55 +01:00
parent 558ce9964f
commit f3365bceb8
2 changed files with 20 additions and 58 deletions

View file

@ -105,40 +105,20 @@ static void FUNC( ARGS,
case PIPE_PRIM_QUADS:
if (flatfirst) {
for (i = 0; i+3 < count; i += 4) {
QUAD( (i + 1),
(i + 2),
(i + 3),
(i + 0) );
}
}
else {
for (i = 0; i+3 < count; i += 4) {
QUAD( (i + 0),
(i + 1),
(i + 2),
(i + 3));
}
for (i = 0; i+3 < count; i += 4) {
QUAD( (i + 0),
(i + 1),
(i + 2),
(i + 3));
}
break;
case PIPE_PRIM_QUAD_STRIP:
if (flatfirst) {
for (i = 0; i+3 < count; i += 2) {
QUAD( (i + 1),
(i + 3),
(i + 2),
(i + 0) );
}
}
else {
for (i = 0; i+3 < count; i += 2) {
QUAD( (i + 2),
(i + 0),
(i + 1),
(i + 3));
}
for (i = 0; i+3 < count; i += 2) {
QUAD( (i + 2),
(i + 0),
(i + 1),
(i + 3));
}
break;

View file

@ -118,39 +118,21 @@ static void FUNC( struct draw_pt_front_end *frontend,
case PIPE_PRIM_QUADS:
for (i = 0; i+3 < count; i += 4) {
if (flatfirst) {
QUAD( vcache,
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 2),
get_elt(elts, i + 3) );
}
else {
QUAD( vcache,
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 2),
get_elt(elts, i + 3) );
}
QUAD( vcache,
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 2),
get_elt(elts, i + 3) );
}
break;
case PIPE_PRIM_QUAD_STRIP:
for (i = 0; i+3 < count; i += 2) {
if (flatfirst) {
QUAD( vcache,
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 3),
get_elt(elts, i + 2) );
}
else {
QUAD( vcache,
get_elt(elts, i + 2),
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 3) );
}
QUAD( vcache,
get_elt(elts, i + 2),
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 3) );
}
break;