set span.y prior to each span write in draw_depth_pixels, like Karl's other fix
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 30 Sep 2004 15:39:43 +0000 (15:39 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 30 Sep 2004 15:39:43 +0000 (15:39 +0000)
src/mesa/swrast/s_drawpix.c

index 141054c2f667d13e0f36d44413634ce428a843c1..205022a89d63035595f0fa1eeb76983a60651b47 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Mesa 3-D graphics library
- * Version:  6.1
+ * Version:  6.2
  *
  * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
  *
@@ -659,17 +659,17 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y,
        && ctx->Visual.rgbMode
        && width <= MAX_WIDTH) {
       /* Special case: directly write 16-bit depth values */
-      GLint row;
-      span.x = x;
-      span.y = y;
-      span.end = width;
-      for (row = 0; row < height; row++, span.y++) {
+      GLint row, spanY = y;
+      for (row = 0; row < height; row++, spanY++) {
          const GLushort *zSrc = (const GLushort *)
             _mesa_image_address(unpack, pixels, width, height,
                                 GL_DEPTH_COMPONENT, type, 0, row, 0);
          GLint i;
          for (i = 0; i < width; i++)
             span.array->z[i] = zSrc[i];
+         span.x = x;
+         span.y = spanY;
+         span.end = width;
          _swrast_write_rgba_span(ctx, &span);
       }
    }
@@ -681,11 +681,8 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y,
             && width <= MAX_WIDTH) {
       /* Special case: shift 32-bit values down to ctx->Visual.depthBits */
       const GLint shift = 32 - ctx->Visual.depthBits;
-      GLint row;
-      span.x = x;
-      span.y = y;
-      span.end = width;
-      for (row = 0; row < height; row++, span.y++) {
+      GLint row, spanY = y;
+      for (row = 0; row < height; row++, spanY++) {
          const GLuint *zSrc = (const GLuint *)
             _mesa_image_address(unpack, pixels, width, height,
                                 GL_DEPTH_COMPONENT, type, 0, row, 0);
@@ -697,6 +694,9 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y,
             for (col = 0; col < width; col++)
                span.array->z[col] = zSrc[col] >> shift;
          }
+         span.x = x;
+         span.y = spanY;
+         span.end = width;
          _swrast_write_rgba_span(ctx, &span);
       }
    }