mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
gallium: fix multi drawbuffer fb state
This commit is contained in:
parent
b54225ccd6
commit
e4b3c13d7a
1 changed files with 9 additions and 6 deletions
|
|
@ -48,7 +48,7 @@ update_framebuffer_state( struct st_context *st )
|
|||
struct pipe_framebuffer_state *framebuffer = &st->state.framebuffer;
|
||||
struct gl_framebuffer *fb = st->ctx->DrawBuffer;
|
||||
struct st_renderbuffer *strb;
|
||||
GLuint i;
|
||||
GLuint i, j;
|
||||
|
||||
memset(framebuffer, 0, sizeof(*framebuffer));
|
||||
|
||||
|
|
@ -58,11 +58,14 @@ update_framebuffer_state( struct st_context *st )
|
|||
/* Examine Mesa's ctx->DrawBuffer->_ColorDrawBuffers state
|
||||
* to determine which surfaces to draw to
|
||||
*/
|
||||
framebuffer->num_cbufs = fb->_NumColorDrawBuffers[0];
|
||||
for (i = 0; i < framebuffer->num_cbufs; i++) {
|
||||
strb = st_renderbuffer(fb->_ColorDrawBuffers[0][i]);
|
||||
assert(strb->surface);
|
||||
framebuffer->cbufs[i] = strb->surface;
|
||||
framebuffer->num_cbufs = 0;
|
||||
for (j = 0; j < MAX_DRAW_BUFFERS; j++) {
|
||||
for (i = 0; i < fb->_NumColorDrawBuffers[j]; i++) {
|
||||
strb = st_renderbuffer(fb->_ColorDrawBuffers[j][i]);
|
||||
assert(strb->surface);
|
||||
framebuffer->cbufs[framebuffer->num_cbufs] = strb->surface;
|
||||
framebuffer->num_cbufs++;
|
||||
}
|
||||
}
|
||||
|
||||
strb = st_renderbuffer(fb->Attachment[BUFFER_DEPTH].Renderbuffer);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue