diff options
author | Brian Paul <brianp@vmware.com> | 2009-12-29 23:04:27 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2009-12-29 23:04:27 -0700 |
commit | 1677d5c0aebe8edb54aa3236294acede536013f3 (patch) | |
tree | d813e2d6ed3d20ad57f19fcdb2f05f357caf5b45 /src/mesa/main/attrib.c | |
parent | 36092fa2d82b9f31b37260d97a2c671e49c7579a (diff) |
mesa: fix-up blend enable/disable code in _mesa_PopAttrib()
Diffstat (limited to 'src/mesa/main/attrib.c')
-rw-r--r-- | src/mesa/main/attrib.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 886939f0ee..f5b77e82a9 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -500,9 +500,14 @@ pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable) TEST_AND_UPDATE(ctx->Color.AlphaEnabled, enable->AlphaTest, GL_ALPHA_TEST); if (ctx->Color.BlendEnabled != enable->Blend) { - GLuint i; - for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) { - _mesa_set_enablei(ctx, GL_BLEND, i, (enable->Blend >> i) & 1); + if (ctx->Extensions.EXT_draw_buffers2) { + GLuint i; + for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) { + _mesa_set_enablei(ctx, GL_BLEND, i, (enable->Blend >> i) & 1); + } + } + else { + _mesa_set_enable(ctx, GL_BLEND, (enable->Blend & 1)); } } @@ -967,10 +972,15 @@ _mesa_PopAttrib(void) _mesa_set_enable(ctx, GL_ALPHA_TEST, color->AlphaEnabled); _mesa_AlphaFunc(color->AlphaFunc, color->AlphaRef); if (ctx->Color.BlendEnabled != color->BlendEnabled) { - GLuint i; - for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) { - _mesa_set_enablei(ctx, GL_BLEND, i, - (color->BlendEnabled >> i) & 1); + if (ctx->Extensions.EXT_draw_buffers2) { + GLuint i; + for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) { + _mesa_set_enablei(ctx, GL_BLEND, i, + (color->BlendEnabled >> i) & 1); + } + } + else { + _mesa_set_enable(ctx, GL_BLEND, (color->BlendEnabled & 1)); } } _mesa_BlendFuncSeparateEXT(color->BlendSrcRGB, |