summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_atom_framebuffer.c
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-07-30 17:16:38 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-07-30 17:16:38 -0600
commitf884f6886eb043ea2e2e2b5471afbc58639f3a81 (patch)
tree216399d87572b7f30696835c434904dbe5fd0929 /src/mesa/state_tracker/st_atom_framebuffer.c
parent7baa0865b114776cc1672c5e97e63c282e25285f (diff)
parent4576d754c98e3fb5d413e294d48fb70a893defcf (diff)
Merge branch 'softpipe_0_1_branch' of git+ssh://brianp@git.freedesktop.org/git/mesa/mesa into softpipe_0_1_branch
Diffstat (limited to 'src/mesa/state_tracker/st_atom_framebuffer.c')
-rw-r--r--src/mesa/state_tracker/st_atom_framebuffer.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/mesa/state_tracker/st_atom_framebuffer.c b/src/mesa/state_tracker/st_atom_framebuffer.c
index 595f390b28..f5e3ce8b67 100644
--- a/src/mesa/state_tracker/st_atom_framebuffer.c
+++ b/src/mesa/state_tracker/st_atom_framebuffer.c
@@ -54,22 +54,31 @@ static void
update_framebuffer_state( struct st_context *st )
{
struct pipe_framebuffer_state framebuffer;
+ struct gl_renderbuffer *rb;
GLuint i;
+ memset(&framebuffer, 0, sizeof(framebuffer));
+
/* Examine Mesa's ctx->DrawBuffer->_ColorDrawBuffers state
* to determine which surfaces to draw to
*/
framebuffer.num_cbufs = st->ctx->DrawBuffer->_NumColorDrawBuffers[0];
for (i = 0; i < framebuffer.num_cbufs; i++) {
- framebuffer.cbufs[i] = xmesa_get_color_surface(st->ctx, i);
+ rb = st->ctx->DrawBuffer->_ColorDrawBuffers[0][i];
+ assert(rb->surface);
+ framebuffer.cbufs[i] = rb->surface;
}
- if (st->ctx->DrawBuffer->_DepthBuffer/*Attachment[BUFFER_DEPTH].Renderbuffer*/) {
- framebuffer.zbuf = xmesa_get_z_surface(st->ctx);
+ rb = st->ctx->DrawBuffer->_DepthBuffer;
+ if (rb) {
+ assert(rb->surface);
+ framebuffer.zbuf = rb->Wrapped->surface;
}
- if (st->ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Renderbuffer) {
- framebuffer.sbuf = xmesa_get_stencil_surface(st->ctx);
+ rb = st->ctx->DrawBuffer->_StencilBuffer;
+ if (rb) {
+ assert(rb->surface);
+ framebuffer.sbuf = rb->Wrapped->surface;
}
if (memcmp(&framebuffer, &st->state.framebuffer, sizeof(framebuffer)) != 0) {