Fall back to original filter logic when filter option is off

This commit is contained in:
raven02 2012-12-29 09:02:47 +08:00
parent f9133c1a56
commit b94bcad288
4 changed files with 8 additions and 6 deletions

View File

@ -428,16 +428,12 @@ void UpdateSamplingParams()
int tClamp = (gstate.texwrap>>8) & 1; int tClamp = (gstate.texwrap>>8) & 1;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, sClamp ? GL_CLAMP_TO_EDGE : GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, sClamp ? GL_CLAMP_TO_EDGE : GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, tClamp ? GL_CLAMP_TO_EDGE : GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, tClamp ? GL_CLAMP_TO_EDGE : GL_REPEAT);
// Tested mag/minFilt only work in either one case that can allow GL_LINEAR to be enable
//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, magFilt ? GL_LINEAR : GL_NEAREST);
//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilt ? GL_LINEAR : GL_NEAREST);
// User define linear filtering
if ( g_Config.bLinearFiltering ) { if ( g_Config.bLinearFiltering ) {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
} else { } else {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, magFilt ? GL_LINEAR : GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilt ? GL_LINEAR : GL_NEAREST);
} }
} }

View File

@ -503,6 +503,10 @@ namespace MainWindow
g_Config.bFastMemory = !g_Config.bFastMemory; g_Config.bFastMemory = !g_Config.bFastMemory;
UpdateMenus(); UpdateMenus();
break; break;
case ID_OPTIONS_LINEARFILTERING:
g_Config.bLinearFiltering = !g_Config.bLinearFiltering;
UpdateMenus();
break;
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
@ -648,6 +652,7 @@ namespace MainWindow
CHECKITEM(ID_OPTIONS_WIREFRAME, g_Config.bDrawWireframe); CHECKITEM(ID_OPTIONS_WIREFRAME, g_Config.bDrawWireframe);
CHECKITEM(ID_OPTIONS_HARDWARETRANSFORM, g_Config.bHardwareTransform); CHECKITEM(ID_OPTIONS_HARDWARETRANSFORM, g_Config.bHardwareTransform);
CHECKITEM(ID_OPTIONS_FASTMEMORY, g_Config.bFastMemory); CHECKITEM(ID_OPTIONS_FASTMEMORY, g_Config.bFastMemory);
CHECKITEM(ID_OPTIONS_LINEARFILTERING, g_Config.bLinearFiltering);
UINT enable = !Core_IsStepping() ? MF_GRAYED : MF_ENABLED; UINT enable = !Core_IsStepping() ? MF_GRAYED : MF_ENABLED;
EnableMenuItem(menu,ID_EMULATION_RUN, g_State.bEmuThreadStarted ? enable : MF_GRAYED); EnableMenuItem(menu,ID_EMULATION_RUN, g_State.bEmuThreadStarted ? enable : MF_GRAYED);

Binary file not shown.

View File

@ -247,6 +247,7 @@
#define ID_OPTIONS_HARDWARETRANSFORM 40124 #define ID_OPTIONS_HARDWARETRANSFORM 40124
#define ID_OPTIONS_FASTMEMORY 40125 #define ID_OPTIONS_FASTMEMORY 40125
#define IDC_STEPHLE 40126 #define IDC_STEPHLE 40126
#define ID_OPTIONS_LINEARFILTERING 40127
// Next default values for new objects // Next default values for new objects
// //