From 1eddbe8e1b89bbd73e7401168268862b865a6ddb Mon Sep 17 00:00:00 2001 From: Neil Roberts Date: Wed, 12 May 2010 18:57:52 +0100 Subject: [PATCH] cogl-material: Set the blend equation even if blend funcs are the same Previously it would only try to set the blend equation if the RGB and alpha blending functions were different. However it's completely valid to use a non-standard blending function when the functions are the same. This patch moves the blending equation to outside the if statement. --- cogl/cogl-material.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/cogl/cogl-material.c b/cogl/cogl-material.c index 8f5e414b5..5c6b93b5a 100644 --- a/cogl/cogl-material.c +++ b/cogl/cogl-material.c @@ -1710,6 +1710,13 @@ _cogl_material_flush_base_gl_state (CoglMaterial *material, #endif #ifndef HAVE_COGL_GLES /* GLES 1 only has glBlendFunc */ + if (have_blend_equation_seperate && + material->blend_equation_rgb != material->blend_equation_alpha) + GE (glBlendEquationSeparate (material->blend_equation_rgb, + material->blend_equation_alpha)); + else + GE (glBlendEquation (material->blend_equation_rgb)); + if (blend_factor_uses_constant (material->blend_src_factor_rgb) || blend_factor_uses_constant (material->blend_src_factor_alpha) || blend_factor_uses_constant (material->blend_dst_factor_rgb) || @@ -1723,23 +1730,14 @@ _cogl_material_flush_base_gl_state (CoglMaterial *material, (material->blend_src_factor_rgb != material->blend_src_factor_alpha || (material->blend_src_factor_rgb != material->blend_src_factor_alpha))) - { - if (have_blend_equation_seperate && - material->blend_equation_rgb != material->blend_equation_alpha) - GE (glBlendEquationSeparate (material->blend_equation_rgb, - material->blend_equation_alpha)); - else - GE (glBlendEquation (material->blend_equation_rgb)); - - GE (glBlendFuncSeparate (material->blend_src_factor_rgb, - material->blend_dst_factor_rgb, - material->blend_src_factor_alpha, - material->blend_dst_factor_alpha)); - } + GE (glBlendFuncSeparate (material->blend_src_factor_rgb, + material->blend_dst_factor_rgb, + material->blend_src_factor_alpha, + material->blend_dst_factor_alpha)); else #endif - GE (glBlendFunc (material->blend_src_factor_rgb, - material->blend_dst_factor_rgb)); + GE (glBlendFunc (material->blend_src_factor_rgb, + material->blend_dst_factor_rgb)); } }