init accum buffer fields in _mesa_update_framebuffer_visual()
authorBrian Paul <brian.paul@tungstengraphics.com>
Mon, 11 Sep 2006 15:04:23 +0000 (15:04 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Mon, 11 Sep 2006 15:04:23 +0000 (15:04 +0000)
src/mesa/main/framebuffer.c

index 612746adefedc95d1a9aad503466e90f51cf9a32..d0dbbbad02b2d06c2bb5089ed55e17a335cb63b0 100644 (file)
@@ -427,7 +427,8 @@ _mesa_update_draw_buffer_bounds(GLcontext *ctx)
  * etc. are satisfied by the fields of ctx->DrawBuffer->Visual.  These can
  * change depending on the renderbuffer bindings.  This function updates
  * the given framebuffer's Visual from the current renderbuffer bindings.
- * This is only intended for user-created framebuffers.
+ *
+ * This may apply to user-created framebuffers or window system framebuffers.
  *
  * Also note: ctx->DrawBuffer->Visual.depthBits might not equal
  * ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer.DepthBits.
@@ -483,6 +484,18 @@ _mesa_update_framebuffer_visual(struct gl_framebuffer *fb)
          = fb->Attachment[BUFFER_STENCIL].Renderbuffer->StencilBits;
    }
 
+   if (fb->Attachment[BUFFER_ACCUM].Renderbuffer) {
+      fb->Visual.haveAccumBuffer = GL_TRUE;
+      fb->Visual.accumRedBits
+         = fb->Attachment[BUFFER_DEPTH].Renderbuffer->RedBits;
+      fb->Visual.accumGreenBits
+         = fb->Attachment[BUFFER_DEPTH].Renderbuffer->GreenBits;
+      fb->Visual.accumBlueBits
+         = fb->Attachment[BUFFER_DEPTH].Renderbuffer->BlueBits;
+      fb->Visual.accumAlphaBits
+         = fb->Attachment[BUFFER_DEPTH].Renderbuffer->AlphaBits;
+   }
+
    compute_depth_max(fb);
 }