From cc78e40172589a2154f9f74c5ff4461b93db14fd Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Mon, 1 Nov 2004 20:27:43 +0000 Subject: [PATCH] Nicolai's sw-clipspan-fixes.patch --- src/mesa/drivers/dri/common/depthtmp.h | 17 +++++++++-------- 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 (;i0;i++,x1++,n1--) if (mask[i]) WRITE_STENCIL( x1, y, stencil[i] ); } else { - for (;i0;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 (;i0;i++,n1--) + READ_STENCIL( stencil[i], (x+i), y ); } HW_ENDCLIPLOOP(); } -- 2.30.2