fixed scissor clear problem (Michael Saunders)
authorBrian Paul <brian.paul@tungstengraphics.com>
Fri, 11 May 2001 18:58:32 +0000 (18:58 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Fri, 11 May 2001 18:58:32 +0000 (18:58 +0000)
src/mesa/swrast/s_alphabuf.c

index 9d88c609209958f2c6b39c12ca91d95434bf5219..8c324a4588a2fc6538abfb899d008f6cb19c2c9b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_alphabuf.c,v 1.6 2001/03/12 00:48:41 gareth Exp $ */
+/* $Id: s_alphabuf.c,v 1.7 2001/05/11 18:58:32 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -164,6 +164,7 @@ _mesa_clear_alpha_buffers( GLcontext *ctx )
             GLint j;
             GLint rowLen = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin + 1;
             GLint rows = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin + 1;
+            GLint width = ctx->DrawBuffer->Width;
             GLchan *aptr = buffer
                           + ctx->DrawBuffer->_Ymin * ctx->DrawBuffer->Width
                           + ctx->DrawBuffer->_Xmin;
@@ -175,13 +176,19 @@ _mesa_clear_alpha_buffers( GLcontext *ctx )
 #else
 #error unexpected CHAN_BITS value
 #endif
-               aptr += rowLen;
+               aptr += width;
             }
          }
          else {
             /* clear whole buffer */
-            GLuint bytes = ctx->DrawBuffer->Width * ctx->DrawBuffer->Height;
-            MEMSET( buffer, aclear, bytes );
+            GLuint pixels = ctx->DrawBuffer->Width * ctx->DrawBuffer->Height;
+#if CHAN_BITS == 8
+            MEMSET(buffer, aclear, pixels);
+#elif CHAN_BITS == 16
+            MEMSET16(buffer, aclear, pixels);
+#else
+#error unexpected CHAN_BITS value
+#endif
          }
       }
    }