From 0b4dbea5669c8eb32295080cfe88f6b188c01591 Mon Sep 17 00:00:00 2001 From: dborca <> Date: Mon, 27 Sep 2004 09:09:41 +0000 Subject: [PATCH] avoid unsigned wrap-arounds --- glide3x/sst1/glide3/src/distrip.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/glide3x/sst1/glide3/src/distrip.c b/glide3x/sst1/glide3/src/distrip.c index 06d61aa..7f26596 100644 --- a/glide3x/sst1/glide3/src/distrip.c +++ b/glide3x/sst1/glide3/src/distrip.c @@ -19,6 +19,7 @@ ** ** $Header$ ** $Log$ +** ** Revision 1.1.2.1 2004/03/02 07:55:29 dborca ** Bastardised Glide3x for SST1 ** @@ -397,8 +398,8 @@ GR_DIENTRY(grDrawVertexArray, void , (FxU32 mode, FxU32 Count, void *pointers) ) break; case GR_LINES: /* [dBorca] "AA" is checked inside grDrawLine */ - for (i = 2; i <= (FxI32)Count; i += 2) { - grDrawLine(vPtr[i-2], vPtr[i-1]); + for (i = 1; i < Count; i += 2) { + grDrawLine(vPtr[i-1], vPtr[i]); } break; @@ -407,12 +408,12 @@ GR_DIENTRY(grDrawVertexArray, void , (FxU32 mode, FxU32 Count, void *pointers) ) */ case GR_TRIANGLE_STRIP: /* [dBorca] we need to cache the last TWO vertices */ - for (i = 3; i <= Count; i++) { + for (i = 2; i < Count; i++) { /* CullFlip */ if (i & 1) { - grDrawTriangle(vPtr[i-3], vPtr[i-2], vPtr[i-1]); + grDrawTriangle(vPtr[i-2], vPtr[i], vPtr[i-1]); } else { - grDrawTriangle(vPtr[i-3], vPtr[i-1], vPtr[i-2]); + grDrawTriangle(vPtr[i-2], vPtr[i-1], vPtr[i]); } } break; @@ -436,12 +437,12 @@ GR_DIENTRY(grDrawVertexArray, void , (FxU32 mode, FxU32 Count, void *pointers) ) case GR_TRIANGLES: /* [dBorca] jump to anti-aliased function if GR_AA_ORDERED */ if (gc->state.grEnableArgs.primitive_smooth_mode & GR_AA_ORDERED_TRIANGLES_MASK) { - for (i = 3; i <= Count; i += 3) { - grAADrawTriangle(vPtr[i-3], vPtr[i-2], vPtr[i-1], FXTRUE, FXTRUE, FXTRUE); + for (i = 2; i < Count; i += 3) { + grAADrawTriangle(vPtr[i-2], vPtr[i-1], vPtr[i], FXTRUE, FXTRUE, FXTRUE); } } else { - for (i = 3; i <= Count; i += 3) { - grDrawTriangle(vPtr[i-3], vPtr[i-2], vPtr[i-1]); + for (i = 2; i < Count; i += 3) { + grDrawTriangle(vPtr[i-2], vPtr[i-1], vPtr[i]); } } break; @@ -502,7 +503,7 @@ GR_DIENTRY(grDrawVertexArrayContiguous, void , (FxU32 mode, FxU32 Count, void *p break; case GR_LINES: /* [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); vPtr += stride * 2; } @@ -510,12 +511,12 @@ GR_DIENTRY(grDrawVertexArrayContiguous, void , (FxU32 mode, FxU32 Count, void *p case GR_TRIANGLE_STRIP: /* [dBorca] we need to cache the last TWO vertices */ - for (i = 3; i <= Count; i++) { + for (i = 2; i < Count; i++) { /* CullFlip */ if (i & 1) { - grDrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2); - } else { grDrawTriangle(vPtr, vPtr + stride * 2, vPtr + stride); + } else { + grDrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2); } vPtr += stride; } @@ -540,12 +541,12 @@ GR_DIENTRY(grDrawVertexArrayContiguous, void , (FxU32 mode, FxU32 Count, void *p case GR_TRIANGLES: /* [dBorca] jump to anti-aliased function if GR_AA_ORDERED */ 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); vPtr += stride * 3; } } else { - for (i = 3; i <= Count; i += 3) { + for (i = 2; i < Count; i += 3) { grDrawTriangle(vPtr, vPtr + stride, vPtr + stride * 2); vPtr += stride * 3; }