diff --git a/360/media/hd/rarch_quickmenu.xui b/360/media/hd/rarch_quickmenu.xui
index 166e577d75..78cb3ca807 100644
--- a/360/media/hd/rarch_quickmenu.xui
+++ b/360/media/hd/rarch_quickmenu.xui
@@ -50,7 +50,6 @@
XuiBackButton
Load State
Save State
-Hardware filtering:
Aspect Ratio:
Overscan:
Orientation:
@@ -110,6 +109,18 @@ Return to Dashboard
0.000000,10.000000,0.000000
+
+
+control_ListItem
+226.000000
+45.000000
+7.000000,22.000000,0.000000
+5
+false
+XuiButton
+0.000000,10.000000,0.000000
+
+
diff --git a/360/media/hd/rarch_settings.xui b/360/media/hd/rarch_settings.xui
index a3439a68e3..3b63fe65be 100644
--- a/360/media/hd/rarch_settings.xui
+++ b/360/media/hd/rarch_settings.xui
@@ -50,7 +50,8 @@
XuiBackButton
Rewind:
Gamma Correction:
-Hardware filtering:
+Hardware filtering shader #1:
+Hardware filtering shader #2:
Custom Scaling/Dual Shaders
@@ -138,6 +139,18 @@ Custom Scaling/Dual Shaders
0.000000,10.000000,0.000000
+
+
+control_ListItem
+226.000000
+45.000000
+7.000000,22.000000,0.000000
+5
+false
+XuiButton
+0.000000,10.000000,0.000000
+
+
diff --git a/360/media/sd/rarch_quickmenu.xui b/360/media/sd/rarch_quickmenu.xui
index 03adcf1d12..43efa6e6f4 100644
--- a/360/media/sd/rarch_quickmenu.xui
+++ b/360/media/sd/rarch_quickmenu.xui
@@ -50,7 +50,6 @@
XuiBackButton
Load State
Save State
-Hardware filtering:
Aspect Ratio:
Overscan:
Orientation:
@@ -98,6 +97,18 @@ Return to Dashboard
0.000000,10.000000,0.000000
+
+
+control_ListItem
+226.000000
+45.000000
+7.000000,22.000000,0.000000
+5
+false
+XuiButton
+0.000000,10.000000,0.000000
+
+
diff --git a/360/media/sd/rarch_settings.xui b/360/media/sd/rarch_settings.xui
index e62d06c8a1..d54d1e308e 100644
--- a/360/media/sd/rarch_settings.xui
+++ b/360/media/sd/rarch_settings.xui
@@ -50,7 +50,8 @@
XuiBackButton
Rewind:
Gamma Correction:
-Hardware filtering:
+Hardware filtering shader #1:
+Hardware filtering shader #2:
Cutom Scaling/Dual Shaders:
@@ -114,6 +115,18 @@ Cutom Scaling/Dual Shaders:
0.000000,10.000000,0.000000
+
+
+control_ListItem
+226.000000
+45.000000
+7.000000,22.000000,0.000000
+5
+false
+XuiButton
+0.000000,10.000000,0.000000
+
+
diff --git a/360/menu.cpp b/360/menu.cpp
index 4dbf21f63f..5d9fd958bb 100644
--- a/360/menu.cpp
+++ b/360/menu.cpp
@@ -116,19 +116,6 @@ HRESULT CRetroArchCoreBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled
return S_OK;
}
-static const wchar_t * set_filter_element(int index)
-{
- switch(index)
- {
- case FALSE:
- return L"Hardware filtering: Point filtering";
- case TRUE:
- return L"Hardware filtering: Linear interpolation";
- }
-
- return L"";
-}
-
HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
{
GetChildById(L"XuiSettingsList", &m_settingslist);
@@ -136,7 +123,8 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF");
m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction_enable ? L"Gamma correction: ON" : L"Gamma correction: OFF");
- m_settingslist.SetText(SETTING_HARDWARE_FILTERING, set_filter_element(g_settings.video.smooth));
+ m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER, g_settings.video.smooth ? L"Hardware filtering shader #1: Linear interpolation" : L"Hardware filtering shader #1: Point filtering");
+ m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering");
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_console.fbo_enabled ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
return S_OK;
@@ -146,8 +134,6 @@ HRESULT CRetroArchQuickMenu::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
{
GetChildById(L"XuiQuickMenuList", &m_quickmenulist);
GetChildById(L"XuiBackButton", &m_back);
-
- m_quickmenulist.SetText(MENU_ITEM_HARDWARE_FILTERING, set_filter_element(g_settings.video.smooth));
switch(g_console.screen_orientation)
{
case ORIENTATION_NORMAL:
@@ -198,10 +184,6 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
return_to_game();
}
break;
- case MENU_ITEM_HARDWARE_FILTERING:
- g_settings.video.smooth = !g_settings.video.smooth;
- m_quickmenulist.SetText(MENU_ITEM_HARDWARE_FILTERING, set_filter_element(g_settings.video.smooth));
- break;
case MENU_ITEM_KEEP_ASPECT_RATIO:
{
g_console.aspect_ratio_index++;
@@ -415,9 +397,13 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
g_console.gamma_correction_enable = !g_console.gamma_correction_enable;
m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction_enable ? L"Gamma correction: ON" : L"Gamma correction: OFF");
break;
- case SETTING_HARDWARE_FILTERING:
+ case SETTING_HW_TEXTURE_FILTER:
g_settings.video.smooth = !g_settings.video.smooth;
- m_settingslist.SetText(SETTING_HARDWARE_FILTERING, set_filter_element(g_settings.video.smooth));
+ m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER, g_settings.video.smooth ? L"Hardware filtering shader #1: Linear interpolation" : L"Hardware filtering shader #1: Point filtering");
+ break;
+ case SETTING_HW_TEXTURE_FILTER_2:
+ g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth;
+ m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering");
break;
case SETTING_SCALE_ENABLED:
g_console.fbo_enabled = !g_console.fbo_enabled;
diff --git a/360/menu.h b/360/menu.h
index 00942ab988..314fc660e7 100644
--- a/360/menu.h
+++ b/360/menu.h
@@ -24,7 +24,8 @@ enum
{
SETTING_EMU_REWIND_ENABLED = 0,
SETTING_GAMMA_CORRECTION_ENABLED,
- SETTING_HARDWARE_FILTERING,
+ SETTING_HW_TEXTURE_FILTER,
+ SETTING_HW_TEXTURE_FILTER_2,
SETTING_SCALE_ENABLED
};
diff --git a/360/shared.h b/360/shared.h
index 8a40b1e1ce..c6e0a82589 100644
--- a/360/shared.h
+++ b/360/shared.h
@@ -22,7 +22,6 @@
enum {
MENU_ITEM_LOAD_STATE = 0,
MENU_ITEM_SAVE_STATE,
- MENU_ITEM_HARDWARE_FILTERING,
MENU_ITEM_KEEP_ASPECT_RATIO,
MENU_ITEM_OVERSCAN_AMOUNT,
MENU_ITEM_ORIENTATION,
diff --git a/360/xdk360_video.cpp b/360/xdk360_video.cpp
index 84caea62b7..8bc7bc9bae 100644
--- a/360/xdk360_video.cpp
+++ b/360/xdk360_video.cpp
@@ -609,8 +609,8 @@ static bool xdk360_gfx_frame(void *data, const void *frame,
vid->d3dpp.BackBufferHeight, g_frame_count);
set_viewport(false);
- vid->d3d_render_device->SetSamplerState(0, D3DSAMP_MINFILTER, g_settings.video.smooth ? D3DTEXF_LINEAR : D3DTEXF_POINT);
- vid->d3d_render_device->SetSamplerState(0, D3DSAMP_MAGFILTER, g_settings.video.smooth ? D3DTEXF_LINEAR : D3DTEXF_POINT);
+ vid->d3d_render_device->SetSamplerState(0, D3DSAMP_MINFILTER, g_settings.video.second_pass_smooth ? D3DTEXF_LINEAR : D3DTEXF_POINT);
+ vid->d3d_render_device->SetSamplerState(0, D3DSAMP_MAGFILTER, g_settings.video.second_pass_smooth ? D3DTEXF_LINEAR : D3DTEXF_POINT);
vid->d3d_render_device->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_BORDER);
vid->d3d_render_device->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_BORDER);
vid->d3d_render_device->SetVertexDeclaration(vid->v_decl);