summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/main/blend.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c
index 32656283115..84029ac6be9 100644
--- a/src/mesa/main/blend.c
+++ b/src/mesa/main/blend.c
@@ -552,6 +552,23 @@ _mesa_BlendEquation( GLenum mode )
/**
* Set blend equation for one color buffer/target.
*/
+static void
+blend_equationi(struct gl_context *ctx, GLuint buf, GLenum mode,
+ enum gl_advanced_blend_mode advanced_mode)
+{
+ if (ctx->Color.Blend[buf].EquationRGB == mode &&
+ ctx->Color.Blend[buf].EquationA == mode)
+ return; /* no change */
+
+ _mesa_flush_vertices_for_blend_state(ctx);
+ ctx->Color.Blend[buf].EquationRGB = mode;
+ ctx->Color.Blend[buf].EquationA = mode;
+ ctx->Color._BlendEquationPerBuffer = GL_TRUE;
+
+ if (buf == 0)
+ ctx->Color._AdvancedBlendMode = advanced_mode;
+}
+
void GLAPIENTRY
_mesa_BlendEquationiARB(GLuint buf, GLenum mode)
{
@@ -573,17 +590,7 @@ _mesa_BlendEquationiARB(GLuint buf, GLenum mode)
return;
}
- if (ctx->Color.Blend[buf].EquationRGB == mode &&
- ctx->Color.Blend[buf].EquationA == mode)
- return; /* no change */
-
- _mesa_flush_vertices_for_blend_state(ctx);
- ctx->Color.Blend[buf].EquationRGB = mode;
- ctx->Color.Blend[buf].EquationA = mode;
- ctx->Color._BlendEquationPerBuffer = GL_TRUE;
-
- if (buf == 0)
- ctx->Color._AdvancedBlendMode = advanced_mode;
+ blend_equationi(ctx, buf, mode, advanced_mode);
}