Move fullscreen display resolution control to the GUI with the rest of the fullscreen...
[dolphin.git] / Source / Plugins / Plugin_VideoOGL / Src / GUI / ConfigDlg.h
blob3b71b256f220e9b48d8f84d9f3c24219f7c1b45b
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_UseRealXFB;
99 wxCheckBox *m_AutoScale;
100 wxChoice *m_MaxAnisotropyCB;
101 wxChoice *m_MSAAModeCB, *m_PhackvalueCB, *m_PostShaderCB, *m_KeepAR;
103 wxCheckBox *m_ShowFPS;
104 wxCheckBox *m_ShaderErrors;
105 wxCheckBox *m_Statistics;
106 wxCheckBox *m_ProjStats;
107 wxCheckBox *m_ShowEFBCopyRegions;
108 wxCheckBox *m_TexFmtOverlay;
109 wxCheckBox *m_TexFmtCenter;
110 wxCheckBox *m_Wireframe;
111 wxCheckBox *m_DisableLighting;
112 wxCheckBox *m_DisableTexturing;
113 wxCheckBox *m_DisableFog;
114 wxCheckBox *m_DstAlphaPass;
115 wxCheckBox *m_DumpTextures;
116 wxCheckBox *m_HiresTextures;
117 wxCheckBox *m_DumpEFBTarget;
118 wxCheckBox *m_DumpFrames;
119 wxCheckBox *m_FreeLook;
120 wxStaticBox * m_StaticBox_EFB;
121 wxCheckBox *m_CheckBox_DisableCopyEFB;
122 wxRadioButton *m_Radio_CopyEFBToRAM, *m_Radio_CopyEFBToGL;
123 wxCheckBox *m_OSDHotKey;
124 wxCheckBox *m_Hack;
125 wxCheckBox *m_SafeTextureCache;
126 wxRadioButton *m_Radio_SafeTextureCache_Safe;
127 wxRadioButton *m_Radio_SafeTextureCache_Normal;
128 wxRadioButton *m_Radio_SafeTextureCache_Fast;
129 // Screen size
130 wxStaticText *m_TextScreenWidth, *m_TextScreenHeight, *m_TextScreenLeft, *m_TextScreenTop;
131 wxSlider *m_SliderWidth, *m_SliderHeight, *m_SliderLeft, *m_SliderTop;
132 wxCheckBox *m_ScreenSize;
134 wxArrayString arrayStringFor_FullscreenCB;
135 wxArrayString arrayStringFor_AspectRatio;
136 wxArrayString arrayStringFor_MaxAnisotropyCB;
137 wxArrayString arrayStringFor_MSAAModeCB;
138 wxArrayString arrayStringFor_PhackvalueCB;
139 wxArrayString arrayStringFor_PostShaderCB;
141 enum
143 ID_NOTEBOOK = 1000,
144 ID_PAGEGENERAL,
145 ID_PAGEADVANCED,
147 ID_VSYNC,
148 ID_NATIVERESOLUTION, ID_2X_RESOLUTION,
149 ID_ASPECT,
150 ID_CROP,
151 ID_USEREALXFB,
152 ID_USEXFB,
153 ID_AUTOSCALE,
154 ID_WIDESCREENHACK,
156 ID_FORCEFILTERING,
157 ID_MAXANISOTROPY,
158 ID_MAXANISOTROPYTEXT,
159 ID_MSAAMODECB,
160 ID_MSAAMODETEXT,
162 ID_SHOWFPS,
163 ID_SHADERERRORS,
164 ID_STATISTICS,
165 ID_PROJSTATS,
166 ID_SHOWEFBCOPYREGIONS,
167 ID_TEXFMTOVERLAY,
168 ID_TEXFMTCENTER,
170 ID_WIREFRAME,
171 ID_DISABLELIGHTING,
172 ID_DISABLETEXTURING,
173 ID_DISABLEFOG,
174 ID_STATICBOX_EFB,
175 ID_SAFETEXTURECACHE,
176 ID_RADIO_SAFETEXTURECACHE_SAFE,
177 ID_RADIO_SAFETEXTURECACHE_NORMAL,
178 ID_RADIO_SAFETEXTURECACHE_FAST,
179 ID_HACK,
180 ID_PHACKVALUE,
182 ID_DUMPTEXTURES,
183 ID_HIRESTEXTURES,
184 ID_DUMPEFBTARGET,
185 ID_DUMPFRAMES,
186 ID_FREELOOK,
187 ID_TEXTUREPATH,
189 ID_CHECKBOX_DISABLECOPYEFB,
190 ID_OSDHOTKEY,
191 //ID_PROJECTIONHACK1,
192 ID_DSTALPHAPASS,
193 ID_RADIO_COPYEFBTORAM,
194 ID_RADIO_COPYEFBTOGL,
195 ID_POSTSHADER,
196 ID_POSTSHADERTEXT,
197 ID_RELOADSHADER,
198 ID_EDITSHADER,
201 void LoadShaders();
202 void InitializeGUILists();
203 void InitializeGUIValues();
204 void InitializeGUITooltips();
206 void OnClose(wxCloseEvent& event);
207 void UpdateGUI();
208 void UpdateHack();
210 void AboutClick(wxCommandEvent& event);
211 void ReloadShaderClick(wxCommandEvent& event);
212 void EditShaderClick(wxCommandEvent& event);
213 void GeneralSettingsChanged(wxCommandEvent& event);
214 void AdvancedSettingsChanged(wxCommandEvent& event);
215 void CloseWindow();
218 #endif // _OGL_CONFIGDIALOG_H_