From 0cfd12170c64de8c4d24fb5c9a5e4a25c61610f3 Mon Sep 17 00:00:00 2001 From: raven02 Date: Fri, 19 Jul 2013 21:32:46 +0800 Subject: [PATCH 1/2] Fix text disappear when mipmapping ON in Tactic Ogre --- GPU/GLES/TextureCache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GPU/GLES/TextureCache.cpp b/GPU/GLES/TextureCache.cpp index b43f447878f5..31f3e889677d 100644 --- a/GPU/GLES/TextureCache.cpp +++ b/GPU/GLES/TextureCache.cpp @@ -499,7 +499,7 @@ void TextureCache::UpdateSamplingParams(TexCacheEntry &entry, bool force) { bool sClamp = gstate.texwrap & 1; bool tClamp = (gstate.texwrap>>8) & 1; - // bool noMip = (gstate.texlevel & 0xFFFFFF) == 0x000001; // Fix texlevel at 0 + bool noMip = (gstate.texlevel & 0xFFFFFF) == 0x000001 || (gstate.texlevel & 0xFFFFFF) == 0x100001 ; // Fix texlevel at 0 if (entry.maxLevel == 0) { // Enforce no mip filtering, for safety. @@ -525,7 +525,7 @@ void TextureCache::UpdateSamplingParams(TexCacheEntry &entry, bool force) { minFilt &= ~1; } - if (!g_Config.bMipMap) { + if (!g_Config.bMipMap || noMip) { magFilt &= 1; minFilt &= 1; } From 4d5302212175b45ae105c815595fc5956a225f63 Mon Sep 17 00:00:00 2001 From: raven02 Date: Fri, 19 Jul 2013 21:48:50 +0800 Subject: [PATCH 2/2] Use emnu{} to simplify different of texture filtering --- GPU/GLES/TextureCache.cpp | 4 ++-- GPU/GLES/TextureCache.h | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/GPU/GLES/TextureCache.cpp b/GPU/GLES/TextureCache.cpp index 31f3e889677d..e28ec1cd37dd 100644 --- a/GPU/GLES/TextureCache.cpp +++ b/GPU/GLES/TextureCache.cpp @@ -515,12 +515,12 @@ void TextureCache::UpdateSamplingParams(TexCacheEntry &entry, bool force) { } } - if ((g_Config.iTexFiltering == 3 || (g_Config.iTexFiltering == 4 && g_iNumVideos)) && !gstate.isColorTestEnabled()) { + if ((g_Config.iTexFiltering == linear || (g_Config.iTexFiltering == linearFMV && g_iNumVideos)) && !gstate.isColorTestEnabled()) { magFilt |= 1; minFilt |= 1; } - if (g_Config.iTexFiltering == 2) { + if (g_Config.iTexFiltering == nearest) { magFilt &= ~1; minFilt &= ~1; } diff --git a/GPU/GLES/TextureCache.h b/GPU/GLES/TextureCache.h index 361885f41cd1..772374ca88db 100644 --- a/GPU/GLES/TextureCache.h +++ b/GPU/GLES/TextureCache.h @@ -25,6 +25,12 @@ struct VirtualFramebuffer; +enum TextureFiltering { + nearest = 2, + linear = 3, + linearFMV = 4, +}; + class TextureCache { public: