|
|
|
@ -309,27 +309,16 @@ void OpenGLState::ApplyGlobalBlending() const { |
|
|
|
if (!updated.enabled) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (updated.separate_alpha) { |
|
|
|
if (blend_changed || updated.src_rgb_func != current.src_rgb_func || |
|
|
|
updated.dst_rgb_func != current.dst_rgb_func || |
|
|
|
updated.src_a_func != current.src_a_func || updated.dst_a_func != current.dst_a_func) { |
|
|
|
glBlendFuncSeparate(updated.src_rgb_func, updated.dst_rgb_func, updated.src_a_func, |
|
|
|
updated.dst_a_func); |
|
|
|
} |
|
|
|
|
|
|
|
if (blend_changed || updated.rgb_equation != current.rgb_equation || |
|
|
|
updated.a_equation != current.a_equation) { |
|
|
|
glBlendEquationSeparate(updated.rgb_equation, updated.a_equation); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (blend_changed || updated.src_rgb_func != current.src_rgb_func || |
|
|
|
updated.dst_rgb_func != current.dst_rgb_func) { |
|
|
|
glBlendFunc(updated.src_rgb_func, updated.dst_rgb_func); |
|
|
|
} |
|
|
|
if (blend_changed || updated.src_rgb_func != current.src_rgb_func || |
|
|
|
updated.dst_rgb_func != current.dst_rgb_func || updated.src_a_func != current.src_a_func || |
|
|
|
updated.dst_a_func != current.dst_a_func) { |
|
|
|
glBlendFuncSeparate(updated.src_rgb_func, updated.dst_rgb_func, updated.src_a_func, |
|
|
|
updated.dst_a_func); |
|
|
|
} |
|
|
|
|
|
|
|
if (blend_changed || updated.rgb_equation != current.rgb_equation) { |
|
|
|
glBlendEquation(updated.rgb_equation); |
|
|
|
} |
|
|
|
if (blend_changed || updated.rgb_equation != current.rgb_equation || |
|
|
|
updated.a_equation != current.a_equation) { |
|
|
|
glBlendEquationSeparate(updated.rgb_equation, updated.a_equation); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -347,29 +336,17 @@ void OpenGLState::ApplyTargetBlending(std::size_t target, bool force) const { |
|
|
|
if (!updated.enabled) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (updated.separate_alpha) { |
|
|
|
if (blend_changed || updated.src_rgb_func != current.src_rgb_func || |
|
|
|
updated.dst_rgb_func != current.dst_rgb_func || |
|
|
|
updated.src_a_func != current.src_a_func || updated.dst_a_func != current.dst_a_func) { |
|
|
|
glBlendFuncSeparateiARB(static_cast<GLuint>(target), updated.src_rgb_func, |
|
|
|
updated.dst_rgb_func, updated.src_a_func, updated.dst_a_func); |
|
|
|
} |
|
|
|
|
|
|
|
if (blend_changed || updated.rgb_equation != current.rgb_equation || |
|
|
|
updated.a_equation != current.a_equation) { |
|
|
|
glBlendEquationSeparateiARB(static_cast<GLuint>(target), updated.rgb_equation, |
|
|
|
updated.a_equation); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (blend_changed || updated.src_rgb_func != current.src_rgb_func || |
|
|
|
updated.dst_rgb_func != current.dst_rgb_func) { |
|
|
|
glBlendFunciARB(static_cast<GLuint>(target), updated.src_rgb_func, |
|
|
|
updated.dst_rgb_func); |
|
|
|
} |
|
|
|
if (blend_changed || updated.src_rgb_func != current.src_rgb_func || |
|
|
|
updated.dst_rgb_func != current.dst_rgb_func || updated.src_a_func != current.src_a_func || |
|
|
|
updated.dst_a_func != current.dst_a_func) { |
|
|
|
glBlendFuncSeparateiARB(static_cast<GLuint>(target), updated.src_rgb_func, |
|
|
|
updated.dst_rgb_func, updated.src_a_func, updated.dst_a_func); |
|
|
|
} |
|
|
|
|
|
|
|
if (blend_changed || updated.rgb_equation != current.rgb_equation) { |
|
|
|
glBlendEquationiARB(static_cast<GLuint>(target), updated.rgb_equation); |
|
|
|
} |
|
|
|
if (blend_changed || updated.rgb_equation != current.rgb_equation || |
|
|
|
updated.a_equation != current.a_equation) { |
|
|
|
glBlendEquationSeparateiARB(static_cast<GLuint>(target), updated.rgb_equation, |
|
|
|
updated.a_equation); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|