use new st_clear_accum_buffer() function
authorBrian <brian.paul@tungstengraphics.com>
Wed, 17 Oct 2007 00:45:42 +0000 (18:45 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Wed, 17 Oct 2007 00:45:42 +0000 (18:45 -0600)
src/mesa/state_tracker/st_cb_clear.c

index a854378b18f5df907aa78a8b17e9578c0940fdbd..4f269ed3f7ad538da6137524a75f8734528b8d92 100644 (file)
@@ -37,6 +37,7 @@
 #include "st_atom.h"
 #include "st_cache.h"
 #include "st_context.h"
+#include "st_cb_accum.h"
 #include "st_cb_clear.h"
 #include "st_cb_fbo.h"
 #include "st_draw.h"
@@ -461,28 +462,6 @@ clear_color_buffer(GLcontext *ctx, struct gl_renderbuffer *rb)
 }
 
 
-static void
-clear_accum_buffer(GLcontext *ctx, struct gl_renderbuffer *rb)
-{
-   struct st_renderbuffer *strb = st_renderbuffer(rb);
-
-   if (!ctx->Scissor.Enabled) {
-      /* clear whole buffer w/out masking */
-      GLuint clearValue
-         = color_value(strb->surface->format, ctx->Accum.ClearColor);
-      /* Note that clearValue is 32 bits but the accum buffer will
-       * typically be 64bpp...
-       */
-      ctx->st->pipe->clear(ctx->st->pipe, strb->surface, clearValue);
-   }
-   else {
-      /* scissoring */
-      /* XXX point framebuffer.cbufs[0] at the accum buffer */
-      clear_with_quad(ctx, GL_TRUE, GL_FALSE, GL_FALSE);
-   }
-}
-
-
 static void
 clear_depth_buffer(GLcontext *ctx, struct gl_renderbuffer *rb)
 {
@@ -605,8 +584,8 @@ static void st_clear(GLcontext *ctx, GLbitfield mask)
    }
 
    if (mask & BUFFER_BIT_ACCUM) {
-      clear_accum_buffer(ctx,
-                     ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer);
+      st_clear_accum_buffer(ctx,
+                       ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer);
    }
 
    if ((mask & BUFFER_BITS_DS) == BUFFER_BITS_DS && depthRb == stencilRb) {