From 915e12321c6cfb298015a4bf7e8ef0bcf9468024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joni=20V=C3=A4h=C3=A4m=C3=A4ki?= Date: Mon, 18 Aug 2014 13:08:35 +0300 Subject: [PATCH] GRIM: Enable alpha test when drawing sprites. --- engines/grim/gfx_opengl.cpp | 7 +++++-- engines/grim/gfx_opengl_shaders.cpp | 6 ++++-- engines/grim/gfx_tinygl.cpp | 7 +++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/engines/grim/gfx_opengl.cpp b/engines/grim/gfx_opengl.cpp index 7604f0c9adc..d9ba43bb64b 100644 --- a/engines/grim/gfx_opengl.cpp +++ b/engines/grim/gfx_opengl.cpp @@ -860,9 +860,12 @@ void GfxOpenGL::drawSprite(const Sprite *sprite) { glDisable(GL_LIGHTING); - if (sprite->_flags2 & Sprite::AlphaTest) { + if (g_grim->getGameType() == GType_GRIM) { glEnable(GL_ALPHA_TEST); - glAlphaFunc(GL_GEQUAL, g_grim->getGameType() == GType_MONKEY4 ? 0.1f : 0.5f); + glAlphaFunc(GL_GEQUAL, 0.5f); + } else if (sprite->_flags2 & Sprite::AlphaTest) { + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GEQUAL, 0.1f); } else { glDisable(GL_ALPHA_TEST); } diff --git a/engines/grim/gfx_opengl_shaders.cpp b/engines/grim/gfx_opengl_shaders.cpp index 5958a5399a9..86e68e18e6e 100644 --- a/engines/grim/gfx_opengl_shaders.cpp +++ b/engines/grim/gfx_opengl_shaders.cpp @@ -1001,8 +1001,10 @@ void GfxOpenGLS::drawSprite(const Sprite *sprite) { _spriteProgram->setUniform("textured", GL_TRUE); _spriteProgram->setUniform("isBillboard", GL_TRUE); _spriteProgram->setUniform("lightsEnabled", false); - if (sprite->_flags2 & Sprite::AlphaTest) { - _spriteProgram->setUniform1f("alphaRef", g_grim->getGameType() == GType_MONKEY4 ? 0.1f : 0.5f); + if (g_grim->getGameType() == GType_GRIM) { + _spriteProgram->setUniform1f("alphaRef", 0.5f); + } else if (sprite->_flags2 & Sprite::AlphaTest) { + _spriteProgram->setUniform1f("alphaRef", 0.1f); } else { _spriteProgram->setUniform1f("alphaRef", 0.0f); } diff --git a/engines/grim/gfx_tinygl.cpp b/engines/grim/gfx_tinygl.cpp index 3bd6b5f2e02..95a7700e4cb 100644 --- a/engines/grim/gfx_tinygl.cpp +++ b/engines/grim/gfx_tinygl.cpp @@ -782,9 +782,12 @@ void GfxTinyGL::drawSprite(const Sprite *sprite) { tglDisable(TGL_LIGHTING); - if (sprite->_flags2 & Sprite::AlphaTest) { + if (g_grim->getGameType() == GType_GRIM) { tglEnable(TGL_ALPHA_TEST); - tglAlphaFunc(TGL_GEQUAL, g_grim->getGameType() == GType_MONKEY4 ? 0.1f : 0.5f); + tglAlphaFunc(TGL_GEQUAL, 0.5f); + } else if (sprite->_flags2 & Sprite::AlphaTest) { + tglEnable(TGL_ALPHA_TEST); + tglAlphaFunc(TGL_GEQUAL, 0.1f); } else { tglDisable(TGL_ALPHA_TEST); }