diff --git a/impeller/renderer/backend/gles/render_pass_gles.cc b/impeller/renderer/backend/gles/render_pass_gles.cc index 3f1519950991a..422ab1fc5932c 100644 --- a/impeller/renderer/backend/gles/render_pass_gles.cc +++ b/impeller/renderer/backend/gles/render_pass_gles.cc @@ -38,27 +38,27 @@ void RenderPassGLES::OnSetLabel(std::string label) { void ConfigureBlending(const ProcTableGLES& gl, const ColorAttachmentDescriptor* color) { - if (!color->blending_enabled) { + if (color->blending_enabled) { + gl.Enable(GL_BLEND); + gl.BlendFuncSeparate( + ToBlendFactor(color->src_color_blend_factor), // src color + ToBlendFactor(color->dst_color_blend_factor), // dst color + ToBlendFactor(color->src_alpha_blend_factor), // src alpha + ToBlendFactor(color->dst_alpha_blend_factor) // dst alpha + ); + gl.BlendEquationSeparate( + ToBlendOperation(color->color_blend_op), // mode color + ToBlendOperation(color->alpha_blend_op) // mode alpha + ); + } else { gl.Disable(GL_BLEND); - return; } - gl.Enable(GL_BLEND); - gl.BlendFuncSeparate( - ToBlendFactor(color->src_color_blend_factor), // src color - ToBlendFactor(color->dst_color_blend_factor), // dst color - ToBlendFactor(color->src_alpha_blend_factor), // src alpha - ToBlendFactor(color->dst_alpha_blend_factor) // dst alpha - ); - gl.BlendEquationSeparate( - ToBlendOperation(color->color_blend_op), // mode color - ToBlendOperation(color->alpha_blend_op) // mode alpha - ); { const auto is_set = [](std::underlying_type_t mask, ColorWriteMask check) -> GLboolean { using RawType = decltype(mask); - return (static_cast(mask) & static_cast(mask)) + return (static_cast(mask) & static_cast(check)) ? GL_TRUE : GL_FALSE; };