Move the ZTP hack to the game properties (reverted all changes from r6057 to the...
[dolphin.git] / Source / Plugins / Plugin_VideoOGL / Src / GUI / ConfigDlg.h
blobfbc30d8cb668df78a1af4277fdd3f5721580b423
1 // Copyright (C) 2003 Dolphin Project.
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, version 2.0.
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU General Public License 2.0 for more details.
12 // A copy of the GPL 2.0 should have been included with the program.
13 // If not, see http://www.gnu.org/licenses/
15 // Official SVN repository and contact information can be found at
16 // http://code.google.com/p/dolphin-emu/
18 #ifndef _OGL_CONFIGDIALOG_H_
19 #define _OGL_CONFIGDIALOG_H_
21 #include <wx/wx.h>
22 #include <wx/dialog.h>
23 #include <wx/textctrl.h>
24 #include <wx/button.h>
25 #include <wx/stattext.h>
26 #include <wx/choice.h>
27 #include <wx/combobox.h>
28 #include <wx/checkbox.h>
29 #include <wx/notebook.h>
30 #include <wx/panel.h>
31 #include <wx/filepicker.h>
32 #include <wx/gbsizer.h>
34 enum
36 OGL_HACK_NONE = 0,
37 OGL_HACK_ZELDA_TP_BLOOM_HACK = 1,
38 OGL_HACK_SONIC_AND_THE_BLACK_KNIGHT = 2,
39 OGL_HACK_BLEACH_VERSUS_CRUSADE = 3,
40 OGL_HACK_SKIES_OF_ARCADIA = 4
44 class GFXConfigDialogOGL : public wxDialog
46 public:
47 GFXConfigDialogOGL(wxWindow *parent, wxWindowID id = wxID_ANY,
48 #ifdef DEBUGFAST
49 const wxString &title = wxT("OpenGL (DEBUGFAST) Plugin Configuration"),
50 #else
51 #ifndef _DEBUG
52 const wxString &title = wxT("OpenGL Plugin Configuration"),
53 #else
54 const wxString &title = wxT("OpenGL (DEBUG) Plugin Configuration"),
55 #endif
56 #endif
57 const wxPoint& pos = wxDefaultPosition,
58 const wxSize& size = wxDefaultSize,
59 long style = wxDEFAULT_DIALOG_STYLE);
60 virtual ~GFXConfigDialogOGL();
61 void CloseClick(wxCommandEvent& event);
63 void CreateGUIControls();
64 void GameIniLoad();
66 private:
67 DECLARE_EVENT_TABLE();
69 wxBoxSizer* sGeneral;
70 wxStaticBoxSizer* sbBasic, *sbBasicAdvanced;
71 wxGridBagSizer* sBasic, *sBasicAdvanced;
72 wxStaticBoxSizer* sbEnhancements;
73 wxGridBagSizer* sEnhancements;
74 wxBoxSizer* sAdvanced;
75 wxStaticBoxSizer* sbInfo;
76 wxGridBagSizer* sInfo;
77 wxStaticBoxSizer* sbRendering;
78 wxGridBagSizer* sRendering;
79 wxStaticBoxSizer* sbUtilities;
80 wxGridBagSizer* sUtilities;
81 wxStaticBoxSizer* sHacks;
82 wxStaticBoxSizer* sbHacks;
84 wxButton *m_About;
85 wxButton *m_Close;
86 wxButton *m_ReloadShader;
87 wxButton *m_EditShader;
89 wxNotebook *m_Notebook;
90 wxPanel *m_PageGeneral;
91 wxPanel *m_PageAdvanced;
92 wxCheckBox *m_VSync;
93 wxCheckBox *m_NativeResolution, *m_2xResolution;
94 wxCheckBox *m_WidescreenHack;
95 wxCheckBox *m_ForceFiltering;
96 wxCheckBox *m_Crop;
97 wxCheckBox *m_UseXFB;
98 wxCheckBox *m_UseNativeMips;
99 wxCheckBox *m_EFBScaledCopy;
100 wxCheckBox *m_UseRealXFB;
101 wxCheckBox *m_AutoScale;
102 wxChoice *m_MaxAnisotropyCB;
103 wxChoice *m_MSAAModeCB, *m_PhackvalueCB, *m_PostShaderCB, *m_KeepAR;
105 wxCheckBox *m_ShowFPS;
106 wxCheckBox *m_ShaderErrors;
107 wxCheckBox *m_Statistics;
108 wxCheckBox *m_ProjStats;
109 wxCheckBox *m_ShowEFBCopyRegions;
110 wxCheckBox *m_TexFmtOverlay;
111 wxCheckBox *m_TexFmtCenter;
112 wxCheckBox *m_Wireframe;
113 wxCheckBox *m_DisableLighting;
114 wxCheckBox *m_DisableTexturing;
115 wxCheckBox *m_DisableFog;
116 wxCheckBox *m_DstAlphaPass;
117 wxCheckBox *m_DumpTextures;
118 wxCheckBox *m_HiresTextures;
119 wxCheckBox *m_DumpEFBTarget;
120 wxCheckBox *m_DumpFrames;
121 wxCheckBox *m_FreeLook;
122 wxStaticBox * m_StaticBox_EFB;
123 wxCheckBox *m_CheckBox_DisableCopyEFB;
124 wxRadioButton *m_Radio_CopyEFBToRAM, *m_Radio_CopyEFBToGL;
125 wxCheckBox *m_OSDHotKey;
126 wxCheckBox *m_Hack;
127 wxCheckBox *m_SafeTextureCache;
128 wxRadioButton *m_Radio_SafeTextureCache_Safe;
129 wxRadioButton *m_Radio_SafeTextureCache_Normal;
130 wxRadioButton *m_Radio_SafeTextureCache_Fast;
131 // Screen size
132 wxStaticText *m_TextScreenWidth, *m_TextScreenHeight, *m_TextScreenLeft, *m_TextScreenTop;
133 wxSlider *m_SliderWidth, *m_SliderHeight, *m_SliderLeft, *m_SliderTop;
134 wxCheckBox *m_ScreenSize;
136 wxArrayString arrayStringFor_FullscreenCB;
137 wxArrayString arrayStringFor_AspectRatio;
138 wxArrayString arrayStringFor_MaxAnisotropyCB;
139 wxArrayString arrayStringFor_MSAAModeCB;
140 wxArrayString arrayStringFor_PhackvalueCB;
141 wxArrayString arrayStringFor_PostShaderCB;
143 enum
145 ID_NOTEBOOK = 1000,
146 ID_PAGEGENERAL,
147 ID_PAGEADVANCED,
149 ID_VSYNC,
150 ID_NATIVERESOLUTION, ID_2X_RESOLUTION,
151 ID_ASPECT,
152 ID_CROP,
153 ID_USEREALXFB,
154 ID_USEXFB,
155 ID_USENATIVEMIPS,
156 ID_EFBSCALEDCOPY,
157 ID_AUTOSCALE,
158 ID_WIDESCREENHACK,
160 ID_FORCEFILTERING,
161 ID_MAXANISOTROPY,
162 ID_MAXANISOTROPYTEXT,
163 ID_MSAAMODECB,
164 ID_MSAAMODETEXT,
166 ID_SHOWFPS,
167 ID_SHADERERRORS,
168 ID_STATISTICS,
169 ID_PROJSTATS,
170 ID_SHOWEFBCOPYREGIONS,
171 ID_TEXFMTOVERLAY,
172 ID_TEXFMTCENTER,
174 ID_WIREFRAME,
175 ID_DISABLELIGHTING,
176 ID_DISABLETEXTURING,
177 ID_DISABLEFOG,
178 ID_STATICBOX_EFB,
179 ID_SAFETEXTURECACHE,
180 ID_RADIO_SAFETEXTURECACHE_SAFE,
181 ID_RADIO_SAFETEXTURECACHE_NORMAL,
182 ID_RADIO_SAFETEXTURECACHE_FAST,
183 ID_HACK,
184 ID_PHACKVALUE,
186 ID_DUMPTEXTURES,
187 ID_HIRESTEXTURES,
188 ID_DUMPEFBTARGET,
189 ID_DUMPFRAMES,
190 ID_FREELOOK,
191 ID_TEXTUREPATH,
193 ID_CHECKBOX_DISABLECOPYEFB,
194 ID_OSDHOTKEY,
195 //ID_PROJECTIONHACK1,
196 ID_DSTALPHAPASS,
197 ID_RADIO_COPYEFBTORAM,
198 ID_RADIO_COPYEFBTOGL,
199 ID_POSTSHADER,
200 ID_POSTSHADERTEXT,
201 ID_RELOADSHADER,
202 ID_EDITSHADER,
205 void LoadShaders();
206 void InitializeGUILists();
207 void InitializeGUIValues();
208 void InitializeGUITooltips();
210 void OnClose(wxCloseEvent& event);
211 void UpdateGUI();
212 void UpdateHack();
214 void AboutClick(wxCommandEvent& event);
215 void ReloadShaderClick(wxCommandEvent& event);
216 void EditShaderClick(wxCommandEvent& event);
217 void GeneralSettingsChanged(wxCommandEvent& event);
218 void AdvancedSettingsChanged(wxCommandEvent& event);
219 void CloseWindow();
222 #endif // _OGL_CONFIGDIALOG_H_