From 20e39190332a3b51d6680a9e8dc90eb54cefce72 Mon Sep 17 00:00:00 2001 From: Rodolfo Osvaldo Bogado Date: Sun, 13 Jun 2010 19:41:07 +0000 Subject: [PATCH] apply James333 patch to make dx9 plugin use wxwidgets. some other minor warning fixes. thanks to James333 nice patch :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5679 8ced0084-cf51-0410-be5f-012b33b47a6e --- .../Core/VideoCommon/Src/VertexShaderGen.cpp | 2 +- .../Plugin_VideoDX9/Plugin_VideoDX9.vcproj | 27 +- .../Plugin_VideoDX9/Src/DlgSettings.cpp | 830 +++++++++++------- .../Plugins/Plugin_VideoDX9/Src/DlgSettings.h | 173 +++- Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 4 +- Source/Plugins/Plugin_VideoDX9/Src/main.cpp | 37 +- Source/Plugins/Plugin_VideoDX9/Src/resource.h | 54 -- .../Plugins/Plugin_VideoDX9/Src/resource.rc | 198 ----- 8 files changed, 718 insertions(+), 607 deletions(-) delete mode 100644 Source/Plugins/Plugin_VideoDX9/Src/resource.h delete mode 100644 Source/Plugins/Plugin_VideoDX9/Src/resource.rc diff --git a/Source/Core/VideoCommon/Src/VertexShaderGen.cpp b/Source/Core/VideoCommon/Src/VertexShaderGen.cpp index 7562c26ced..7f43508b02 100644 --- a/Source/Core/VideoCommon/Src/VertexShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/VertexShaderGen.cpp @@ -276,7 +276,7 @@ const char *GenerateVertexShaderCode(u32 components, API_TYPE api_type) if(color.enablelighting && alpha.enablelighting) { - // both have lighting, test if they use the same ligths + // both have lighting, test if they use the same lights int mask = 0; if(color.lightparams == alpha.lightparams) { diff --git a/Source/Plugins/Plugin_VideoDX9/Plugin_VideoDX9.vcproj b/Source/Plugins/Plugin_VideoDX9/Plugin_VideoDX9.vcproj index f045cd313b..c9e6498a4f 100644 --- a/Source/Plugins/Plugin_VideoDX9/Plugin_VideoDX9.vcproj +++ b/Source/Plugins/Plugin_VideoDX9/Plugin_VideoDX9.vcproj @@ -1,7 +1,7 @@ - - - - - - diff --git a/Source/Plugins/Plugin_VideoDX9/Src/DlgSettings.cpp b/Source/Plugins/Plugin_VideoDX9/Src/DlgSettings.cpp index bd47b43ddf..fb9b89f4b9 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/DlgSettings.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/DlgSettings.cpp @@ -15,10 +15,14 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ -#include -#include +#include +#include +#include +#include +#include +#include -#include "resource.h" +#include "DlgSettings.h" #include "W32Util/PropertySheet.h" #include "W32Util/ShellUtil.h" #include "FileUtil.h" @@ -30,329 +34,501 @@ #include "TextureCache.h" -const TCHAR *aspect_ratio_names[4] = { - _T("Auto"), - _T("Force 16:9 Widescreen"), - _T("Force 4:3 Standard"), - _T("Stretch to Window"), -}; - -struct TabDirect3D : public W32Util::Tab +BEGIN_EVENT_TABLE(GFXConfigDialogDX,wxDialog) + + EVT_CLOSE(GFXConfigDialogDX::OnClose) + EVT_BUTTON(ID_CLOSE, GFXConfigDialogDX::CloseClick) + + //Direct3D Tab + EVT_CHECKBOX(ID_VSYNC, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_CHECKBOX(ID_WIDESCREEN_HACK, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_CHOICE(ID_ASPECT, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_CHOICE(ID_ANTIALIASMODE, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_CHOICE(ID_EFBSCALEMODE, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_CHECKBOX(ID_EFB_ACCESS_ENABLE, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_CHECKBOX(ID_SAFETEXTURECACHE, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_RADIOBUTTON(ID_RADIO_SAFETEXTURECACHE_SAFE, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_RADIOBUTTON(ID_RADIO_SAFETEXTURECACHE_NORMAL, GFXConfigDialogDX::DirectXSettingsChanged) + EVT_RADIOBUTTON(ID_RADIO_SAFETEXTURECACHE_FAST, GFXConfigDialogDX::DirectXSettingsChanged) + + //Enhancements tab + EVT_CHECKBOX(ID_FORCEFILTERING, GFXConfigDialogDX::EnhancementsSettingsChanged) + EVT_CHECKBOX(ID_FORCEANISOTROPY, GFXConfigDialogDX::EnhancementsSettingsChanged) + EVT_CHECKBOX(ID_LOADHIRESTEXTURES, GFXConfigDialogDX::EnhancementsSettingsChanged) + EVT_CHECKBOX(ID_EFBSCALEDCOPY, GFXConfigDialogDX::EnhancementsSettingsChanged) + + //Advanced Tab + EVT_CHECKBOX(ID_DISABLEFOG, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_OVERLAYFPS, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_ENABLEEFBCOPY, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_RADIOBUTTON(ID_EFBTORAM, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_RADIOBUTTON(ID_EFBTOTEX, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_ENABLEHOTKEY, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_WIREFRAME, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_ENABLEXFB, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_ENABLEREALXFB, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_USENATIVEMIPS, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_TEXDUMP, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_DUMPFRAMES, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_OVERLAYSTATS, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_PROJSTATS, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_SHADERERRORS, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_TEXFMT_OVERLAY, GFXConfigDialogDX::AdvancedSettingsChanged) + EVT_CHECKBOX(ID_TEXFMT_CENTER, GFXConfigDialogDX::AdvancedSettingsChanged) + +END_EVENT_TABLE() + +GFXConfigDialogDX::GFXConfigDialogDX(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style) +: wxDialog(parent, id, title, position, size, style) { - void Init(HWND hDlg) - { - TCHAR tempstr[2000]; - - for (int i = 0; i < D3D::GetNumAdapters(); i++) - { - const D3D::Adapter &adapter = D3D::GetAdapter(i); - swprintf_s( tempstr, _T("%hs"), adapter.ident.Description ); - ComboBox_AddString(GetDlgItem(hDlg, IDC_ADAPTER), tempstr); - } - - const D3D::Adapter &adapter = D3D::GetAdapter(g_Config.iAdapter); - ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_ADAPTER), g_Config.iAdapter); - - for (int i = 0; i < (int)adapter.aa_levels.size(); i++) - { - swprintf_s( tempstr, _T("%hs"), adapter.aa_levels[i].name ); - ComboBox_AddString(GetDlgItem(hDlg, IDC_ANTIALIASMODE), tempstr); - } - ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_ANTIALIASMODE), g_Config.iMultisampleMode); - if (adapter.aa_levels.size() == 1) - { - 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++) - { - ComboBox_AddString(GetDlgItem(hDlg, IDC_ASPECTRATIO), aspect_ratio_names[i]); - } - ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_ASPECTRATIO), g_Config.iAspectRatio); - - Button_SetCheck(GetDlgItem(hDlg, IDC_VSYNC), g_Config.bVSync); - Button_SetCheck(GetDlgItem(hDlg, IDC_WIDESCREEN_HACK), g_Config.bWidescreenHack); - Button_SetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE), g_Config.bSafeTextureCache); - - if(g_Config.iSafeTextureCache_ColorSamples == 0) - { - Button_SetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_SAFE), true); - } - else - { - if(g_Config.iSafeTextureCache_ColorSamples > 128) - { - Button_SetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_NORMAL), true); - } - else - { - Button_SetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_FAST), true); - } - } - Button_Enable(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_SAFE),g_Config.bSafeTextureCache); - Button_Enable(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_NORMAL),g_Config.bSafeTextureCache); - Button_Enable(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_FAST),g_Config.bSafeTextureCache); - - Button_SetCheck(GetDlgItem(hDlg, IDC_EFB_ACCESS_ENABLE), g_Config.bEFBAccessEnable); - - std::wstring str; - if( !D3D::DXCheck(str) ) { - SNDMSG( GetDlgItem(hDlg, IDC_DXCHK), EM_AUTOURLDETECT, TRUE, 0 ); - SNDMSG( GetDlgItem(hDlg, IDC_DXCHK), EM_SETEVENTMASK, 0, ENM_LINK ); - str.append( _T("\nhttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3") ); - } - Edit_SetText(GetDlgItem(hDlg, IDC_DXCHK), str.c_str()); - } - - void Command(HWND hDlg,WPARAM wParam) - { - switch (LOWORD(wParam)) - { - case IDC_ASPECTRATIO: - g_Config.iAspectRatio = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_ASPECTRATIO)); - break; - case IDC_WIDESCREEN_HACK: - g_Config.bWidescreenHack = Button_GetCheck(GetDlgItem(hDlg, IDC_WIDESCREEN_HACK)) ? true : false; - break; - case IDC_SAFE_TEXTURE_CACHE: - g_Config.bSafeTextureCache = Button_GetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE)) == 0 ? false : true; - Button_Enable(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_SAFE),g_Config.bSafeTextureCache); - Button_Enable(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_NORMAL),g_Config.bSafeTextureCache); - Button_Enable(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_FAST),g_Config.bSafeTextureCache); - break; - case IDC_EFB_ACCESS_ENABLE: - g_Config.bEFBAccessEnable = Button_GetCheck(GetDlgItem(hDlg, IDC_EFB_ACCESS_ENABLE)) == 0 ? false : true; - break; - default: - break; - } - } - - int Notify(HWND hDlg, LPARAM lParam) - { - switch (((LPNMHDR)lParam)->code) { - case EN_LINK: - { - ENLINK* enl = (ENLINK*)lParam; - if( enl->msg == WM_LBUTTONDOWN ) { - TCHAR dxlink[256]; - TEXTRANGE txtrng = {enl->chrg, dxlink}; - SNDMSG( GetDlgItem(hDlg, IDC_DXCHK), EM_GETTEXTRANGE, 0, (LPARAM)&txtrng ); - ShellExecute( NULL, NULL, dxlink, NULL, NULL, SW_SHOWNORMAL ); - } - } break; - } - return 0; - } - - void Apply(HWND hDlg) - { - g_Config.iAdapter = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_ADAPTER)); - 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; - if(Button_GetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_SAFE))) - { - g_Config.iSafeTextureCache_ColorSamples = 0; - } - else - { - if(Button_GetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE_NORMAL))) - { - if(g_Config.iSafeTextureCache_ColorSamples < 512) - { - g_Config.iSafeTextureCache_ColorSamples = 512; - } - } - else - { - if(g_Config.iSafeTextureCache_ColorSamples > 128 || g_Config.iSafeTextureCache_ColorSamples == 0) - { - g_Config.iSafeTextureCache_ColorSamples = 128; - } - } - } - g_Config.Save((std::string(File::GetUserPath(D_CONFIG_IDX)) + "gfx_dx9.ini").c_str()); - } -}; - -struct TabAdvanced : public W32Util::Tab -{ - void Init(HWND hDlg) - { -// HWND opt = GetDlgItem(hDlg,IDC_DLOPTLEVEL); -// ComboBox_AddString(opt,"0: Interpret (slowest, most compatible)"); -// ComboBox_AddString(opt,"1: Compile lists and decode vertex lists"); - //ComboBox_AddString(opt,"2: Compile+decode to vbufs and use hw xform"); - //ComboBox_AddString(opt,"Recompile to vbuffers and shaders"); -// ComboBox_SetCurSel(opt,g_Config.iCompileDLsLevel); - - Button_SetCheck(GetDlgItem(hDlg,IDC_OSDHOTKEY), g_Config.bOSDHotKey); - Button_SetCheck(GetDlgItem(hDlg,IDC_OVERLAYFPS), g_Config.bShowFPS); - Button_SetCheck(GetDlgItem(hDlg,IDC_OVERLAYSTATS), g_Config.bOverlayStats); - Button_SetCheck(GetDlgItem(hDlg,IDC_OVERLAYPROJSTATS), g_Config.bOverlayProjStats); - Button_SetCheck(GetDlgItem(hDlg,IDC_WIREFRAME), g_Config.bWireFrame); - Button_SetCheck(GetDlgItem(hDlg,IDC_TEXDUMP), g_Config.bDumpTextures); - Button_SetCheck(GetDlgItem(hDlg,IDC_DUMPFRAMES), g_Config.bDumpFrames); - Button_SetCheck(GetDlgItem(hDlg,IDC_SHOWSHADERERRORS), g_Config.bShowShaderErrors); - Button_SetCheck(GetDlgItem(hDlg,IDC_DISABLEFOG), g_Config.bDisableFog); - Button_SetCheck(GetDlgItem(hDlg,IDC_ENABLEEFBCOPY), !g_Config.bEFBCopyDisable); - Button_SetCheck(GetDlgItem(hDlg,IDC_ENABLEXFB),g_Config.bUseXFB); - Button_SetCheck(GetDlgItem(hDlg,IDC_ENABLEREALXFB),g_Config.bUseRealXFB); - Button_SetCheck(GetDlgItem(hDlg,IDC_USENATIVEMIPS),g_Config.bUseNativeMips); - if(g_Config.bCopyEFBToTexture) - Button_SetCheck(GetDlgItem(hDlg,IDC_EFBTOTEX), true); - else - Button_SetCheck(GetDlgItem(hDlg,IDC_EFBTORAM), true); - - - Button_SetCheck(GetDlgItem(hDlg,IDC_TEXFMT_OVERLAY), g_Config.bTexFmtOverlayEnable); - Button_SetCheck(GetDlgItem(hDlg,IDC_TEXFMT_CENTER), g_Config.bTexFmtOverlayCenter); - Button_GetCheck(GetDlgItem(hDlg,IDC_TEXFMT_OVERLAY)) ? Button_Enable(GetDlgItem(hDlg,IDC_TEXFMT_CENTER), true) : Button_Enable(GetDlgItem(hDlg,IDC_TEXFMT_CENTER), false); - Button_GetCheck(GetDlgItem(hDlg,IDC_ENABLEEFBCOPY)) ? Button_Enable(GetDlgItem(hDlg,IDC_EFBTORAM), true) : Button_Enable(GetDlgItem(hDlg,IDC_EFBTORAM), false); - Button_GetCheck(GetDlgItem(hDlg,IDC_ENABLEEFBCOPY)) ? Button_Enable(GetDlgItem(hDlg,IDC_EFBTOTEX), true) : Button_Enable(GetDlgItem(hDlg,IDC_EFBTOTEX), false); - } - void Command(HWND hDlg,WPARAM wParam) - { - switch (LOWORD(wParam)) - { - case IDC_ENABLEXFB: - { - g_Config.bUseXFB = Button_GetCheck(GetDlgItem(hDlg, IDC_ENABLEXFB)) ? true : false; - } - break; - case IDC_ENABLEREALXFB: - { - g_Config.bUseXFB = Button_GetCheck(GetDlgItem(hDlg, IDC_ENABLEREALXFB)) ? true : (Button_GetCheck(GetDlgItem(hDlg, IDC_ENABLEXFB)) ? true : false); - g_Config.bUseRealXFB = Button_GetCheck(GetDlgItem(hDlg, IDC_ENABLEREALXFB)) ? true : false; - Button_GetCheck(GetDlgItem(hDlg, IDC_ENABLEREALXFB)) ? Button_Enable(GetDlgItem(hDlg,IDC_ENABLEXFB), false) : Button_Enable(GetDlgItem(hDlg,IDC_ENABLEXFB), true); - } - break; - case IDC_ENABLEEFBCOPY: - { - Button_GetCheck(GetDlgItem(hDlg,IDC_ENABLEEFBCOPY)) ? Button_Enable(GetDlgItem(hDlg,IDC_EFBTORAM), true) : Button_Enable(GetDlgItem(hDlg,IDC_EFBTORAM), false); - Button_GetCheck(GetDlgItem(hDlg,IDC_ENABLEEFBCOPY)) ? Button_Enable(GetDlgItem(hDlg,IDC_EFBTOTEX), true) : Button_Enable(GetDlgItem(hDlg,IDC_EFBTOTEX), false); - } - break; - case IDC_TEXFMT_OVERLAY: - { - Button_GetCheck(GetDlgItem(hDlg, IDC_TEXFMT_OVERLAY)) ? Button_Enable(GetDlgItem(hDlg,IDC_TEXFMT_CENTER), true) : Button_Enable(GetDlgItem(hDlg,IDC_TEXFMT_CENTER), false); - } - break; - default: - break; - } - } - void Apply(HWND hDlg) - { - g_Config.bTexFmtOverlayEnable = Button_GetCheck(GetDlgItem(hDlg,IDC_TEXFMT_OVERLAY)) ? true : false; - g_Config.bTexFmtOverlayCenter = Button_GetCheck(GetDlgItem(hDlg,IDC_TEXFMT_CENTER)) ? true : false; - - g_Config.bOSDHotKey = Button_GetCheck(GetDlgItem(hDlg,IDC_OSDHOTKEY)) ? true : false; - g_Config.bShowFPS = Button_GetCheck(GetDlgItem(hDlg,IDC_OVERLAYFPS)) ? true : false; - g_Config.bOverlayStats = Button_GetCheck(GetDlgItem(hDlg,IDC_OVERLAYSTATS)) ? true : false; - g_Config.bOverlayProjStats = Button_GetCheck(GetDlgItem(hDlg,IDC_OVERLAYPROJSTATS)) ? true : false; - g_Config.bWireFrame = Button_GetCheck(GetDlgItem(hDlg,IDC_WIREFRAME)) ? true : false; - g_Config.bDumpTextures = Button_GetCheck(GetDlgItem(hDlg,IDC_TEXDUMP)) ? true : false; - g_Config.bDumpFrames = Button_GetCheck(GetDlgItem(hDlg,IDC_DUMPFRAMES)) ? true : false; - g_Config.bShowShaderErrors = Button_GetCheck(GetDlgItem(hDlg,IDC_SHOWSHADERERRORS)) ? true : false; - g_Config.bDisableFog = Button_GetCheck(GetDlgItem(hDlg,IDC_DISABLEFOG)) ? true : false; - g_Config.bEFBCopyDisable = Button_GetCheck(GetDlgItem(hDlg,IDC_ENABLEEFBCOPY)) ? false : true; - g_Config.bCopyEFBToTexture = Button_GetCheck(GetDlgItem(hDlg,IDC_EFBTORAM)) ? false : true; - g_Config.bUseXFB = Button_GetCheck(GetDlgItem(hDlg, IDC_ENABLEXFB)) ? true : false; - g_Config.bUseRealXFB = Button_GetCheck(GetDlgItem(hDlg, IDC_ENABLEREALXFB)) ? true : false; - g_Config.bUseNativeMips = Button_GetCheck(GetDlgItem(hDlg, IDC_USENATIVEMIPS)) ? true : false; - g_Config.Save((std::string(File::GetUserPath(D_CONFIG_IDX)) + "gfx_dx9.ini").c_str()); - - if( D3D::dev != NULL ) { - D3D::SetRenderState( D3DRS_FILLMODE, g_Config.bWireFrame ? D3DFILL_WIREFRAME : D3DFILL_SOLID ); - } - } -}; - -struct TabEnhancements : public W32Util::Tab -{ - void Init(HWND hDlg) - { - Button_SetCheck(GetDlgItem(hDlg, IDC_FORCEFILTERING),g_Config.bForceFiltering); - Button_SetCheck(GetDlgItem(hDlg, IDC_FORCEANISOTROPY),g_Config.iMaxAnisotropy > 1); - Button_SetCheck(GetDlgItem(hDlg, IDC_LOADHIRESTEXTURE), g_Config.bHiresTextures); - Button_SetCheck(GetDlgItem(hDlg, IDC_EFBSCALEDCOPY), g_Config.bCopyEFBScaled); - - /* - Temporarily disabled the old postprocessing code since it wasn't working anyway. - New postprocessing code will come sooner or later, sharing shaders and framework with - the GL postprocessing. - - HWND pp = GetDlgItem(hDlg, IDC_POSTPROCESSEFFECT); - const char **names = Postprocess::GetPostprocessingNames(); - int i = 0; - while (true) - { - if (!names[i]) - break; - - MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, names[i], -1, tempwstr, 2000); - ComboBox_AddString(pp, tempwstr); - i++; - } - ComboBox_SetCurSel(pp, g_Config.iPostprocessEffect); - */ - } - void Command(HWND hDlg, WPARAM wParam) - { - /* - switch (LOWORD(wParam)) - { - default: - break; - } - */ - } - void Apply(HWND hDlg) - { - g_Config.iMaxAnisotropy = Button_GetCheck(GetDlgItem(hDlg, IDC_FORCEANISOTROPY)) ? 8 : 1; - g_Config.bForceFiltering = Button_GetCheck(GetDlgItem(hDlg, IDC_FORCEFILTERING)) ? true : false; - g_Config.bHiresTextures = Button_GetCheck(GetDlgItem(hDlg, IDC_LOADHIRESTEXTURE)) ? true : false; - g_Config.bCopyEFBScaled = Button_GetCheck(GetDlgItem(hDlg, IDC_EFBSCALEDCOPY)) ? true : false; - g_Config.Save((std::string(File::GetUserPath(D_CONFIG_IDX)) + "gfx_dx9.ini").c_str()); - } -}; - - -void DlgSettings_Show(HINSTANCE hInstance, HWND _hParent) -{ - bool tfoe = g_Config.bTexFmtOverlayEnable; - bool tfoc = g_Config.bTexFmtOverlayCenter; - - g_Config.Load((std::string(File::GetUserPath(D_CONFIG_IDX)) + "gfx_dx9.ini").c_str()); - W32Util::PropSheet sheet; - sheet.Add(new TabDirect3D, (LPCTSTR)IDD_SETTINGS,_T("Direct3D")); - sheet.Add(new TabEnhancements, (LPCTSTR)IDD_ENHANCEMENTS,_T("Enhancements")); - sheet.Add(new TabAdvanced, (LPCTSTR)IDD_ADVANCED,_T("Advanced")); - -#ifdef DEBUGFAST - sheet.Show(hInstance,_hParent,_T("DX9 Graphics Plugin (DEBUGFAST)")); -#elif defined _DEBUG - sheet.Show(hInstance,_hParent,_T("DX9 Graphics Plugin (DEBUG)")); -#else - sheet.Show(hInstance,_hParent,_T("DX9 Graphics Plugin")); -#endif - - if ((tfoe != g_Config.bTexFmtOverlayEnable) || - ((g_Config.bTexFmtOverlayEnable) && ( tfoc != g_Config.bTexFmtOverlayCenter))) - { - TextureCache::Invalidate(false); - } +} +// Close and unload the window +// --------------- +GFXConfigDialogDX::~GFXConfigDialogDX() +{ + INFO_LOG(CONSOLE, "GFXConfigDialogDX Closed"); +} +void GFXConfigDialogDX::OnClose(wxCloseEvent& event) +{ + //INFO_LOG(CONSOLE, "OnClose"); + CloseWindow(); +} +void GFXConfigDialogDX::CloseClick(wxCommandEvent& WXUNUSED (event)) +{ + //INFO_LOG(CONSOLE, "CloseClick"); + CloseWindow(); +} +void GFXConfigDialogDX::InitializeGUIValues() +{ + // General Display Settings + m_AdapterCB->SetSelection(g_Config.iAdapter); + m_VSync->SetValue(g_Config.bVSync); + m_WidescreenHack->SetValue(g_Config.bWidescreenHack); + m_KeepAR->SetSelection(g_Config.iAspectRatio); + + m_MSAAModeCB->SetSelection(g_Config.iMultisampleMode); + m_EFBScaleMode->SetSelection(g_Config.iEFBScale); + m_EnableEFBAccess->SetValue(g_Config.bEFBAccessEnable); + m_SafeTextureCache->SetValue(g_Config.bSafeTextureCache); + if(g_Config.iSafeTextureCache_ColorSamples == 0) + m_Radio_SafeTextureCache_Safe->SetValue(true); + else + if(g_Config.iSafeTextureCache_ColorSamples > 128) + m_Radio_SafeTextureCache_Normal->SetValue(true); + else + m_Radio_SafeTextureCache_Fast->SetValue(true); + + // Enhancements + if(g_Config.iMaxAnisotropy == 1) + m_MaxAnisotropy->SetValue(false); + else + { + if(g_Config.iMaxAnisotropy == 8) + m_MaxAnisotropy->SetValue(true); + } + m_ForceFiltering->SetValue(g_Config.bForceFiltering); + m_HiresTextures->SetValue(g_Config.bHiresTextures); + m_MSAAModeCB->SetSelection(g_Config.iMultisampleMode); + m_EFBScaledCopy->SetValue(g_Config.bCopyEFBScaled); + + //Advance + m_DisableFog->SetValue(g_Config.bDisableFog); + m_OverlayFPS->SetValue(g_Config.bShowFPS); + + m_CopyEFB->SetValue(!g_Config.bEFBCopyDisable); + g_Config.bCopyEFBToTexture ? m_Radio_CopyEFBToGL->SetValue(true) : m_Radio_CopyEFBToRAM->SetValue(true); + + m_EnableHotkeys->SetValue(g_Config.bOSDHotKey); + m_WireFrame->SetValue(g_Config.bWireFrame); + m_EnableXFB->SetValue(g_Config.bUseXFB); + m_EnableRealXFB->SetValue(g_Config.bUseRealXFB); + m_UseNativeMips->SetValue(g_Config.bUseNativeMips); + + m_DumpTextures->SetValue(g_Config.bDumpTextures); + m_DumpFrames->SetValue(g_Config.bDumpFrames); + m_OverlayStats->SetValue(g_Config.bOverlayStats); + m_ProjStats->SetValue(g_Config.bOverlayProjStats); + m_ShaderErrors->SetValue(g_Config.bShowShaderErrors); + m_TexfmtOverlay->SetValue(g_Config.bTexFmtOverlayEnable); + m_TexfmtCenter->SetValue(g_Config.bTexFmtOverlayCenter); + m_TexfmtCenter->Enable(m_TexfmtOverlay->IsChecked()); +} +void GFXConfigDialogDX::CreateGUIControls() + { + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) ); + + wxBoxSizer* sMain; + sMain = new wxBoxSizer( wxVERTICAL ); + + m_Notebook = new wxNotebook( this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 ); + m_PageDirect3D = new wxPanel( m_Notebook, ID_DIRERCT3D, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + m_PageEnhancements = new wxPanel( m_Notebook, ID_PAGEENHANCEMENTS, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + m_PageAdvanced = new wxPanel( m_Notebook, ID_PAGEADVANCED, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + + //D3D Tab + wxStaticBoxSizer* sbBasic; + sbBasic = new wxStaticBoxSizer( new wxStaticBox( m_PageDirect3D, wxID_ANY, wxT("Basic") ), wxVERTICAL ); + m_AdapterText = new wxStaticText( m_PageDirect3D, wxID_ANY, wxT("Adapter:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_AdapterText->Wrap( -1 ); + + wxArrayString arrayStringFor_AdapterCB; + for (int i = 0; i < D3D::GetNumAdapters(); ++i) + { + const D3D::Adapter &adapter = D3D::GetAdapter(i); + arrayStringFor_AdapterCB.Add(wxString::FromAscii(adapter.ident.Description)); + } + const D3D::Adapter &adapter = D3D::GetAdapter(g_Config.iAdapter); + + m_AdapterCB = new wxChoice( m_PageDirect3D, ID_ADAPTER, wxDefaultPosition, wxDefaultSize, arrayStringFor_AdapterCB, 0); + m_VSync = new wxCheckBox( m_PageDirect3D, ID_VSYNC, wxT("Vsync"), wxPoint( -1,-1 ), wxDefaultSize, 0 ); + m_WidescreenHack = new wxCheckBox( m_PageDirect3D, ID_WIDESCREEN_HACK, wxT("Widescreen Hack"), wxPoint( -1,-1 ), wxDefaultSize, 0 ); + + m_staticARText = new wxStaticText( m_PageDirect3D, wxID_ANY, wxT("Aspect Ratio:"), wxPoint( -1,-1 ), wxDefaultSize, 0 ); + m_staticARText->Wrap( -1 ); + wxString m_KeepARChoices[] = { wxT("Auto"), wxT("Force 16:9 Widescreen"), wxT("Force 4:3 Standart"), wxT("Stretch to Window") }; + int m_KeepARNChoices = sizeof( m_KeepARChoices ) / sizeof( wxString ); + m_KeepAR = new wxChoice( m_PageDirect3D, ID_ASPECT, wxPoint( -1,-1 ), wxDefaultSize, m_KeepARNChoices, m_KeepARChoices, 0 ); + m_KeepAR->SetSelection( 0 ); + + m_staticMSAAText = new wxStaticText( m_PageDirect3D, wxID_ANY, wxT("SSAA mode:"), wxPoint( -1,-1 ), wxDefaultSize, 0 ); + m_staticMSAAText->Wrap( -1 ); + wxArrayString arrayStringFor_MSAAModeCB; + for (int i = 0; i < (int)adapter.aa_levels.size(); i++) + { + arrayStringFor_MSAAModeCB.Add(wxString::FromAscii(adapter.aa_levels[i].name)); + } + m_MSAAModeCB = new wxChoice( m_PageDirect3D, ID_ANTIALIASMODE, wxPoint( -1,-1 ), wxDefaultSize, arrayStringFor_MSAAModeCB, 0); + m_EFBScaleText = new wxStaticText( m_PageDirect3D, wxID_ANY, wxT("EFB Scale:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_EFBScaleText->Wrap( -1 ); + wxString m_EFBScaleModeChoices[] = { wxT("Auto (Fractional)"), wxT("Auto (Integral)"), wxT("1x"), wxT("2x"), wxT("3x") }; + int m_EFBScaleModeNChoices = sizeof( m_EFBScaleModeChoices ) / sizeof( wxString ); + m_EFBScaleMode = new wxChoice( m_PageDirect3D, ID_EFBSCALEMODE, wxDefaultPosition, wxDefaultSize, m_EFBScaleModeNChoices, m_EFBScaleModeChoices, 0 ); + + m_EnableEFBAccess = new wxCheckBox( m_PageDirect3D, ID_EFB_ACCESS_ENABLE, wxT("Enable CPU->EFB access"), wxDefaultPosition, wxDefaultSize, 0 ); + + wxStaticBoxSizer* sbSTC; + sbSTC = new wxStaticBoxSizer( new wxStaticBox( m_PageDirect3D, wxID_ANY, wxT("Safe Texture Cache") ), wxVERTICAL ); + m_SafeTextureCache = new wxCheckBox( m_PageDirect3D, ID_SAFETEXTURECACHE, wxT("Use Safe Texture Cache"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Radio_SafeTextureCache_Safe = new wxRadioButton( m_PageDirect3D, ID_RADIO_SAFETEXTURECACHE_SAFE, wxT("Safe"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Radio_SafeTextureCache_Normal = new wxRadioButton( m_PageDirect3D, ID_RADIO_SAFETEXTURECACHE_NORMAL, wxT("Normal"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Radio_SafeTextureCache_Fast = new wxRadioButton( m_PageDirect3D, ID_RADIO_SAFETEXTURECACHE_FAST, wxT("Fast"), wxDefaultPosition, wxDefaultSize, 0 ); + + // Sizers + wxGridBagSizer* sBasic; + wxBoxSizer* sGeneral; + + sGeneral = new wxBoxSizer( wxVERTICAL ); + sBasic = new wxGridBagSizer( 0, 0 ); + sBasic->SetFlexibleDirection( wxBOTH ); + sBasic->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + sBasic->Add( m_AdapterText, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sBasic->Add( m_AdapterCB, wxGBPosition( 0, 1 ), wxGBSpan( 1, 2 ), wxALL|wxEXPAND, 5 ); + sBasic->Add( m_VSync, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + sBasic->Add( m_WidescreenHack, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sBasic->Add( m_staticARText, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + sBasic->Add( m_KeepAR, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sBasic->Add( m_staticMSAAText, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + sBasic->Add( m_MSAAModeCB, wxGBPosition( 3, 1 ), wxGBSpan( 1, 2 ), wxALL, 5 ); + sBasic->Add( m_EFBScaleText, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sBasic->Add( m_EFBScaleMode, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sBasic->Add( m_EnableEFBAccess, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sbBasic->Add( sBasic, 0, 0, 5 ); + sGeneral->Add( sbBasic, 0, wxEXPAND|wxALL, 5 ); + + wxGridBagSizer* sSTC; + sSTC = new wxGridBagSizer( 0, 0 ); + sSTC->SetFlexibleDirection( wxBOTH ); + sSTC->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + sSTC->Add( m_SafeTextureCache, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sSTC->Add( 0, 0, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 ); + sSTC->Add( m_Radio_SafeTextureCache_Safe, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sSTC->Add( m_Radio_SafeTextureCache_Normal, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sSTC->Add( m_Radio_SafeTextureCache_Fast, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sbSTC->Add( sSTC, 0, wxEXPAND, 5 ); + sGeneral->Add( sbSTC, 0, wxEXPAND|wxALL, 5 ); + + m_PageDirect3D->SetSizer( sGeneral ); + m_PageDirect3D->Layout(); + sGeneral->Fit( m_PageDirect3D ); + m_Notebook->AddPage( m_PageDirect3D, wxT("Direct3D"), true ); + + //Enhancements Tab + wxStaticBoxSizer* sbTextureFilter; + sbTextureFilter = new wxStaticBoxSizer( new wxStaticBox( m_PageEnhancements, wxID_ANY, wxT("Texture Filtering") ), wxVERTICAL ); + m_ForceFiltering = new wxCheckBox( m_PageEnhancements, ID_FORCEFILTERING, wxT("Force bi/trilinear filtering (Breaks video in several Wii games )"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MaxAnisotropy = new wxCheckBox( m_PageEnhancements, ID_FORCEANISOTROPY, wxT("Enable 16x Anisotropy filtering"), wxDefaultPosition, wxDefaultSize, 0 ); + m_HiresTextures = new wxCheckBox( m_PageEnhancements, ID_LOADHIRESTEXTURES, wxT("Enable hires Texture loading"), wxDefaultPosition, wxDefaultSize, 0 ); + + wxStaticBoxSizer* sbEFBHacks; + sbEFBHacks = new wxStaticBoxSizer( new wxStaticBox( m_PageEnhancements, wxID_ANY, wxT("EFB Hacks") ), wxVERTICAL ); + m_EFBScaledCopy = new wxCheckBox( m_PageEnhancements, ID_EFBSCALEDCOPY, wxT("EFB Scaled Copy"), wxDefaultPosition, wxDefaultSize, 0 ); + + // Sizers + wxBoxSizer* sEnhancements; + wxGridBagSizer* sTextureFilter; + sEnhancements = new wxBoxSizer( wxVERTICAL ); + sTextureFilter = new wxGridBagSizer( 0, 0 ); + sTextureFilter->SetFlexibleDirection( wxBOTH ); + sTextureFilter->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + sTextureFilter->Add( m_ForceFiltering, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sTextureFilter->Add( m_MaxAnisotropy, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sTextureFilter->Add( m_HiresTextures, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sbTextureFilter->Add( sTextureFilter, 0, wxEXPAND, 5 ); + sEnhancements->Add( sbTextureFilter, 0, wxEXPAND|wxALL, 5 ); + + wxGridBagSizer* sEFBHacks; + sEFBHacks = new wxGridBagSizer( 0, 0 ); + sEFBHacks->SetFlexibleDirection( wxBOTH ); + sEFBHacks->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + sEFBHacks->Add( m_EFBScaledCopy, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sbEFBHacks->Add( sEFBHacks, 1, wxEXPAND, 5 ); + sEnhancements->Add( sbEFBHacks, 0, wxEXPAND|wxALL, 5 ); + + m_PageEnhancements->SetSizer( sEnhancements ); + m_PageEnhancements->Layout(); + sEnhancements->Fit( m_PageEnhancements ); + m_Notebook->AddPage( m_PageEnhancements, wxT("Enhancements"), false ); + + //Advanced Tab + wxStaticBoxSizer* sbSettings; + sbSettings = new wxStaticBoxSizer( new wxStaticBox( m_PageAdvanced, wxID_ANY, wxT("Settings") ), wxVERTICAL ); + m_DisableFog = new wxCheckBox( m_PageAdvanced, ID_DISABLEFOG, wxT("Disable Fog"), wxDefaultPosition, wxDefaultSize, 0 ); + m_OverlayFPS = new wxCheckBox( m_PageAdvanced, ID_OVERLAYFPS, wxT("Overlay FPS Counter"), wxDefaultPosition, wxDefaultSize, 0 ); + m_CopyEFB = new wxCheckBox( m_PageAdvanced, ID_ENABLEEFBCOPY, wxT("Enable EFB Copy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_EnableHotkeys = new wxCheckBox( m_PageAdvanced, ID_ENABLEHOTKEY, wxT("Enable Hotkey"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Radio_CopyEFBToRAM = new wxRadioButton( m_PageAdvanced, ID_EFBTORAM, wxT("To Ram"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Radio_CopyEFBToGL = new wxRadioButton( m_PageAdvanced, ID_EFBTOTEX, wxT("To Texture"), wxDefaultPosition, wxDefaultSize, 0 ); + m_WireFrame = new wxCheckBox( m_PageAdvanced, ID_WIREFRAME, wxT("Enable Wireframe"), wxDefaultPosition, wxDefaultSize, 0 ); + m_EnableRealXFB = new wxCheckBox( m_PageAdvanced, ID_ENABLEREALXFB, wxT("Enable Real XFB"), wxDefaultPosition, wxDefaultSize, 0 ); + m_EnableXFB = new wxCheckBox( m_PageAdvanced, ID_ENABLEXFB, wxT("Enable XFB"), wxDefaultPosition, wxDefaultSize, 0 ); + m_UseNativeMips = new wxCheckBox( m_PageAdvanced, ID_USENATIVEMIPS, wxT("Use Native Mips"), wxDefaultPosition, wxDefaultSize, 0 ); + + wxStaticBoxSizer* sbDataDumping; + sbDataDumping = new wxStaticBoxSizer( new wxStaticBox( m_PageAdvanced, wxID_ANY, wxT("Data Dumping") ), wxVERTICAL ); + m_DumpTextures = new wxCheckBox( m_PageAdvanced, ID_TEXDUMP, wxT("Dump Textures"), wxDefaultPosition, wxDefaultSize, 0 ); + m_DumpFrames = new wxCheckBox( m_PageAdvanced, ID_DUMPFRAMES, wxT("Dump Frames To User/Dump/Frames"), wxDefaultPosition, wxDefaultSize, 0 ); + + wxStaticBoxSizer* sbDebuggingTools; + sbDebuggingTools = new wxStaticBoxSizer( new wxStaticBox( m_PageAdvanced, wxID_ANY, wxT("Debugging tools") ), wxVERTICAL ); + m_OverlayStats = new wxCheckBox( m_PageAdvanced, ID_OVERLAYSTATS, wxT("Overlay Some Statics"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ShaderErrors = new wxCheckBox( m_PageAdvanced, ID_SHADERERRORS, wxT("Show Shader Compilation Errors"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ShaderErrors->Enable( false ); + m_TexfmtOverlay = new wxCheckBox( m_PageAdvanced, ID_TEXFMT_OVERLAY, wxT("Enable TexFmt Overlay"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TexfmtCenter = new wxCheckBox( m_PageAdvanced, ID_TEXFMT_CENTER, wxT("Centered"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ProjStats = new wxCheckBox( m_PageAdvanced, wxID_ANY, wxT("Overlay Projection Stats"), wxDefaultPosition, wxDefaultSize, 0 ); + + // Sizers + wxBoxSizer* sAdvanced; + sAdvanced = new wxBoxSizer( wxVERTICAL ); + + wxGridBagSizer* sSettings; + sSettings = new wxGridBagSizer( 0, 0 ); + sSettings->SetFlexibleDirection( wxBOTH ); + sSettings->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + sSettings->Add( m_DisableFog, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sSettings->Add( m_OverlayFPS, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxLEFT, 20 ); + sSettings->Add( m_CopyEFB, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sSettings->Add( m_EnableHotkeys, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxLEFT, 20 ); + sSettings->Add( m_Radio_CopyEFBToRAM, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 10 ); + sSettings->Add( m_Radio_CopyEFBToGL, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 10 ); + sSettings->Add( m_WireFrame, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxLEFT, 20 ); + sSettings->Add( m_EnableRealXFB, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxLEFT, 20 ); + sSettings->Add( m_EnableXFB, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sSettings->Add( m_UseNativeMips, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sbSettings->Add( sSettings, 0, wxEXPAND, 5 ); + sAdvanced->Add( sbSettings, 0, wxEXPAND|wxALL, 5 ); + + wxGridBagSizer* sDataDumping; + sDataDumping = new wxGridBagSizer( 0, 0 ); + sDataDumping->SetFlexibleDirection( wxBOTH ); + sDataDumping->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + sDataDumping->Add( m_DumpTextures, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sDataDumping->Add( m_DumpFrames, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sbDataDumping->Add( sDataDumping, 0, wxEXPAND, 5 ); + sAdvanced->Add( sbDataDumping, 0, wxEXPAND|wxALL, 5 ); + + wxGridBagSizer* sDebuggingTools; + sDebuggingTools = new wxGridBagSizer( 0, 0 ); + sDebuggingTools->SetFlexibleDirection( wxBOTH ); + sDebuggingTools->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + sDebuggingTools->Add( m_OverlayStats, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sDebuggingTools->Add( m_ShaderErrors, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sDebuggingTools->Add( m_TexfmtOverlay, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sDebuggingTools->Add( m_TexfmtCenter, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sDebuggingTools->Add( m_ProjStats, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 ); + sbDebuggingTools->Add( sDebuggingTools, 0, wxEXPAND, 5 ); + sAdvanced->Add( sbDebuggingTools, 0, wxEXPAND|wxALL, 5 ); + + m_PageAdvanced->SetSizer( sAdvanced ); + m_PageAdvanced->Layout(); + sAdvanced->Fit( m_PageAdvanced ); + m_Notebook->AddPage( m_PageAdvanced, wxT("Advanced"), false ); + + sMain->Add( m_Notebook, 1, wxALL|wxEXPAND, 5 ); + + //Buttons + wxBoxSizer* sButtons; + sButtons = new wxBoxSizer( wxVERTICAL ); + m_Close = new wxButton( this, ID_CLOSE, wxT("Close"), wxDefaultPosition, wxDefaultSize, 0 ); + sButtons->Add( m_Close, 0, wxALL|wxEXPAND, 5 ); + sMain->Add( sButtons, 0, wxALIGN_RIGHT, 5 ); + + this->SetSizer( sMain ); + this->Layout(); + + InitializeGUIValues(); + + Fit(); + Center(); + UpdateGUI(); +} +void GFXConfigDialogDX::DirectXSettingsChanged(wxCommandEvent& event) +{ + switch (event.GetId()) + { + case ID_ADAPTER: + g_Config.iAdapter = m_AdapterCB->GetSelection(); + break; + case ID_VSYNC: + g_Config.bVSync = m_VSync->IsChecked(); + break; + case ID_WIDESCREEN_HACK: + g_Config.bWidescreenHack = m_WidescreenHack->IsChecked(); + break; + case ID_ASPECT: + g_Config.iAspectRatio = m_KeepAR->GetSelection(); + break; + case ID_ANTIALIASMODE: + g_Config.iMultisampleMode = m_MSAAModeCB->GetSelection(); + break; + case ID_EFBSCALEMODE: + g_Config.iEFBScale = m_EFBScaleMode->GetSelection(); + break; + case ID_EFB_ACCESS_ENABLE: + g_Config.bEFBAccessEnable = m_EnableEFBAccess->IsChecked(); + break; + case ID_SAFETEXTURECACHE: + g_Config.bSafeTextureCache = m_SafeTextureCache->IsChecked(); + break; + case ID_RADIO_SAFETEXTURECACHE_SAFE: + g_Config.iSafeTextureCache_ColorSamples = 0; + break; + case ID_RADIO_SAFETEXTURECACHE_NORMAL: + if(g_Config.iSafeTextureCache_ColorSamples < 512) + g_Config.iSafeTextureCache_ColorSamples = 512; + break; + case ID_RADIO_SAFETEXTURECACHE_FAST: + if(g_Config.iSafeTextureCache_ColorSamples > 128 || g_Config.iSafeTextureCache_ColorSamples == 0) + g_Config.iSafeTextureCache_ColorSamples = 128; + break; + } + UpdateGUI(); +} + +void GFXConfigDialogDX::EnhancementsSettingsChanged(wxCommandEvent& event) +{ + switch (event.GetId()) + { + case ID_FORCEFILTERING: + g_Config.bForceFiltering = m_ForceFiltering->IsChecked(); + break; + case ID_FORCEANISOTROPY: + g_Config.iMaxAnisotropy = m_MaxAnisotropy->IsChecked() ? 8 : 1; + break; + case ID_LOADHIRESTEXTURES: + g_Config.bHiresTextures = m_HiresTextures->IsChecked(); + break; + case ID_EFBSCALEDCOPY: + g_Config.bCopyEFBScaled = m_EFBScaledCopy->IsChecked(); + break; + } + UpdateGUI(); +} + +void GFXConfigDialogDX::AdvancedSettingsChanged(wxCommandEvent& event) +{ + switch (event.GetId()) + { + case ID_DISABLEFOG: + g_Config.bDisableFog = m_DisableFog->IsChecked(); + break; + case ID_OVERLAYFPS: + g_Config.bShowFPS = m_OverlayFPS->IsChecked(); + break; + case ID_ENABLEEFBCOPY: + g_Config.bEFBCopyDisable = !m_CopyEFB->IsChecked(); + break; + case ID_EFBTORAM: + g_Config.bCopyEFBToTexture = false; + break; + case ID_EFBTOTEX: + g_Config.bCopyEFBToTexture = true; + break; + case ID_ENABLEHOTKEY: + g_Config.bOSDHotKey = m_EnableHotkeys->IsChecked(); + break; + case ID_WIREFRAME: + g_Config.bWireFrame = m_WireFrame->IsChecked(); + break; + case ID_ENABLEXFB: + g_Config.bUseXFB = m_EnableXFB->IsChecked(); + break; + case ID_ENABLEREALXFB: + g_Config.bUseRealXFB = m_EnableRealXFB->IsChecked(); + break; + case ID_USENATIVEMIPS: + g_Config.bUseNativeMips = m_UseNativeMips->IsChecked(); + break; + case ID_TEXDUMP: + g_Config.bDumpTextures = m_DumpTextures->IsChecked(); + break; + case ID_DUMPFRAMES: + g_Config.bDumpFrames = m_DumpFrames->IsChecked(); + break; + case ID_OVERLAYSTATS: + g_Config.bOverlayStats = m_OverlayStats->IsChecked(); + break; + case ID_PROJSTATS: + g_Config.bOverlayProjStats = m_ProjStats->IsChecked(); + break; + case ID_SHADERERRORS: + g_Config.bShowShaderErrors = m_ShaderErrors->IsChecked(); + break; + case ID_TEXFMT_OVERLAY: + g_Config.bTexFmtOverlayEnable = m_TexfmtOverlay->IsChecked(); + break; + case ID_TEXFMT_CENTER: + g_Config.bTexFmtOverlayCenter = m_TexfmtCenter->IsChecked(); + break; + } + UpdateGUI(); +} + +void GFXConfigDialogDX::CloseWindow() +{ + // Save the config to INI + g_Config.Save((std::string(File::GetUserPath(D_CONFIG_IDX)) + "gfx_dx9.ini").c_str()); + EndModal(1); +} + +void GFXConfigDialogDX::UpdateGUI() +{ + if (g_Config.bUseRealXFB) + { + // must use XFB to use real XFB + g_Config.bUseXFB = true; + m_EnableXFB->SetValue(true); + } + m_EnableXFB->Enable(!g_Config.bUseRealXFB); + m_TexfmtCenter->Enable(g_Config.bTexFmtOverlayEnable); + + // Disable the Copy to options when EFBCopy is disabled + m_Radio_CopyEFBToRAM->Enable(!g_Config.bEFBCopyDisable); + m_Radio_CopyEFBToGL->Enable(!g_Config.bEFBCopyDisable); + + // Disable/Enable Safe Texture Cache options + m_Radio_SafeTextureCache_Safe->Enable(g_Config.bSafeTextureCache); + m_Radio_SafeTextureCache_Normal->Enable(g_Config.bSafeTextureCache); + m_Radio_SafeTextureCache_Fast->Enable(g_Config.bSafeTextureCache); } diff --git a/Source/Plugins/Plugin_VideoDX9/Src/DlgSettings.h b/Source/Plugins/Plugin_VideoDX9/Src/DlgSettings.h index 7cab183ad2..3e9d65ca94 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/DlgSettings.h +++ b/Source/Plugins/Plugin_VideoDX9/Src/DlgSettings.h @@ -15,6 +15,175 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ -#pragma once +#ifndef _DX_DLGSETTINGS_H_ +#define _DX_DLGSETTINGS_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -void DlgSettings_Show(HINSTANCE hInstance, HWND parent); +class GFXConfigDialogDX : public wxDialog +{ + public: + GFXConfigDialogDX(wxWindow *parent, wxWindowID id = 1, +#ifdef DEBUGFAST + const wxString &title = wxT("DX (DEBUGFAST) Plugin Configuration"), +#else +#ifndef _DEBUG + const wxString &title = wxT("DX Plugin Configuration"), +#else + const wxString &title = wxT("DX (DEBUG) Plugin Configuration"), +#endif +#endif + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_DIALOG_STYLE); + virtual ~GFXConfigDialogDX(); + void CreateGUIControls(); + void CloseClick(wxCommandEvent& WXUNUSED (event)); + + private: + DECLARE_EVENT_TABLE(); + + wxBoxSizer* sGeneral; + wxStaticBoxSizer* sbBasic; + wxGridBagSizer* sBasic; + wxStaticBoxSizer* sbSTC; + wxGridBagSizer* sSTC; + + wxBoxSizer* sEnhancements; + wxStaticBoxSizer* sbTextureFilter; + wxGridBagSizer* sTextureFilter; + wxStaticBoxSizer* sbEFBHacks; + wxGridBagSizer* sEFBHacks; + + wxBoxSizer* sAdvanced; + wxStaticBoxSizer* sbSettings; + wxGridBagSizer* sSettings; + wxStaticBoxSizer* sbDataDumping; + wxGridBagSizer* sDataDumping; + wxStaticBoxSizer* sbDebuggingTools; + wxGridBagSizer* sDebuggingTools; + + + wxButton *m_Close; + + wxNotebook *m_Notebook; + wxPanel *m_PageDirect3D; + wxPanel *m_PageEnhancements; + wxPanel *m_PageAdvanced; + + //Direct3D Tab + wxStaticText* m_AdapterText; + wxChoice *m_AdapterCB; + wxArrayString arrayStringFor_AdapterCB; + wxArrayString arrayStringFor_MSAAModeCB; + wxCheckBox *m_VSync; + wxCheckBox *m_WidescreenHack; + wxStaticText* m_staticARText; + wxChoice *m_KeepAR; + wxStaticText* m_staticMSAAText; + wxChoice *m_MSAAModeCB; + wxStaticText* m_EFBScaleText; + wxChoice *m_EFBScaleMode; + wxCheckBox *m_EnableEFBAccess; + wxCheckBox *m_SafeTextureCache; + wxRadioButton *m_Radio_SafeTextureCache_Fast; + wxRadioButton *m_Radio_SafeTextureCache_Normal; + wxRadioButton *m_Radio_SafeTextureCache_Safe; + + //Enhancements Tab + wxCheckBox *m_ForceFiltering; + wxCheckBox *m_MaxAnisotropy; + wxCheckBox *m_HiresTextures; + wxCheckBox *m_EFBScaledCopy; + + //Advanced Tab + wxCheckBox *m_DisableFog; + wxCheckBox *m_OverlayFPS; + wxCheckBox *m_CopyEFB; + wxRadioButton *m_Radio_CopyEFBToRAM; + wxRadioButton *m_Radio_CopyEFBToGL; + wxCheckBox *m_EnableHotkeys; + wxCheckBox *m_WireFrame; + wxCheckBox *m_EnableXFB; + wxCheckBox *m_EnableRealXFB; + wxCheckBox *m_UseNativeMips; + wxCheckBox *m_DumpTextures; + wxCheckBox *m_DumpFrames; + wxCheckBox *m_OverlayStats; + wxCheckBox *m_ProjStats; + wxCheckBox *m_ShaderErrors; + wxCheckBox *m_TexfmtOverlay; + wxCheckBox *m_TexfmtCenter; + + enum + { + ID_CLOSE, + ID_ADAPTER, + ID_VSYNC, + ID_WIDESCREEN_HACK, + ID_ASPECT, + ID_FULLSCREENRESOLUTION, + ID_ANTIALIASMODE, + ID_EFBSCALEMODE, + ID_EFB_ACCESS_ENABLE, + ID_SAFETEXTURECACHE, + ID_RADIO_SAFETEXTURECACHE_SAFE, + ID_RADIO_SAFETEXTURECACHE_NORMAL, + ID_RADIO_SAFETEXTURECACHE_FAST, + ID_FORCEFILTERING, + ID_FORCEANISOTROPY, + ID_LOADHIRESTEXTURES, + ID_EFBSCALEDCOPY, + ID_DISABLEFOG, + ID_OVERLAYFPS, + ID_ENABLEEFBCOPY, + ID_EFBTORAM, + ID_EFBTOTEX, + ID_ENABLEHOTKEY, + ID_WIREFRAME, + ID_ENABLEXFB, + ID_ENABLEREALXFB, + ID_USENATIVEMIPS, + ID_TEXDUMP, + ID_DUMPFRAMES, + ID_OVERLAYSTATS, + ID_PROJSTATS, + ID_SHADERERRORS, + ID_TEXFMT_OVERLAY, + ID_TEXFMT_CENTER, + ID_CHECK1, + ID_LIST1, + ID_DEBUGSTEP, + ID_REGISTERS, + ID_ENABLEDEBUGGING, + ID_REGISTERSELECT, + ID_ARTEXT, + ID_NOTEBOOK = 1000, + ID_DEBUGGER, + ID_ABOUT, + ID_DIRERCT3D, + ID_PAGEENHANCEMENTS, + ID_PAGEADVANCED + }; + void InitializeAdapters(); + void OnClose(wxCloseEvent& event); + void InitializeGUIValues(); + void DirectXSettingsChanged(wxCommandEvent& event); + void EnhancementsSettingsChanged(wxCommandEvent& event); + void AdvancedSettingsChanged(wxCommandEvent& event); + void CloseWindow(); + void UpdateGUI(); + +}; +#endif //_DX_DLGSETTINGS_H_ diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index 3e81d5bd97..f5379a43a5 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -1118,7 +1118,7 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight) else { char msg [255]; - sprintf(msg, "Dumping Frames to \"%sframedump0.avi\" (%dx%d RGB24)", File::GetUserPath(D_DUMPFRAMES_IDX), s_recordWidth, s_recordHeight); + sprintf_s(msg,255, "Dumping Frames to \"%sframedump0.avi\" (%dx%d RGB24)", File::GetUserPath(D_DUMPFRAMES_IDX), s_recordWidth, s_recordHeight); OSD::AddMessage(msg, 2000); } } @@ -1397,7 +1397,7 @@ void Renderer::SetInterlacingMode() void Renderer::SetScreenshot(const char *filename) { s_criticalScreenshot.Enter(); - strcpy(s_sScreenshotName,filename); + strcpy_s(s_sScreenshotName,filename); s_bScreenshot = true; s_criticalScreenshot.Leave(); } diff --git a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp index 20e911c125..03544e9d65 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp @@ -21,6 +21,13 @@ #include "LogManager.h" #include "debugger/debugger.h" +#if defined(HAVE_WX) && HAVE_WX +#include "DlgSettings.h" +GFXConfigDialogDX *m_ConfigFrame = NULL; +#endif // HAVE_WX + + + #if defined(HAVE_WX) && HAVE_WX #include "Debugger/Debugger.h" GFXDebuggerDX9 *m_DebuggerFrame = NULL; @@ -205,8 +212,33 @@ void DllConfig(HWND _hParent) // If not initialized, only init D3D so we can enumerate resolutions. if (!s_PluginInitialized) D3D::Init(); - HINSTANCE hREd = LoadLibrary(_T("riched20.dll")); - DlgSettings_Show(g_hInstance, _hParent); + g_Config.Load((std::string(File::GetUserPath(D_CONFIG_IDX)) + "gfx_dx9.ini").c_str()); + g_Config.GameIniLoad(globals->game_ini); + UpdateActiveConfig(); +#if defined(HAVE_WX) && HAVE_WX + wxWindow *frame = GetParentedWxWindow(_hParent); + m_ConfigFrame = new GFXConfigDialogDX(frame); + + // Prevent user to show more than 1 config window at same time +#ifdef _WIN32 + frame->Disable(); + m_ConfigFrame->CreateGUIControls(); + m_ConfigFrame->ShowModal(); + frame->Enable(); +#else + m_ConfigFrame->CreateGUIControls(); + m_ConfigFrame->ShowModal(); +#endif + +#ifdef _WIN32 + frame->SetFocus(); + frame->SetHWND(NULL); +#endif + + m_ConfigFrame->Destroy(); + m_ConfigFrame = NULL; + frame->Destroy(); +#endif if (!s_PluginInitialized) D3D::Shutdown(); } @@ -341,7 +373,6 @@ void VideoFifo_CheckSwapRequest() { Renderer::Swap(s_beginFieldArgs.xfbAddr, s_beginFieldArgs.field, s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbHeight); } - Common::AtomicStoreRelease(s_swapRequested, FALSE); } } diff --git a/Source/Plugins/Plugin_VideoDX9/Src/resource.h b/Source/Plugins/Plugin_VideoDX9/Src/resource.h deleted file mode 100644 index a449cdd7ed..0000000000 --- a/Source/Plugins/Plugin_VideoDX9/Src/resource.h +++ /dev/null @@ -1,54 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Resource.rc -// -#define IDD_ABOUT 102 -#define IDD_SETTINGS 103 -#define IDD_ENHANCEMENTS 104 -#define IDD_ADVANCED 105 -#define IDC_ADAPTER 1001 -#define IDC_ANTIALIASMODE 1002 -#define IDC_ANTIALIASMODE2 1003 -#define IDC_EFBSCALE 1003 -#define IDC_VSYNC 1006 -#define IDC_WIDESCREEN_HACK 1010 -#define IDC_SAFE_TEXTURE_CACHE 1011 -#define IDC_EFB_ACCESS_ENABLE 1012 -#define IDC_WIREFRAME 1013 -#define IDC_DISABLEFOG 1014 -#define IDC_OVERLAYFPS 1015 -#define IDC_OVERLAYSTATS 1016 -#define IDC_OVERLAYPROJSTATS 1017 -#define IDC_ENABLEEFBCOPY 1018 -#define IDC_EFBTORAM 1019 -#define IDC_EFBTOTEX 1020 -#define IDC_TEXDUMP 1021 -#define IDC_DUMPFRAMES 1022 -#define IDC_SHOWSHADERERRORS 1023 -#define IDC_TEXFMT_OVERLAY 1024 -#define IDC_TEXFMT_CENTER 1025 -#define IDC_FORCEFILTERING 1026 -#define IDC_ENABLEXFB 1026 -#define IDC_FORCEANISOTROPY 1027 -#define IDC_ENABLEREALXFB 1027 -#define IDC_LOADHIRESTEXTURE 1028 -#define IDC_EFBSCALEDCOPY 1029 -#define IDC_OSDHOTKEY 1030 -#define IDC_ASPECTRATIO 1040 -#define IDC_SAFE_TEXTURE_CACHE_SAFE 1041 -#define IDC_SAFE_TEXTURE_CACHE_NORMAL 1042 -#define IDC_SAFE_TEXTURE_CACHE_FAST 1043 -#define IDC_DXCHK 1046 -#define IDC_USENATIVEMIPS 1100 -#define IDC_STATIC -1 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 106 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1047 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/Source/Plugins/Plugin_VideoDX9/Src/resource.rc b/Source/Plugins/Plugin_VideoDX9/Src/resource.rc deleted file mode 100644 index 742fa7830b..0000000000 --- a/Source/Plugins/Plugin_VideoDX9/Src/resource.rc +++ /dev/null @@ -1,198 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUT DIALOGEX 0, 0, 188, 81 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Dolphin D3D9 Video Plugin" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "Close",IDOK,131,60,50,14 - 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 "Will not work correctly on older GPU:s.",IDC_STATIC,7,47,170,8 -END - -IDD_SETTINGS DIALOGEX 0, 0, 244, 183 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_SYSMENU -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - LTEXT "&Graphics card:",IDC_STATIC,7,7,49,8 - COMBOBOX IDC_ADAPTER,61,7,176,48,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - 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 - LTEXT "&Aspect Ratio:",IDC_STATIC,7,40,48,8 - COMBOBOX IDC_ASPECTRATIO,61,39,89,57,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "SSAA mode:",IDC_STATIC,7,61,46,8 - 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 - 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",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 "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 - COMBOBOX IDC_EFBSCALE,161,59,76,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "EFB Scale:",IDC_STATIC,127,61,34,8 -END - -IDD_ADVANCED DIALOGEX 0, 0, 244, 200 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER | WS_SYSMENU -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - GROUPBOX "&Settings",IDC_STATIC,6,7,228,89 - CONTROL "Overlay FPS counter",IDC_OVERLAYFPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,18,82,8 - CONTROL "&Overlay some statistics",IDC_OVERLAYSTATS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,155,90,8 - CONTROL "Show s&hader compilation errors",IDC_SHOWSHADERERRORS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,169,114,8 - CONTROL "Enable &Wireframe",IDC_WIREFRAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,48,87,8 - CONTROL "Disable Fog",IDC_DISABLEFOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,18,78,8 - CONTROL "Enable Hotkey",IDC_OSDHOTKEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,33,87,8 - CONTROL "Enable EFB copy",IDC_ENABLEEFBCOPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,33,81,8 - CONTROL "To RAM",IDC_EFBTORAM,"Button",BS_AUTORADIOBUTTON | WS_GROUP,29,44,59,10 - CONTROL "To Texture",IDC_EFBTOTEX,"Button",BS_AUTORADIOBUTTON,29,57,60,10 - GROUPBOX "&Data dumping",IDC_STATIC,7,100,228,41 - CONTROL "Dump &textures",IDC_TEXDUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,111,70,9 - CONTROL "Dump Frames to User/Dump/Frames",IDC_DUMPFRAMES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,125,138,9 - GROUPBOX "Debugging Tools",IDC_STATIC,7,143,228,51 - CONTROL "Enable TexFmt Overlay",IDC_TEXFMT_OVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,182,92,10 - CONTROL "Centered",IDC_TEXFMT_CENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,183,52,10 - CONTROL "Enable XFB",IDC_ENABLEXFB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,71,81,8 - 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 -END - -IDD_ENHANCEMENTS DIALOGEX 0, 0, 224, 175 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - GROUPBOX "Texture &filtering",IDC_STATIC,7,7,210,60 - CONTROL "Force &bi/trilinear (breaks video in several Wii games)",IDC_FORCEFILTERING, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,20,192,9 - CONTROL "Enable 16x &anisotropy filtering",IDC_FORCEANISOTROPY, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,35,110,10 - CONTROL "Enable hires texture loading",IDC_LOADHIRESTEXTURE, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,50,110,11 - 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 -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_ABOUT, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 181 - TOPMARGIN, 7 - BOTTOMMARGIN, 74 - END - - IDD_SETTINGS, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 237 - VERTGUIDE, 7 - VERTGUIDE, 61 - VERTGUIDE, 109 - VERTGUIDE, 161 - TOPMARGIN, 7 - BOTTOMMARGIN, 176 - END - - IDD_ADVANCED, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 237 - VERTGUIDE, 14 - VERTGUIDE, 29 - VERTGUIDE, 114 - TOPMARGIN, 7 - BOTTOMMARGIN, 195 - HORZGUIDE, 18 - HORZGUIDE, 33 - HORZGUIDE, 49 - HORZGUIDE, 156 - END - - IDD_ENHANCEMENTS, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 217 - VERTGUIDE, 16 - VERTGUIDE, 74 - TOPMARGIN, 7 - BOTTOMMARGIN, 168 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include \0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED -