diff options
author | Brian <[email protected]> | 2008-01-06 10:43:20 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2008-01-06 10:43:20 -0700 |
commit | ff73c783cc47361ff0dd819c82d067b4b85870dd (patch) | |
tree | 07706ff913e0db3164ab62eba430938f72efae85 /src/mesa/swrast/s_buffers.c | |
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/swrast/s_buffers.c')
-rw-r--r-- | src/mesa/swrast/s_buffers.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mesa/swrast/s_buffers.c b/src/mesa/swrast/s_buffers.c index 90a56284c51..b74c4ab1c8c 100644 --- a/src/mesa/swrast/s_buffers.c +++ b/src/mesa/swrast/s_buffers.c @@ -251,7 +251,7 @@ static void clear_color_buffers(GLcontext *ctx) { GLboolean masking; - GLuint i; + GLuint buf; if (ctx->Visual.rgbMode) { if (ctx->Color.ColorMask[0] && @@ -265,7 +265,7 @@ clear_color_buffers(GLcontext *ctx) } } else { - struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0][0]; + struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0]; const GLuint indexBits = (1 << rb->IndexBits) - 1; if ((ctx->Color.IndexMask & indexBits) == indexBits) { masking = GL_FALSE; @@ -275,8 +275,8 @@ clear_color_buffers(GLcontext *ctx) } } - for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers[0]; i++) { - struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0][i]; + for (buf = 0; buf < ctx->DrawBuffer->_NumColorDrawBuffers; buf++) { + struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[buf]; if (ctx->Visual.rgbMode) { if (masking) { clear_rgba_buffer_with_masking(ctx, rb); @@ -331,7 +331,7 @@ _swrast_Clear(GLcontext *ctx, GLbitfield buffers) /* do software clearing here */ if (buffers) { - if (buffers & ctx->DrawBuffer->_ColorDrawBufferMask[0]) { + if (buffers & ctx->DrawBuffer->_NumColorDrawBuffers > 0) { clear_color_buffers(ctx); } if (buffers & BUFFER_BIT_DEPTH) { |