summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_atom_framebuffer.c
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-06-20 17:20:02 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-06-20 17:20:02 -0600
commitecfa794037e8be351ecfec0229d1e3b1677ae369 (patch)
tree926451791d253e4059182e41619ee77306e92413 /src/mesa/state_tracker/st_atom_framebuffer.c
parent3c0790ca9254e20e273f4f3023750b456260a499 (diff)
checkpoint: implement z/depth testing
Diffstat (limited to 'src/mesa/state_tracker/st_atom_framebuffer.c')
-rw-r--r--src/mesa/state_tracker/st_atom_framebuffer.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_atom_framebuffer.c b/src/mesa/state_tracker/st_atom_framebuffer.c
index f203e1df60..8e98cbc2df 100644
--- a/src/mesa/state_tracker/st_atom_framebuffer.c
+++ b/src/mesa/state_tracker/st_atom_framebuffer.c
@@ -39,6 +39,12 @@
extern struct pipe_surface *
xmesa_get_color_surface(GLcontext *ctx, GLuint i);
+extern struct pipe_surface *
+xmesa_get_z_surface(GLcontext *ctx, GLuint i);
+
+extern struct pipe_surface *
+xmesa_get_stencil_surface(GLcontext *ctx, GLuint i);
+
/**
* Update framebuffer state (color, depth, stencil, etc. buffers)
@@ -58,6 +64,14 @@ update_framebuffer_state( struct st_context *st )
framebuffer.cbufs[i] = xmesa_get_color_surface(st->ctx, i);
}
+ if (st->ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer) {
+ framebuffer.zbuf = xmesa_get_z_surface(st->ctx, i);
+ }
+
+ if (st->ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Renderbuffer) {
+ framebuffer.sbuf = xmesa_get_stencil_surface(st->ctx, i);
+ }
+
if (memcmp(&framebuffer, &st->state.framebuffer, sizeof(framebuffer)) != 0) {
st->state.framebuffer = framebuffer;
st->pipe->set_framebuffer_state( st->pipe, &framebuffer );