Add a "force no texture filter" option, useful for some 2D games (like Mega Man 10) and people who like their pixelated graphics.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7431 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
smelenchuk
2011-04-01 01:35:07 +00:00
parent 783c89f108
commit 15c51c37f3
7 changed files with 24 additions and 3 deletions

View File

@ -348,13 +348,15 @@ void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, co
//mode1 = newmode1;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
(newmode.mag_filter || g_Config.bForceFiltering) ? GL_LINEAR : GL_NEAREST);
((newmode.mag_filter && !g_Config.bForceNoFiltering) || g_Config.bForceFiltering) ? GL_LINEAR : GL_NEAREST);
if (bHaveMipMaps)
{
// TODO: not used anywhere
if (g_ActiveConfig.bForceFiltering && newmode.min_filter < 4)
mode.min_filter += 4; // take equivalent forced linear
else if (g_ActiveConfig.bForceNoFiltering && newmode.min_filter >= 4)
mode.min_filter -= 4;
int filt = newmode.min_filter;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, c_MinLinearFilter[filt & 7]);
@ -364,7 +366,7 @@ void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, co
}
else
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
(g_ActiveConfig.bForceFiltering || newmode.min_filter >= 4) ? GL_LINEAR : GL_NEAREST);
(g_ActiveConfig.bForceFiltering || (newmode.min_filter >= 4 && !g_ActiveConfig.bForceNoFiltering)) ? GL_LINEAR : GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, c_WrapSettings[newmode.wrap_s]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, c_WrapSettings[newmode.wrap_t]);