diff options
author | Keith Whitwell <[email protected]> | 2004-11-01 20:27:43 +0000 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2004-11-01 20:27:43 +0000 |
commit | cc78e40172589a2154f9f74c5ff4461b93db14fd (patch) | |
tree | 4558b53b8c64ff78e47b078411367086261202fd | |
parent | 3d2b4bfa95c6a1d8c481f0ee2a18585c4d0627da (diff) |
Nicolai's sw-clipspan-fixes.patch
-rw-r--r-- | src/mesa/drivers/dri/common/depthtmp.h | 17 | ||||
-rw-r--r-- | src/mesa/drivers/dri/common/stenciltmp.h | 8 |
2 files changed, 13 insertions, 12 deletions
diff --git a/src/mesa/drivers/dri/common/depthtmp.h b/src/mesa/drivers/dri/common/depthtmp.h index d8b8775ae99..ec79aca30f7 100644 --- a/src/mesa/drivers/dri/common/depthtmp.h +++ b/src/mesa/drivers/dri/common/depthtmp.h @@ -45,15 +45,15 @@ static void TAG(WriteDepthSpan)( GLcontext *ctx, GLint i = 0; CLIPSPAN( x, y, n, x1, n1, i ); - if ( DBG ) fprintf( stderr, "WriteDepthSpan %d..%d (x1 %d)\n", - (int)i, (int)n1, (int)x1 ); + if ( DBG ) fprintf( stderr, "WriteDepthSpan %d..%d (x1 %d) (mask %p)\n", + (int)i, (int)n1, (int)x1, mask ); if ( mask ) { - for ( ; i < n1 ; i++, x1++ ) { + for ( ; n1>0 ; i++, x1++, n1-- ) { if ( mask[i] ) WRITE_DEPTH( x1, y, depth[i] ); } } else { - for ( ; i < n1 ; i++, x1++ ) { + for ( ; n1>0 ; i++, x1++, n1-- ) { WRITE_DEPTH( x1, y, depth[i] ); } } @@ -87,11 +87,11 @@ static void TAG(WriteMonoDepthSpan)( GLcontext *ctx, __FUNCTION__, (int)i, (int)n1, (int)x1, (GLuint)depth ); if ( mask ) { - for ( ; i < n1 ; i++, x1++ ) { + for ( ; n1>0 ; i++, x1++, n1-- ) { if ( mask[i] ) WRITE_DEPTH( x1, y, depth ); } } else { - for ( ; i < n1 ; i++, x1++ ) { + for ( ; n1>0 ; x1++, n1-- ) { WRITE_DEPTH( x1, y, depth ); } } @@ -162,8 +162,9 @@ static void TAG(ReadDepthSpan)( GLcontext *ctx, { GLint i = 0; CLIPSPAN( x, y, n, x1, n1, i ); - for ( ; i < n1 ; i++ ) - READ_DEPTH( depth[i], (x1+i), y ); + for ( ; n1>0 ; i++, n1-- ) { + READ_DEPTH( depth[i], x+i, y ); + } } HW_ENDCLIPLOOP(); #endif diff --git a/src/mesa/drivers/dri/common/stenciltmp.h b/src/mesa/drivers/dri/common/stenciltmp.h index 365e9811ac3..285d8e52917 100644 --- a/src/mesa/drivers/dri/common/stenciltmp.h +++ b/src/mesa/drivers/dri/common/stenciltmp.h @@ -41,13 +41,13 @@ static void TAG(WriteStencilSpan)( GLcontext *ctx, if (mask) { - for (;i<n1;i++,x1++) + for (;n1>0;i++,x1++,n1--) if (mask[i]) WRITE_STENCIL( x1, y, stencil[i] ); } else { - for (;i<n1;i++,x1++) + for (;n1>0;i++,x1++,n1--) WRITE_STENCIL( x1, y, stencil[i] ); } } @@ -107,8 +107,8 @@ static void TAG(ReadStencilSpan)( GLcontext *ctx, { GLint i = 0; CLIPSPAN(x,y,n,x1,n1,i); - for (;i<n1;i++) - READ_STENCIL( stencil[i], (x1+i), y ); + for (;n1>0;i++,n1--) + READ_STENCIL( stencil[i], (x+i), y ); } HW_ENDCLIPLOOP(); } |