From 7caa10160dce6b7d8001421331133c4a00dfde52 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. --- clutter/cogl/cogl/cogl-material.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/clutter/cogl/cogl/cogl-material.c b/clutter/cogl/cogl/cogl-material.c index 8f5e414..5c6b93b 100644 --- a/clutter/cogl/cogl/cogl-material.c +++ b/clutter/cogl/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)); } } -- 2.7.4