diff options
author | Brian <brian.paul@tungstengraphics.com> | 2008-01-06 10:43:20 -0700 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2008-01-06 10:43:20 -0700 |
commit | ff73c783cc47361ff0dd819c82d067b4b85870dd (patch) | |
tree | 07706ff913e0db3164ab62eba430938f72efae85 /src/mesa/drivers/dri/nouveau | |
parent | 9f6022d0567dc1288888212d7128acc48795b306 (diff) |
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...
Diffstat (limited to 'src/mesa/drivers/dri/nouveau')
-rw-r--r-- | src/mesa/drivers/dri/nouveau/nouveau_driver.c | 12 | ||||
-rw-r--r-- | src/mesa/drivers/dri/nouveau/nouveau_fbo.c | 5 |
2 files changed, 8 insertions, 9 deletions
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 |