more clean-ups
[mesa.git] / src / mesa / swrast / s_depth.c
index 87841dde68bedb419a059b6aa9b3d4cc428a6d97..b15638b658a112577081644b4c9bbce476dae073 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_depth.c,v 1.20 2002/04/12 15:39:59 brianp Exp $ */
+/* $Id: s_depth.c,v 1.25 2002/10/30 19:49:30 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -28,7 +28,7 @@
 #include "glheader.h"
 #include "context.h"
 #include "macros.h"
-#include "mem.h"
+#include "imports.h"
 
 #include "s_depth.h"
 #include "s_context.h"
@@ -290,7 +290,7 @@ depth_test_span16( GLcontext *ctx, GLuint n,
         }
         break;
       case GL_NEVER:
-         BZERO(mask, n * sizeof(GLubyte));
+         _mesa_bzero(mask, n * sizeof(GLubyte));
         break;
       default:
          _mesa_problem(ctx, "Bad depth func in depth_test_span16");
@@ -519,7 +519,7 @@ depth_test_span32( GLcontext *ctx, GLuint n,
         }
         break;
       case GL_NEVER:
-         BZERO(mask, n * sizeof(GLubyte));
+         _mesa_bzero(mask, n * sizeof(GLubyte));
         break;
       default:
          _mesa_problem(ctx, "Bad depth func in depth_test_span32");
@@ -549,9 +549,11 @@ depth_test_span( GLcontext *ctx, struct sw_span *span)
       GLdepth zbuffer[MAX_WIDTH];
       GLuint passed;
       (*swrast->Driver.ReadDepthSpan)(ctx, n, x, y, zbuffer);
-      passed = depth_test_span32(ctx, n, zbuffer, span->zArray, span->mask);
+      passed = depth_test_span32(ctx, n, zbuffer, span->array->z,
+                                 span->array->mask);
       ASSERT(swrast->Driver.WriteDepthSpan);
-      (*swrast->Driver.WriteDepthSpan)(ctx, n, x, y, zbuffer, span->mask);
+      (*swrast->Driver.WriteDepthSpan)(ctx, n, x, y, zbuffer,
+                                       span->array->mask);
       if (passed < n)
          span->writeAll = GL_FALSE;
       return passed;
@@ -561,13 +563,17 @@ depth_test_span( GLcontext *ctx, struct sw_span *span)
       /* software depth buffer */
       if (ctx->Visual.depthBits <= 16) {
          GLushort *zptr = (GLushort *) Z_ADDRESS16(ctx, x, y);
-         passed = depth_test_span16(ctx, n, zptr, span->zArray, span->mask);
+         passed = depth_test_span16(ctx, n, zptr, span->array->z, span->array->mask);
       }
       else {
          GLuint *zptr = (GLuint *) Z_ADDRESS32(ctx, x, y);
-         passed = depth_test_span32(ctx, n, zptr, span->zArray, span->mask);
+         passed = depth_test_span32(ctx, n, zptr, span->array->z, span->array->mask);
       }
-#if 0
+#if 1
+      if (passed < span->end) {
+         span->writeAll = GL_FALSE;
+      }
+#else
       /* this causes a glDrawPixels(GL_DEPTH_COMPONENT) conformance failure */
       if (passed < span->end) {
          span->writeAll = GL_FALSE;
@@ -823,7 +829,7 @@ software_depth_test_pixels16( GLcontext *ctx, GLuint n,
         break;
       case GL_NEVER:
         /* depth test never passes */
-         BZERO(mask, n * sizeof(GLubyte));
+         _mesa_bzero(mask, n * sizeof(GLubyte));
         break;
       default:
          _mesa_problem(ctx, "Bad depth func in software_depth_test_pixels");
@@ -1069,7 +1075,7 @@ software_depth_test_pixels32( GLcontext *ctx, GLuint n,
         break;
       case GL_NEVER:
         /* depth test never passes */
-         BZERO(mask, n * sizeof(GLubyte));
+         _mesa_bzero(mask, n * sizeof(GLubyte));
         break;
       default:
          _mesa_problem(ctx, "Bad depth func in software_depth_test_pixels");
@@ -1303,7 +1309,7 @@ hardware_depth_test_pixels( GLcontext *ctx, GLuint n, GLdepth zbuffer[],
         break;
       case GL_NEVER:
         /* depth test never passes */
-         BZERO(mask, n * sizeof(GLubyte));
+         _mesa_bzero(mask, n * sizeof(GLubyte));
         break;
       default:
          _mesa_problem(ctx, "Bad depth func in hardware_depth_test_pixels");
@@ -1317,10 +1323,10 @@ depth_test_pixels( GLcontext *ctx, struct sw_span *span )
 {
    SWcontext *swrast = SWRAST_CONTEXT(ctx);
    const GLuint n = span->end;
-   const GLint *x = span->xArray;
-   const GLint *y = span->yArray;
-   const GLdepth *z = span->zArray;
-   GLubyte *mask = span->mask;
+   const GLint *x = span->array->x;
+   const GLint *y = span->array->y;
+   const GLdepth *z = span->array->z;
+   GLubyte *mask = span->array->mask;
 
    if (swrast->Driver.ReadDepthPixels) {
       /* read depth values from hardware Z buffer */
@@ -1374,8 +1380,8 @@ _mesa_read_depth_span( GLcontext *ctx,
 {
    SWcontext *swrast = SWRAST_CONTEXT(ctx);
 
-   if (y < 0 || y >= ctx->DrawBuffer->Height ||
-       x + (GLint) n <= 0 || x >= ctx->DrawBuffer->Width) {
+   if (y < 0 || y >= (GLint) ctx->DrawBuffer->Height ||
+       x + (GLint) n <= 0 || x >= (GLint) ctx->DrawBuffer->Width) {
       /* span is completely outside framebuffer */
       GLint i;
       for (i = 0; i < n; i++)
@@ -1392,8 +1398,8 @@ _mesa_read_depth_span( GLcontext *ctx,
       n -= dx;
       depth += dx;
    }
-   if (x + n > ctx->DrawBuffer->Width) {
-      GLint dx = x + n - ctx->DrawBuffer->Width;
+   if (x + n > (GLint) ctx->DrawBuffer->Width) {
+      GLint dx = x + n - (GLint) ctx->DrawBuffer->Width;
       GLint i;
       for (i = 0; i < dx; i++)
          depth[n - i - 1] = 0;
@@ -1426,7 +1432,7 @@ _mesa_read_depth_span( GLcontext *ctx,
    }
    else {
       /* no depth buffer */
-      BZERO(depth, n * sizeof(GLfloat));
+      _mesa_bzero(depth, n * sizeof(GLfloat));
    }
 
 }
@@ -1448,8 +1454,8 @@ _mesa_read_depth_span_float( GLcontext *ctx,
    SWcontext *swrast = SWRAST_CONTEXT(ctx);
    const GLfloat scale = 1.0F / ctx->DepthMaxF;
 
-   if (y < 0 || y >= ctx->DrawBuffer->Height ||
-       x + (GLint) n <= 0 || x >= ctx->DrawBuffer->Width) {
+   if (y < 0 || y >= (GLint) ctx->DrawBuffer->Height ||
+       x + (GLint) n <= 0 || x >= (GLint) ctx->DrawBuffer->Width) {
       /* span is completely outside framebuffer */
       GLint i;
       for (i = 0; i < n; i++)
@@ -1465,8 +1471,8 @@ _mesa_read_depth_span_float( GLcontext *ctx,
       n -= dx;
       x = 0;
    }
-   if (x + n > ctx->DrawBuffer->Width) {
-      GLint dx = x + n - ctx->DrawBuffer->Width;
+   if (x + n > (GLint) ctx->DrawBuffer->Width) {
+      GLint dx = x + n - (GLint) ctx->DrawBuffer->Width;
       GLint i;
       for (i = 0; i < dx; i++)
          depth[n - i - 1] = 0.0F;
@@ -1505,7 +1511,7 @@ _mesa_read_depth_span_float( GLcontext *ctx,
    }
    else {
       /* no depth buffer */
-      BZERO(depth, n * sizeof(GLfloat));
+      _mesa_bzero(depth, n * sizeof(GLfloat));
    }
 }
 
@@ -1614,7 +1620,7 @@ _mesa_clear_depth_buffer( GLcontext *ctx )
          const GLushort clearValue = (GLushort) (ctx->Depth.Clear * ctx->DepthMax);
          if ((clearValue & 0xff) == (clearValue >> 8)) {
             if (clearValue == 0) {
-               BZERO(ctx->DrawBuffer->DepthBuffer,
+               _mesa_bzero(ctx->DrawBuffer->DepthBuffer,
                      2*ctx->DrawBuffer->Width*ctx->DrawBuffer->Height);
             }
             else {
@@ -1648,7 +1654,7 @@ _mesa_clear_depth_buffer( GLcontext *ctx )
          /* >16 bit depth buffer */
          const GLuint clearValue = (GLuint) (ctx->Depth.Clear * ctx->DepthMax);
          if (clearValue == 0) {
-            BZERO(ctx->DrawBuffer->DepthBuffer,
+            _mesa_bzero(ctx->DrawBuffer->DepthBuffer,
                 ctx->DrawBuffer->Width*ctx->DrawBuffer->Height*sizeof(GLuint));
          }
          else {