added ssaa and efb scale as separate configurations:

efb scale :
auto fractional: the original scaling way, will grant a 1:1 pixel mapping between efb and screen giving the best image quality even in non standard resolutions
at the cost of glitches in some games.
auto integral: automatic but only int values for the scale, no glitches but only the correct pixel scaling when using some resolutions.
the rest are the fixed scales.
enjoy.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5639 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Rodolfo Osvaldo Bogado 2010-06-09 15:33:01 +00:00
parent b3046be7ad
commit 9d792d4673
8 changed files with 270 additions and 220 deletions

View File

@ -74,6 +74,8 @@ void VideoConfig::Load(const char *ini_file)
iniFile.Get("Settings", "FreeLook", &bFreeLook, 0); iniFile.Get("Settings", "FreeLook", &bFreeLook, 0);
iniFile.Get("Settings", "ShowShaderErrors", &bShowShaderErrors, 0); iniFile.Get("Settings", "ShowShaderErrors", &bShowShaderErrors, 0);
iniFile.Get("Settings", "MSAA", &iMultisampleMode, 0); iniFile.Get("Settings", "MSAA", &iMultisampleMode, 0);
iniFile.Get("Settings", "EFBScale", &iEFBScale, 0);
iniFile.Get("Settings", "DstAlphaPass", &bDstAlphaPass, false); iniFile.Get("Settings", "DstAlphaPass", &bDstAlphaPass, false);
iniFile.Get("Settings", "TexFmtOverlayEnable", &bTexFmtOverlayEnable, 0); iniFile.Get("Settings", "TexFmtOverlayEnable", &bTexFmtOverlayEnable, 0);
@ -132,6 +134,8 @@ void VideoConfig::GameIniLoad(const char *ini_file)
if (iniFile.Exists("Video", "MSAA")) if (iniFile.Exists("Video", "MSAA"))
iniFile.Get("Video", "MSAA", &iMultisampleMode); iniFile.Get("Video", "MSAA", &iMultisampleMode);
if (iniFile.Exists("Video", "EFBScale"))
iniFile.Get("Video", "EFBScale", &iEFBScale, 0);
if (iniFile.Exists("Video", "DstAlphaPass")) if (iniFile.Exists("Video", "DstAlphaPass"))
iniFile.Get("Video", "DstAlphaPass", &bDstAlphaPass); iniFile.Get("Video", "DstAlphaPass", &bDstAlphaPass);
if (iniFile.Exists("Video", "UseXFB")) if (iniFile.Exists("Video", "UseXFB"))
@ -178,6 +182,7 @@ void VideoConfig::Save(const char *ini_file)
iniFile.Set("Settings", "ShowEFBCopyRegions", bShowEFBCopyRegions); iniFile.Set("Settings", "ShowEFBCopyRegions", bShowEFBCopyRegions);
iniFile.Set("Settings", "ShowShaderErrors", bShowShaderErrors); iniFile.Set("Settings", "ShowShaderErrors", bShowShaderErrors);
iniFile.Set("Settings", "MSAA", iMultisampleMode); iniFile.Set("Settings", "MSAA", iMultisampleMode);
iniFile.Set("Settings", "EFBScale", iEFBScale);
iniFile.Set("Settings", "TexFmtOverlayEnable", bTexFmtOverlayEnable); iniFile.Set("Settings", "TexFmtOverlayEnable", bTexFmtOverlayEnable);
iniFile.Set("Settings", "TexFmtOverlayCenter", bTexFmtOverlayCenter); iniFile.Set("Settings", "TexFmtOverlayCenter", bTexFmtOverlayCenter);
iniFile.Set("Settings", "Wireframe", bWireFrame); iniFile.Set("Settings", "Wireframe", bWireFrame);

View File

@ -80,6 +80,7 @@ struct VideoConfig
// Enhancements // Enhancements
int iMultisampleMode; int iMultisampleMode;
int iEFBScale;
bool bForceFiltering; bool bForceFiltering;
int iMaxAnisotropy; int iMaxAnisotropy;
std::string sPostProcessingShader; std::string sPostProcessingShader;

View File

@ -148,15 +148,9 @@ void Enumerate()
bool isNvidia = a.ident.VendorId == VENDOR_NVIDIA; bool isNvidia = a.ident.VendorId == VENDOR_NVIDIA;
// Add SuperSamples modes // Add SuperSamples modes
a.aa_levels.push_back(AALevel("1x EFB - SSAA NONE", D3DMULTISAMPLE_NONE, 0)); a.aa_levels.push_back(AALevel("NONE", D3DMULTISAMPLE_NONE, 0));
a.aa_levels.push_back(AALevel("1x EFB - 4x SSAA", D3DMULTISAMPLE_NONE, 0)); a.aa_levels.push_back(AALevel("4x SSAA", D3DMULTISAMPLE_NONE, 0));
a.aa_levels.push_back(AALevel("1x EFB - 9x SSAA", D3DMULTISAMPLE_NONE, 0)); a.aa_levels.push_back(AALevel("9x SSAA", D3DMULTISAMPLE_NONE, 0));
a.aa_levels.push_back(AALevel("2x EFB - SSAA NONE", D3DMULTISAMPLE_NONE, 0));
a.aa_levels.push_back(AALevel("2x EFB - 4x SSAA", D3DMULTISAMPLE_NONE, 0));
a.aa_levels.push_back(AALevel("2x EFB - 9x SSAA", D3DMULTISAMPLE_NONE, 0));
a.aa_levels.push_back(AALevel("3x EFB - SSAA NONE", D3DMULTISAMPLE_NONE, 0));
a.aa_levels.push_back(AALevel("3x EFB - 4x SSAA", D3DMULTISAMPLE_NONE, 0));
a.aa_levels.push_back(AALevel("3x EFB - 9x SSAA", D3DMULTISAMPLE_NONE, 0));
//Add multisample modes //Add multisample modes
//disable them will they are not implemnted //disable them will they are not implemnted
/* /*

View File

@ -57,14 +57,24 @@ struct TabDirect3D : public W32Util::Tab
{ {
swprintf_s( tempstr, _T("%hs"), adapter.aa_levels[i].name ); swprintf_s( tempstr, _T("%hs"), adapter.aa_levels[i].name );
ComboBox_AddString(GetDlgItem(hDlg, IDC_ANTIALIASMODE), tempstr); ComboBox_AddString(GetDlgItem(hDlg, IDC_ANTIALIASMODE), tempstr);
} }
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_ANTIALIASMODE), g_Config.iMultisampleMode); ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_ANTIALIASMODE), g_Config.iMultisampleMode);
if (adapter.aa_levels.size() == 1) if (adapter.aa_levels.size() == 1)
{ {
ComboBox_Enable(GetDlgItem(hDlg, IDC_ANTIALIASMODE), FALSE); ComboBox_Enable(GetDlgItem(hDlg, IDC_ANTIALIASMODE), FALSE);
} }
swprintf_s( tempstr, _T("%hs"), "Auto (Fractional)" );
ComboBox_AddString(GetDlgItem(hDlg, IDC_EFBSCALE), tempstr);
swprintf_s( tempstr, _T("%hs"), "Auto (Integral)" );
ComboBox_AddString(GetDlgItem(hDlg, IDC_EFBSCALE), tempstr);
swprintf_s( tempstr, _T("%hs"), "1x" );
ComboBox_AddString(GetDlgItem(hDlg, IDC_EFBSCALE), tempstr);
swprintf_s( tempstr, _T("%hs"), "2x" );
ComboBox_AddString(GetDlgItem(hDlg, IDC_EFBSCALE), tempstr);
swprintf_s( tempstr, _T("%hs"), "3x" );
ComboBox_AddString(GetDlgItem(hDlg, IDC_EFBSCALE), tempstr);
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_EFBSCALE), g_Config.iEFBScale);
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
ComboBox_AddString(GetDlgItem(hDlg, IDC_ASPECTRATIO), aspect_ratio_names[i]); ComboBox_AddString(GetDlgItem(hDlg, IDC_ASPECTRATIO), aspect_ratio_names[i]);
@ -150,6 +160,7 @@ struct TabDirect3D : public W32Util::Tab
{ {
g_Config.iAdapter = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_ADAPTER)); g_Config.iAdapter = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_ADAPTER));
g_Config.iMultisampleMode = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_ANTIALIASMODE)); g_Config.iMultisampleMode = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_ANTIALIASMODE));
g_Config.iEFBScale = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_EFBSCALE));
g_Config.bVSync = Button_GetCheck(GetDlgItem(hDlg, IDC_VSYNC)) ? true : false; g_Config.bVSync = Button_GetCheck(GetDlgItem(hDlg, IDC_VSYNC)) ? true : false;
if(Button_GetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_SAFE))) if(Button_GetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_SAFE)))
{ {

View File

@ -69,8 +69,8 @@ static int s_XFB_height;
static float xScale; static float xScale;
static float yScale; static float yScale;
static int EFBxScale; static float EFBxScale;
static int EFByScale; static float EFByScale;
static int s_recordWidth; static int s_recordWidth;
static int s_recordHeight; static int s_recordHeight;
@ -80,6 +80,7 @@ static bool s_AVIDumping;
static u32 s_blendMode; static u32 s_blendMode;
static u32 s_LastAA; static u32 s_LastAA;
static u32 s_LastEFBScale;
static bool IS_AMD; static bool IS_AMD;
static bool XFBWrited; static bool XFBWrited;
@ -287,11 +288,27 @@ bool Renderer::Init()
yScale = (float)(dst_rect.bottom - dst_rect.top) / (float)s_XFB_height; yScale = (float)(dst_rect.bottom - dst_rect.top) / (float)s_XFB_height;
} }
s_LastAA = (g_ActiveConfig.iMultisampleMode > 3)?0:g_ActiveConfig.iMultisampleMode; s_LastAA = g_ActiveConfig.iMultisampleMode;
s_LastEFBScale = g_ActiveConfig.iEFBScale;
float SupersampleCoeficient = s_LastAA + 1;
switch(s_LastEFBScale)
{
case 0:
EFBxScale = xScale;
EFByScale = yScale;
break;
case 1:
EFBxScale = ceilf(xScale);
EFByScale = ceilf(yScale);
break;
default:
EFBxScale = g_ActiveConfig.iEFBScale - 1;
EFByScale = EFBxScale;
break;
};
float SupersampleCoeficient = (s_LastAA % 3) + 1; EFBxScale *= SupersampleCoeficient;
EFBxScale = (s_LastAA / 3) + 1 * SupersampleCoeficient; EFByScale *= SupersampleCoeficient;
EFByScale = EFBxScale;
s_target_width = EFB_WIDTH * EFBxScale; s_target_width = EFB_WIDTH * EFBxScale;
s_target_height = EFB_HEIGHT * EFByScale; s_target_height = EFB_HEIGHT * EFByScale;
@ -1177,9 +1194,11 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight)
} }
u32 newAA = g_ActiveConfig.iMultisampleMode; u32 newAA = g_ActiveConfig.iMultisampleMode;
if(newAA != s_LastAA || xfbchanged || WindowResized) u32 newEFBScale = g_ActiveConfig.iEFBScale;
if(newAA != s_LastAA || newEFBScale != s_LastEFBScale || xfbchanged || WindowResized)
{ {
s_LastAA = newAA; s_LastAA = newAA;
s_LastEFBScale = newEFBScale;
ComputeDrawRectangle(s_backbuffer_width, s_backbuffer_height, false, &dst_rect); ComputeDrawRectangle(s_backbuffer_width, s_backbuffer_height, false, &dst_rect);
@ -1193,9 +1212,25 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight)
yScale = (float)(dst_rect.bottom - dst_rect.top) / (float)s_XFB_height; yScale = (float)(dst_rect.bottom - dst_rect.top) / (float)s_XFB_height;
} }
float SupersampleCoeficient = (s_LastAA % 3) + 1; float SupersampleCoeficient = s_LastAA + 1;
EFBxScale = (s_LastAA / 3) + 1 * SupersampleCoeficient; switch(s_LastEFBScale)
EFByScale = EFBxScale; {
case 0:
EFBxScale = xScale;
EFByScale = yScale;
break;
case 1:
EFBxScale = ceilf(xScale);
EFByScale = ceilf(yScale);
break;
default:
EFBxScale = g_ActiveConfig.iEFBScale - 1;
EFByScale = EFBxScale;
break;
};
EFBxScale *= SupersampleCoeficient;
EFByScale *= SupersampleCoeficient;
s_target_width = EFB_WIDTH * EFBxScale; s_target_width = EFB_WIDTH * EFBxScale;
s_target_height = EFB_HEIGHT * EFByScale; s_target_height = EFB_HEIGHT * EFByScale;
D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface());

View File

@ -362,7 +362,7 @@ void TextureCache::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, boo
int tex_w = (abs(source_rect.GetWidth()) >> bScaleByHalf); int tex_w = (abs(source_rect.GetWidth()) >> bScaleByHalf);
int tex_h = (abs(source_rect.GetHeight()) >> bScaleByHalf); int tex_h = (abs(source_rect.GetHeight()) >> bScaleByHalf);
//compensate the texture grow if supersampling is enabled to conserve memory usage //compensate the texture grow if supersampling is enabled to conserve memory usage
float SuperSampleCompensation = (g_ActiveConfig.iMultisampleMode % 3) + 1; float SuperSampleCompensation = g_ActiveConfig.iMultisampleMode + 1;
SuperSampleCompensation = 1.0f / SuperSampleCompensation; SuperSampleCompensation = 1.0f / SuperSampleCompensation;
float xScale = Renderer::GetTargetScaleX(); float xScale = Renderer::GetTargetScaleX();
float yScale = Renderer::GetTargetScaleY(); float yScale = Renderer::GetTargetScaleY();

View File

@ -1,6 +1,6 @@
//{{NO_DEPENDENCIES}} //{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file. // Microsoft Visual C++ generated include file.
// Used by resource.rc // Used by Resource.rc
// //
#define IDD_ABOUT 102 #define IDD_ABOUT 102
#define IDD_SETTINGS 103 #define IDD_SETTINGS 103
@ -8,6 +8,8 @@
#define IDD_ADVANCED 105 #define IDD_ADVANCED 105
#define IDC_ADAPTER 1001 #define IDC_ADAPTER 1001
#define IDC_ANTIALIASMODE 1002 #define IDC_ANTIALIASMODE 1002
#define IDC_ANTIALIASMODE2 1003
#define IDC_EFBSCALE 1003
#define IDC_VSYNC 1006 #define IDC_VSYNC 1006
#define IDC_WIDESCREEN_HACK 1010 #define IDC_WIDESCREEN_HACK 1010
#define IDC_SAFE_TEXTURE_CACHE 1011 #define IDC_SAFE_TEXTURE_CACHE 1011

View File

@ -1,196 +1,198 @@
// Microsoft Visual C++ generated resource script. // Microsoft Visual C++ generated resource script.
// //
#include "resource.h" #include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS #define APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Generated from the TEXTINCLUDE 2 resource. // Generated from the TEXTINCLUDE 2 resource.
// //
#include <windows.h> #include <windows.h>
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources // English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32 #ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252) #pragma code_page(1252)
#endif //_WIN32 #endif //_WIN32
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Dialog // Dialog
// //
IDD_ABOUT DIALOGEX 0, 0, 188, 81 IDD_ABOUT DIALOGEX 0, 0, 188, 81
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dolphin D3D9 Video Plugin" CAPTION "Dolphin D3D9 Video Plugin"
FONT 8, "MS Shell Dlg", 400, 0, 0x1 FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN BEGIN
DEFPUSHBUTTON "Close",IDOK,131,60,50,14 DEFPUSHBUTTON "Close",IDOK,131,60,50,14
LTEXT "Code by ector",IDC_STATIC,7,7,85,9 LTEXT "Code by ector",IDC_STATIC,7,7,85,9
LTEXT "Hardware requirements: Radeon 9500 or better, or Geforce FX5200 or better.\nRadeon recommended.",IDC_STATIC,7,19,174,26 LTEXT "Hardware requirements: Radeon 9500 or better, or Geforce FX5200 or better.\nRadeon recommended.",IDC_STATIC,7,19,174,26
LTEXT "Will not work correctly on older GPU:s.",IDC_STATIC,7,47,170,8 LTEXT "Will not work correctly on older GPU:s.",IDC_STATIC,7,47,170,8
END END
IDD_SETTINGS DIALOGEX 0, 0, 244, 183 IDD_SETTINGS DIALOGEX 0, 0, 244, 183
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_SYSMENU STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_SYSMENU
FONT 8, "MS Shell Dlg", 0, 0, 0x0 FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN BEGIN
LTEXT "&Graphics card:",IDC_STATIC,9,9,49,8 LTEXT "&Graphics card:",IDC_STATIC,7,7,49,8
COMBOBOX IDC_ADAPTER,68,7,162,48,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_ADAPTER,61,7,176,48,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "&V-Sync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,25,36,8 CONTROL "&V-Sync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,61,25,36,8
CONTROL "&Widescreen Hack",IDC_WIDESCREEN_HACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,25,67,10 CONTROL "&Widescreen Hack",IDC_WIDESCREEN_HACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,25,67,10
LTEXT "&Aspect Ratio:",IDC_STATIC,9,40,48,8 LTEXT "&Aspect Ratio:",IDC_STATIC,7,40,48,8
COMBOBOX IDC_ASPECTRATIO,68,39,89,57,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_ASPECTRATIO,61,39,89,57,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
LTEXT "&Scale - AA mode:",IDC_STATIC,9,59,59,8 LTEXT "SSAA mode:",IDC_STATIC,7,61,46,8
COMBOBOX IDC_ANTIALIASMODE,68,59,162,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_ANTIALIASMODE,61,59,48,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "&Enable CPU->EFB access ",IDC_EFB_ACCESS_ENABLE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,7,80,94,11 CONTROL "&Enable CPU->EFB access ",IDC_EFB_ACCESS_ENABLE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,7,80,94,11
GROUPBOX "Safe Texture Cache Mode",IDC_STATIC,109,94,125,27 GROUPBOX "Safe Texture Cache Mode",IDC_STATIC,109,94,125,27
CONTROL "&Safe Texture Cache",IDC_SAFE_TEXTURE_CACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,104,80,11 CONTROL "&Safe Texture Cache",IDC_SAFE_TEXTURE_CACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,104,80,11
CONTROL "Safe",IDC_SAFE_TEXTURE_CACHE_SAFE,"Button",BS_AUTORADIOBUTTON,117,105,27,10 CONTROL "Safe",IDC_SAFE_TEXTURE_CACHE_SAFE,"Button",BS_AUTORADIOBUTTON,117,105,27,10
CONTROL "Normal",IDC_SAFE_TEXTURE_CACHE_NORMAL,"Button",BS_AUTORADIOBUTTON,154,105,38,10 CONTROL "Normal",IDC_SAFE_TEXTURE_CACHE_NORMAL,"Button",BS_AUTORADIOBUTTON,154,105,38,10
CONTROL "Fast",IDC_SAFE_TEXTURE_CACHE_FAST,"Button",BS_AUTORADIOBUTTON,198,105,30,10 CONTROL "Fast",IDC_SAFE_TEXTURE_CACHE_FAST,"Button",BS_AUTORADIOBUTTON,198,105,30,10
CONTROL "",IDC_DXCHK,"RichEdit20W",ES_MULTILINE | ES_READONLY | WS_BORDER | WS_TABSTOP,30,126,186,50 CONTROL "",IDC_DXCHK,"RichEdit20W",ES_MULTILINE | ES_READONLY | WS_BORDER | WS_TABSTOP,30,126,186,50
END COMBOBOX IDC_EFBSCALE,161,59,76,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "EFB Scale:",IDC_STATIC,127,61,34,8
IDD_ADVANCED DIALOGEX 0, 0, 244, 200 END
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER | WS_SYSMENU
FONT 8, "MS Shell Dlg", 0, 0, 0x0 IDD_ADVANCED DIALOGEX 0, 0, 244, 200
BEGIN STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER | WS_SYSMENU
GROUPBOX "&Settings",IDC_STATIC,6,7,228,89 FONT 8, "MS Shell Dlg", 0, 0, 0x0
CONTROL "Overlay FPS counter",IDC_OVERLAYFPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,18,82,8 BEGIN
CONTROL "&Overlay some statistics",IDC_OVERLAYSTATS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,155,90,8 GROUPBOX "&Settings",IDC_STATIC,6,7,228,89
CONTROL "Show s&hader compilation errors",IDC_SHOWSHADERERRORS, CONTROL "Overlay FPS counter",IDC_OVERLAYFPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,18,82,8
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,169,114,8 CONTROL "&Overlay some statistics",IDC_OVERLAYSTATS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,155,90,8
CONTROL "Enable &Wireframe",IDC_WIREFRAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,48,87,8 CONTROL "Show s&hader compilation errors",IDC_SHOWSHADERERRORS,
CONTROL "Disable Fog",IDC_DISABLEFOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,18,78,8 "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,169,114,8
CONTROL "Enable Hotkey",IDC_OSDHOTKEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,33,87,8 CONTROL "Enable &Wireframe",IDC_WIREFRAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,48,87,8
CONTROL "Enable EFB copy",IDC_ENABLEEFBCOPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,33,81,8 CONTROL "Disable Fog",IDC_DISABLEFOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,18,78,8
CONTROL "To RAM",IDC_EFBTORAM,"Button",BS_AUTORADIOBUTTON | WS_GROUP,29,44,59,10 CONTROL "Enable Hotkey",IDC_OSDHOTKEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,33,87,8
CONTROL "To Texture",IDC_EFBTOTEX,"Button",BS_AUTORADIOBUTTON,29,57,60,10 CONTROL "Enable EFB copy",IDC_ENABLEEFBCOPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,33,81,8
GROUPBOX "&Data dumping",IDC_STATIC,7,100,228,41 CONTROL "To RAM",IDC_EFBTORAM,"Button",BS_AUTORADIOBUTTON | WS_GROUP,29,44,59,10
CONTROL "Dump &textures",IDC_TEXDUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,111,70,9 CONTROL "To Texture",IDC_EFBTOTEX,"Button",BS_AUTORADIOBUTTON,29,57,60,10
CONTROL "Dump Frames to User/Dump/Frames",IDC_DUMPFRAMES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,125,138,9 GROUPBOX "&Data dumping",IDC_STATIC,7,100,228,41
GROUPBOX "Debugging Tools",IDC_STATIC,7,143,228,51 CONTROL "Dump &textures",IDC_TEXDUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,111,70,9
CONTROL "Enable TexFmt Overlay",IDC_TEXFMT_OVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,182,92,10 CONTROL "Dump Frames to User/Dump/Frames",IDC_DUMPFRAMES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,125,138,9
CONTROL "Centered",IDC_TEXFMT_CENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,183,52,10 GROUPBOX "Debugging Tools",IDC_STATIC,7,143,228,51
CONTROL "Enable XFB",IDC_ENABLEXFB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,71,81,8 CONTROL "Enable TexFmt Overlay",IDC_TEXFMT_OVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,182,92,10
CONTROL "Enable Real XFB",IDC_ENABLEREALXFB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,71,81,8 CONTROL "Centered",IDC_TEXFMT_CENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,183,52,10
CONTROL "Use Native Mips",IDC_USENATIVEMIPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,83,67,10 CONTROL "Enable XFB",IDC_ENABLEXFB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,71,81,8
END CONTROL "Enable Real XFB",IDC_ENABLEREALXFB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,71,81,8
CONTROL "Use Native Mips",IDC_USENATIVEMIPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,83,67,10
IDD_ENHANCEMENTS DIALOGEX 0, 0, 224, 175 END
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1 IDD_ENHANCEMENTS DIALOGEX 0, 0, 224, 175
BEGIN STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
GROUPBOX "Texture &filtering",IDC_STATIC,7,7,210,60 FONT 8, "MS Shell Dlg", 400, 0, 0x1
CONTROL "Force &bi/trilinear (breaks video in several Wii games)",IDC_FORCEFILTERING, BEGIN
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,20,192,9 GROUPBOX "Texture &filtering",IDC_STATIC,7,7,210,60
CONTROL "Enable 16x &anisotropy filtering",IDC_FORCEANISOTROPY, CONTROL "Force &bi/trilinear (breaks video in several Wii games)",IDC_FORCEFILTERING,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,35,110,10 "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,20,192,9
CONTROL "Enable hires texture loading",IDC_LOADHIRESTEXTURE, CONTROL "Enable 16x &anisotropy filtering",IDC_FORCEANISOTROPY,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,50,110,11 "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,35,110,10
GROUPBOX "EFB Hacks",IDC_STATIC,7,70,210,27 CONTROL "Enable hires texture loading",IDC_LOADHIRESTEXTURE,
CONTROL "EFB Scaled Copy",IDC_EFBSCALEDCOPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,80,110,12 "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,50,110,11
END GROUPBOX "EFB Hacks",IDC_STATIC,7,70,210,27
CONTROL "EFB Scaled Copy",IDC_EFBSCALEDCOPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,80,110,12
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO /////////////////////////////////////////////////////////////////////////////
// //
// DESIGNINFO
#ifdef APSTUDIO_INVOKED //
GUIDELINES DESIGNINFO
BEGIN #ifdef APSTUDIO_INVOKED
IDD_ABOUT, DIALOG GUIDELINES DESIGNINFO
BEGIN BEGIN
LEFTMARGIN, 7 IDD_ABOUT, DIALOG
RIGHTMARGIN, 181 BEGIN
TOPMARGIN, 7 LEFTMARGIN, 7
BOTTOMMARGIN, 74 RIGHTMARGIN, 181
END TOPMARGIN, 7
BOTTOMMARGIN, 74
IDD_SETTINGS, DIALOG END
BEGIN
LEFTMARGIN, 7 IDD_SETTINGS, DIALOG
RIGHTMARGIN, 237 BEGIN
VERTGUIDE, 7 LEFTMARGIN, 7
VERTGUIDE, 68 RIGHTMARGIN, 237
VERTGUIDE, 109 VERTGUIDE, 7
VERTGUIDE, 161 VERTGUIDE, 61
TOPMARGIN, 7 VERTGUIDE, 109
BOTTOMMARGIN, 176 VERTGUIDE, 161
END TOPMARGIN, 7
BOTTOMMARGIN, 176
IDD_ADVANCED, DIALOG END
BEGIN
LEFTMARGIN, 7 IDD_ADVANCED, DIALOG
RIGHTMARGIN, 237 BEGIN
VERTGUIDE, 14 LEFTMARGIN, 7
VERTGUIDE, 29 RIGHTMARGIN, 237
VERTGUIDE, 114 VERTGUIDE, 14
TOPMARGIN, 7 VERTGUIDE, 29
BOTTOMMARGIN, 195 VERTGUIDE, 114
HORZGUIDE, 18 TOPMARGIN, 7
HORZGUIDE, 33 BOTTOMMARGIN, 195
HORZGUIDE, 49 HORZGUIDE, 18
HORZGUIDE, 156 HORZGUIDE, 33
END HORZGUIDE, 49
HORZGUIDE, 156
IDD_ENHANCEMENTS, DIALOG END
BEGIN
LEFTMARGIN, 7 IDD_ENHANCEMENTS, DIALOG
RIGHTMARGIN, 217 BEGIN
VERTGUIDE, 16 LEFTMARGIN, 7
VERTGUIDE, 74 RIGHTMARGIN, 217
TOPMARGIN, 7 VERTGUIDE, 16
BOTTOMMARGIN, 168 VERTGUIDE, 74
END TOPMARGIN, 7
END BOTTOMMARGIN, 168
#endif // APSTUDIO_INVOKED END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// #ifdef APSTUDIO_INVOKED
// TEXTINCLUDE /////////////////////////////////////////////////////////////////////////////
// //
// TEXTINCLUDE
1 TEXTINCLUDE //
BEGIN
"resource.h\0" 1 TEXTINCLUDE
END BEGIN
"resource.h\0"
2 TEXTINCLUDE END
BEGIN
"#include <windows.h>\0" 2 TEXTINCLUDE
END BEGIN
"#include <windows.h>\0"
3 TEXTINCLUDE END
BEGIN
"\r\n" 3 TEXTINCLUDE
"\0" BEGIN
END "\r\n"
"\0"
#endif // APSTUDIO_INVOKED END
#endif // English (U.S.) resources #endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// #ifndef APSTUDIO_INVOKED
// Generated from the TEXTINCLUDE 3 resource. /////////////////////////////////////////////////////////////////////////////
// //
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED