diff options
author | Samuel Pitoiset <[email protected]> | 2017-07-17 22:31:24 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-07-31 13:53:39 +0200 |
commit | 474f4b343be9b50fbe61d5f92676a9913197a6f5 (patch) | |
tree | 17e00668a985b9ca3401dabc219aeabed1f4ed6f /src/mesa | |
parent | 6c15260ecc45f8418457eb1f93ae90ba71926fae (diff) |
mesa: add blend_equationi() helper
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/main/blend.c | 29 |
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); } |