added s/w alpha buffer clearing
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 1 Mar 2001 00:05:05 +0000 (00:05 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 1 Mar 2001 00:05:05 +0000 (00:05 +0000)
src/mesa/drivers/x11/xm_dd.c

index bf0058c..0d06860 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: xm_dd.c,v 1.15 2001/02/19 20:01:42 brianp Exp $ */
+/* $Id: xm_dd.c,v 1.16 2001/03/01 00:05:05 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -38,6 +38,7 @@
 #include "xmesaP.h"
 #include "array_cache/acache.h"
 #include "swrast/swrast.h"
+#include "swrast/s_alphabuf.h"
 #include "swrast_setup/swrast_setup.h"
 #include "tnl/tnl.h"
 
@@ -748,6 +749,12 @@ clear_buffers( GLcontext *ctx, GLbitfield mask,
    const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
    const GLuint *colorMask = (GLuint *) &ctx->Color.ColorMask;
 
+   if ((mask & (DD_FRONT_LEFT_BIT | DD_FRONT_RIGHT_BIT)) &&
+       xmesa->xm_buffer->gl_buffer->UseSoftwareAlphaBuffers &&
+       ctx->Color.ColorMask[ACOMP]) {
+      _mesa_clear_alpha_buffers(ctx);
+   }
+
    /* we can't handle color or index masking */
    if (*colorMask == 0xffffffff && ctx->Color.IndexMask == 0xffffffff) {
       if (mask & DD_FRONT_LEFT_BIT) {