avoid unsigned wrap-arounds

This commit is contained in:
dborca
2004-09-27 09:09:41 +00:00
parent ada722548b
commit 0b4dbea566

View File

@@ -19,6 +19,7 @@
** **
** $Header$ ** $Header$
** $Log$ ** $Log$
**
** Revision 1.1.2.1 2004/03/02 07:55:29 dborca ** Revision 1.1.2.1 2004/03/02 07:55:29 dborca
** Bastardised Glide3x for SST1 ** Bastardised Glide3x for SST1
** **
@@ -397,8 +398,8 @@ GR_DIENTRY(grDrawVertexArray, void , (FxU32 mode, FxU32 Count, void *pointers) )
break; break;
case GR_LINES: case GR_LINES:
/* [dBorca] "AA" is checked inside grDrawLine */ /* [dBorca] "AA" is checked inside grDrawLine */
for (i = 2; i <= (FxI32)Count; i += 2) { for (i = 1; i < Count; i += 2) {
grDrawLine(vPtr[i-2], vPtr[i-1]); grDrawLine(vPtr[i-1], vPtr[i]);
} }
break; break;
@@ -407,12 +408,12 @@ GR_DIENTRY(grDrawVertexArray, void , (FxU32 mode, FxU32 Count, void *pointers) )
*/ */
case GR_TRIANGLE_STRIP: case GR_TRIANGLE_STRIP:
/* [dBorca] we need to cache the last TWO vertices */ /* [dBorca] we need to cache the last TWO vertices */
for (i = 3; i <= Count; i++) { for (i = 2; i < Count; i++) {
/* CullFlip */ /* CullFlip */
if (i & 1) { if (i & 1) {
grDrawTriangle(vPtr[i-3], vPtr[i-2], vPtr[i-1]); grDrawTriangle(vPtr[i-2], vPtr[i], vPtr[i-1]);
} else { } else {
grDrawTriangle(vPtr[i-3], vPtr[i-1], vPtr[i-2]); grDrawTriangle(vPtr[i-2], vPtr[i-1], vPtr[i]);
} }
} }
break; break;
@@ -436,12 +437,12 @@ GR_DIENTRY(grDrawVertexArray, void , (FxU32 mode, FxU32 Count, void *pointers) )
case GR_TRIANGLES: case GR_TRIANGLES:
/* [dBorca] jump to anti-aliased function if GR_AA_ORDERED */ /* [dBorca] jump to anti-aliased function if GR_AA_ORDERED */
if (gc->state.grEnableArgs.primitive_smooth_mode & GR_AA_ORDERED_TRIANGLES_MASK) { if (gc->state.grEnableArgs.primitive_smooth_mode & GR_AA_ORDERED_TRIANGLES_MASK) {
for (i = 3; i <= Count; i += 3) { for (i = 2; i < Count; i += 3) {
grAADrawTriangle(vPtr[i-3], vPtr[i-2], vPtr[i-1], FXTRUE, FXTRUE, FXTRUE); grAADrawTriangle(vPtr[i-2], vPtr[i-1], vPtr[i], FXTRUE, FXTRUE, FXTRUE);
} }
} else { } else {
for (i = 3; i <= Count; i += 3) { for (i = 2; i < Count; i += 3) {
grDrawTriangle(vPtr[i-3], vPtr[i-2], vPtr[i-1]); grDrawTriangle(vPtr[i-2], vPtr[i-1], vPtr[i]);
} }
} }
break; break;
@@ -502,7 +503,7 @@ GR_DIENTRY(grDrawVertexArrayContiguous, void , (FxU32 mode, FxU32 Count, void *p
break; break;
case GR_LINES: case GR_LINES:
/* [dBorca] "AA" is checked inside grDrawLine */ /* [dBorca] "AA" is checked inside grDrawLine */
for (i = 2; i <= (FxI32)Count; i += 2) { for (i = 1; i < Count; i += 2) {
grDrawLine(vPtr, vPtr + stride); grDrawLine(vPtr, vPtr + stride);
vPtr += stride * 2; vPtr += stride * 2;
} }
@@ -510,12 +511,12 @@ GR_DIENTRY(grDrawVertexArrayContiguous, void , (FxU32 mode, FxU32 Count, void *p
case GR_TRIANGLE_STRIP: case GR_TRIANGLE_STRIP:
/* [dBorca] we need to cache the last TWO vertices */ /* [dBorca] we need to cache the last TWO vertices */
for (i = 3; i <= Count; i++) { for (i = 2; i < Count; i++) {
/* CullFlip */ /* CullFlip */
if (i & 1) { if (i & 1) {
grDrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2);
} else {
grDrawTriangle(vPtr, vPtr + stride * 2, vPtr + stride); grDrawTriangle(vPtr, vPtr + stride * 2, vPtr + stride);
} else {
grDrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2);
} }
vPtr += stride; vPtr += stride;
} }
@@ -540,12 +541,12 @@ GR_DIENTRY(grDrawVertexArrayContiguous, void , (FxU32 mode, FxU32 Count, void *p
case GR_TRIANGLES: case GR_TRIANGLES:
/* [dBorca] jump to anti-aliased function if GR_AA_ORDERED */ /* [dBorca] jump to anti-aliased function if GR_AA_ORDERED */
if (gc->state.grEnableArgs.primitive_smooth_mode & GR_AA_ORDERED_TRIANGLES_MASK) { if (gc->state.grEnableArgs.primitive_smooth_mode & GR_AA_ORDERED_TRIANGLES_MASK) {
for (i = 3; i <= Count; i += 3) { for (i = 2; i < Count; i += 3) {
grAADrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2, FXTRUE, FXTRUE, FXTRUE); grAADrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2, FXTRUE, FXTRUE, FXTRUE);
vPtr += stride * 3; vPtr += stride * 3;
} }
} else { } else {
for (i = 3; i <= Count; i += 3) { for (i = 2; i < Count; i += 3) {
grDrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2); grDrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2);
vPtr += stride * 3; vPtr += stride * 3;
} }