Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed computation of the alpha channel in sf::BlendAdd

  • Loading branch information...
commit 38da3f4338e3b2b11e3dff2726a62104cf27fa73 1 parent 2285e3d
Laurent Gomila authored
Showing with 6 additions and 2 deletions.
  1. +6 −2 src/SFML/Graphics/RenderTarget.cpp
8 src/SFML/Graphics/RenderTarget.cpp
View
@@ -344,9 +344,10 @@ void RenderTarget::applyBlendMode(BlendMode mode)
{
switch (mode)
{
- // Alpha blending
// glBlendFuncSeparateEXT is used when available to avoid an incorrect alpha value when the target
// is a RenderTexture -- in this case the alpha value must be written directly to the target buffer
+
+ // Alpha blending
default :
case BlendAlpha :
if (GLEW_EXT_blend_func_separate)
@@ -357,7 +358,10 @@ void RenderTarget::applyBlendMode(BlendMode mode)
// Additive blending
case BlendAdd :
- glCheck(glBlendFunc(GL_SRC_ALPHA, GL_ONE));
+ if (GLEW_EXT_blend_func_separate)
+ glCheck(glBlendFuncSeparateEXT(GL_SRC_ALPHA, GL_ONE, GL_ONE, GL_ONE));
+ else
+ glCheck(glBlendFunc(GL_SRC_ALPHA, GL_ONE));
break;
// Multiplicative blending
Please sign in to comment.
Something went wrong with that request. Please try again.