From e6711b28373c3c60b197526d9ae6fd514b9f1e6b Mon Sep 17 00:00:00 2001 From: vrld Date: Fri, 12 Oct 2012 13:52:16 +0200 Subject: [PATCH] Fix multiplicative blend mode. --- src/modules/graphics/opengl/Graphics.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/graphics/opengl/Graphics.cpp b/src/modules/graphics/opengl/Graphics.cpp index e518e544d..ce49a78d8 100644 --- a/src/modules/graphics/opengl/Graphics.cpp +++ b/src/modules/graphics/opengl/Graphics.cpp @@ -546,7 +546,7 @@ void Graphics::setBlendMode(Graphics::BlendMode mode) if (mode == BLEND_ALPHA) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); else if (mode == BLEND_MULTIPLICATIVE) - glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); + glBlendFunc(GL_DST_COLOR, GL_ZERO); else if (mode == BLEND_PREMULTIPLIED) glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); else // mode == BLEND_ADDITIVE || mode == BLEND_SUBTRACTIVE @@ -585,7 +585,7 @@ Graphics::BlendMode Graphics::getBlendMode() return BLEND_ADDITIVE; else if (src == GL_SRC_ALPHA && dst == GL_ONE_MINUS_SRC_ALPHA) // && equation == GL_FUNC_ADD return BLEND_ALPHA; - else if (src == GL_DST_COLOR && dst == GL_ONE_MINUS_SRC_ALPHA) // && equation == GL_FUNC_ADD + else if (src == GL_DST_COLOR && dst == GL_ZERO) // && equation == GL_FUNC_ADD return BLEND_MULTIPLICATIVE; else if (src == GL_ONE && dst == GL_ONE_MINUS_SRC_ALPHA) // && equation == GL_FUNC_ADD return BLEND_PREMULTIPLIED;