From ff73c783cc47361ff0dd819c82d067b4b85870dd Mon Sep 17 00:00:00 2001 From: Brian Date: Sun, 6 Jan 2008 10:43:20 -0700 Subject: Simplify ctx->_NumColorDrawBuffers, _ColorDrawBuffers and fix bug 13835. These fields are no longer indexed by shader output. Now, we just have a simple array of renderbuffer pointers. If the shader writes to gl_FragData[i], send those colors to the N _ColorDrawBuffers. Otherwise, replicate the single gl_FragColor (or the fixed-function color) to the N _ColorDrawBuffers. A few more changes and simplifications can follow from this... --- src/mesa/drivers/dri/nouveau/nouveau_driver.c | 12 ++++++------ src/mesa/drivers/dri/nouveau/nouveau_fbo.c | 5 ++--- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'src/mesa/drivers/dri/nouveau') diff --git a/src/mesa/drivers/dri/nouveau/nouveau_driver.c b/src/mesa/drivers/dri/nouveau/nouveau_driver.c index 8b76779002..1135817fe9 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_driver.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_driver.c @@ -149,12 +149,12 @@ static void nouveauClear( GLcontext *ctx, GLbitfield mask ) clear_value = PACK_COLOR_8888(c[3],c[0],c[1],c[2]); if (ctx->DrawBuffer) { - /* FIXME: find correct color buffer, instead of [0][0] */ - if (ctx->DrawBuffer->_ColorDrawBuffers[0][0]) { - color_bits = ctx->DrawBuffer->_ColorDrawBuffers[0][0]->RedBits; - color_bits += ctx->DrawBuffer->_ColorDrawBuffers[0][0]->GreenBits; - color_bits += ctx->DrawBuffer->_ColorDrawBuffers[0][0]->BlueBits; - color_bits += ctx->DrawBuffer->_ColorDrawBuffers[0][0]->AlphaBits; + /* FIXME: find correct color buffer, instead of [0] */ + if (ctx->DrawBuffer->_ColorDrawBuffers[0]) { + color_bits = ctx->DrawBuffer->_ColorDrawBuffers[0]->RedBits; + color_bits += ctx->DrawBuffer->_ColorDrawBuffers[0]->GreenBits; + color_bits += ctx->DrawBuffer->_ColorDrawBuffers[0]->BlueBits; + color_bits += ctx->DrawBuffer->_ColorDrawBuffers[0]->AlphaBits; } } diff --git a/src/mesa/drivers/dri/nouveau/nouveau_fbo.c b/src/mesa/drivers/dri/nouveau/nouveau_fbo.c index cc3da8b9bd..23525509d1 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_fbo.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_fbo.c @@ -177,8 +177,7 @@ nouveau_window_moved(GLcontext * ctx) nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx); nouveau_renderbuffer_t *nrb; - nrb = (nouveau_renderbuffer_t *) - ctx->DrawBuffer->_ColorDrawBuffers[0][0]; + nrb = (nouveau_renderbuffer_t *) ctx->DrawBuffer->_ColorDrawBuffers[0]; if (!nrb) return; @@ -204,7 +203,7 @@ nouveau_build_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) _mesa_update_framebuffer(ctx); _mesa_update_draw_buffer_bounds(ctx); - color[0] = (nouveau_renderbuffer_t *) fb->_ColorDrawBuffers[0][0]; + color[0] = (nouveau_renderbuffer_t *) fb->_ColorDrawBuffers[0]; if (fb->_DepthBuffer && fb->_DepthBuffer->Wrapped) depth = (nouveau_renderbuffer_t *) fb->_DepthBuffer->Wrapped; else -- cgit v1.2.3