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_
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>
31 #include <wx/filepicker.h>
32 #include <wx/gbsizer.h>
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
47 GFXConfigDialogOGL(wxWindow
*parent
, wxWindowID id
= wxID_ANY
,
49 const wxString
&title
= wxT("OpenGL (DEBUGFAST) Plugin Configuration"),
52 const wxString
&title
= wxT("OpenGL Plugin Configuration"),
54 const wxString
&title
= wxT("OpenGL (DEBUG) Plugin Configuration"),
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();
67 DECLARE_EVENT_TABLE();
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
;
86 wxButton
*m_ReloadShader
;
87 wxButton
*m_EditShader
;
89 wxNotebook
*m_Notebook
;
90 wxPanel
*m_PageGeneral
;
91 wxPanel
*m_PageAdvanced
;
93 wxCheckBox
*m_NativeResolution
, *m_2xResolution
;
94 wxCheckBox
*m_WidescreenHack
;
95 wxCheckBox
*m_ForceFiltering
;
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
;
127 wxCheckBox
*m_SafeTextureCache
;
128 wxRadioButton
*m_Radio_SafeTextureCache_Safe
;
129 wxRadioButton
*m_Radio_SafeTextureCache_Normal
;
130 wxRadioButton
*m_Radio_SafeTextureCache_Fast
;
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
;
150 ID_NATIVERESOLUTION
, ID_2X_RESOLUTION
,
162 ID_MAXANISOTROPYTEXT
,
170 ID_SHOWEFBCOPYREGIONS
,
180 ID_RADIO_SAFETEXTURECACHE_SAFE
,
181 ID_RADIO_SAFETEXTURECACHE_NORMAL
,
182 ID_RADIO_SAFETEXTURECACHE_FAST
,
193 ID_CHECKBOX_DISABLECOPYEFB
,
195 //ID_PROJECTIONHACK1,
197 ID_RADIO_COPYEFBTORAM
,
198 ID_RADIO_COPYEFBTOGL
,
206 void InitializeGUILists();
207 void InitializeGUIValues();
208 void InitializeGUITooltips();
210 void OnClose(wxCloseEvent
& event
);
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
);
222 #endif // _OGL_CONFIGDIALOG_H_