From e8072e0eb095c506807798e3827c5f095ce54a69 Mon Sep 17 00:00:00 2001 From: rogerman Date: Wed, 5 Dec 2012 08:22:28 +0000 Subject: [PATCH] OpenGL Renderer: - Fix enable texture setting. --- desmume/src/OGLRender.cpp | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/desmume/src/OGLRender.cpp b/desmume/src/OGLRender.cpp index 550bfddf3..7065d14dd 100644 --- a/desmume/src/OGLRender.cpp +++ b/desmume/src/OGLRender.cpp @@ -782,8 +782,11 @@ static void BeginRenderPoly() { xglPolygonMode (GL_FRONT_AND_BACK, GL_LINE); } - - setTexture(textureFormat, texturePalette); + + if (gfx3d.renderState.enableTexturing) + { + setTexture(textureFormat, texturePalette); + } if(isTranslucent) enableDepthWrite = alphaDepthWrite; @@ -879,9 +882,29 @@ static void InstallPolygonAttrib(u32 val) static void Control() { - if(gfx3d.renderState.enableTexturing) glEnable (GL_TEXTURE_2D); - else glDisable (GL_TEXTURE_2D); - + if (gfx3d.renderState.enableTexturing) + { + if (hasShaders) + { + glUniform1i(hasTexLoc, 1); + } + else + { + glEnable(GL_TEXTURE_2D); + } + } + else + { + if (hasShaders) + { + glUniform1i(hasTexLoc, 0); + } + else + { + glDisable(GL_TEXTURE_2D); + } + } + if(gfx3d.renderState.enableAlphaTest) // FIXME: alpha test should pass gfx3d.alphaTestRef==poly->getAlpha glAlphaFunc (GL_GREATER, gfx3d.renderState.alphaTestRef/31.f);