diff options
author | Dylan Noblesmith <nobled@dreamwidth.org> | 2013-07-19 21:57:18 +0000 |
---|---|---|
committer | Dylan Noblesmith <nobled@dreamwidth.org> | 2013-10-08 17:38:00 +0000 |
commit | 6ede7ba0bc5043af7a912d011bbfa93fbdd3e826 (patch) | |
tree | f86a38a869feef0285934eecabf93464011a38b2 | |
parent | 8cb4b2d006a8054bfa2212a978b629be86970b5a (diff) | |
download | mesa-6ede7ba0bc5043af7a912d011bbfa93fbdd3e826.tar.gz |
mesa: don't hardcode ctx->DrawBuffer in draw_buffer_enum_to_bitmask
-rw-r--r-- | src/mesa/main/buffers.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index 2bdbf41be5d..ed7abef9db6 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -93,7 +93,8 @@ supported_buffer_bitmask(const struct gl_context *ctx, * GL_FRONT_AND_BACK), return the corresponding bitmask of BUFFER_BIT_* flags. */ static GLbitfield -draw_buffer_enum_to_bitmask(const struct gl_context *ctx, GLenum buffer) +draw_buffer_enum_to_bitmask(const struct gl_context *ctx, GLenum buffer, + struct gl_framebuffer *fb) { switch (buffer) { case GL_NONE: @@ -112,7 +113,7 @@ draw_buffer_enum_to_bitmask(const struct gl_context *ctx, GLenum buffer) * Since there is no stereo rendering in ES 3.0, only return the * LEFT bits. This also satisfies the "n must be 1" requirement. */ - if (ctx->DrawBuffer->Visual.doubleBufferMode) + if (fb->Visual.doubleBufferMode) return BUFFER_BIT_BACK_LEFT; return BUFFER_BIT_FRONT_LEFT; } @@ -256,7 +257,7 @@ _mesa_DrawBuffer(GLenum buffer) else { const GLbitfield supportedMask = supported_buffer_bitmask(ctx, ctx->DrawBuffer); - destMask = draw_buffer_enum_to_bitmask(ctx, buffer); + destMask = draw_buffer_enum_to_bitmask(ctx, buffer, ctx->DrawBuffer); if (destMask == BAD_MASK) { /* totally bogus buffer */ _mesa_error(ctx, GL_INVALID_ENUM, @@ -349,7 +350,8 @@ _mesa_DrawBuffers(GLsizei n, const GLenum *buffers) return; } - destMask[output] = draw_buffer_enum_to_bitmask(ctx, buffers[output]); + destMask[output] = draw_buffer_enum_to_bitmask(ctx, buffers[output], + ctx->DrawBuffer); /* From the OpenGL 3.0 specification, page 258: * "Each buffer listed in bufs must be one of the values from tables @@ -479,7 +481,7 @@ _mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers, const GLbitfield supportedMask = supported_buffer_bitmask(ctx, fb); GLuint output; for (output = 0; output < n; output++) { - mask[output] = draw_buffer_enum_to_bitmask(ctx, buffers[output]); + mask[output] = draw_buffer_enum_to_bitmask(ctx, buffers[output], fb); ASSERT(mask[output] != BAD_MASK); mask[output] &= supportedMask; } |