mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-11 00:29:11 +01:00
Merge pull request #951 from shuffle2/Anti-Ultimate-master
Prevent changing adapters during emulation and VideoConfigDiag cleanup
This commit is contained in:
commit
09b11db2ee
@ -241,7 +241,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
|
|||||||
|
|
||||||
// backend
|
// backend
|
||||||
{
|
{
|
||||||
wxStaticText* const label_backend = new wxStaticText(page_general, wxID_ANY, _("Backend:"));
|
label_backend = new wxStaticText(page_general, wxID_ANY, _("Backend:"));
|
||||||
choice_backend = new wxChoice(page_general, wxID_ANY);
|
choice_backend = new wxChoice(page_general, wxID_ANY);
|
||||||
RegisterControl(choice_backend, wxGetTranslation(backend_desc));
|
RegisterControl(choice_backend, wxGetTranslation(backend_desc));
|
||||||
|
|
||||||
@ -255,18 +255,12 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
|
|||||||
|
|
||||||
szr_basic->Add(label_backend, 1, wxALIGN_CENTER_VERTICAL, 5);
|
szr_basic->Add(label_backend, 1, wxALIGN_CENTER_VERTICAL, 5);
|
||||||
szr_basic->Add(choice_backend, 1, 0, 0);
|
szr_basic->Add(choice_backend, 1, 0, 0);
|
||||||
|
|
||||||
if (Core::IsRunning())
|
|
||||||
{
|
|
||||||
label_backend->Disable();
|
|
||||||
choice_backend->Disable();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// adapter (D3D only)
|
// adapter (D3D only)
|
||||||
if (vconfig.backend_info.Adapters.size())
|
if (vconfig.backend_info.Adapters.size())
|
||||||
{
|
{
|
||||||
wxChoice* const choice_adapter = CreateChoice(page_general, vconfig.iAdapter, wxGetTranslation(adapter_desc));
|
choice_adapter = CreateChoice(page_general, vconfig.iAdapter, wxGetTranslation(adapter_desc));
|
||||||
|
|
||||||
for (const std::string& adapter : vconfig.backend_info.Adapters)
|
for (const std::string& adapter : vconfig.backend_info.Adapters)
|
||||||
{
|
{
|
||||||
@ -275,7 +269,8 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
|
|||||||
|
|
||||||
choice_adapter->Select(vconfig.iAdapter);
|
choice_adapter->Select(vconfig.iAdapter);
|
||||||
|
|
||||||
szr_basic->Add(new wxStaticText(page_general, -1, _("Adapter:")), 1, wxALIGN_CENTER_VERTICAL, 5);
|
label_adapter = new wxStaticText(page_general, wxID_ANY, _("Adapter:"));
|
||||||
|
szr_basic->Add(label_adapter, 1, wxALIGN_CENTER_VERTICAL, 5);
|
||||||
szr_basic->Add(choice_adapter, 1, 0, 0);
|
szr_basic->Add(choice_adapter, 1, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,7 +286,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
|
|||||||
wxArrayString res_list = GetListOfResolutions();
|
wxArrayString res_list = GetListOfResolutions();
|
||||||
if (res_list.empty())
|
if (res_list.empty())
|
||||||
res_list.Add(_("<No resolutions found>"));
|
res_list.Add(_("<No resolutions found>"));
|
||||||
wxStaticText* const label_display_resolution = new wxStaticText(page_general, wxID_ANY, _("Fullscreen Resolution:"));
|
label_display_resolution = new wxStaticText(page_general, wxID_ANY, _("Fullscreen Resolution:"));
|
||||||
choice_display_resolution = new wxChoice(page_general, wxID_ANY, wxDefaultPosition, wxDefaultSize, res_list);
|
choice_display_resolution = new wxChoice(page_general, wxID_ANY, wxDefaultPosition, wxDefaultSize, res_list);
|
||||||
RegisterControl(choice_display_resolution, wxGetTranslation(display_res_desc));
|
RegisterControl(choice_display_resolution, wxGetTranslation(display_res_desc));
|
||||||
choice_display_resolution->Bind(wxEVT_CHOICE, &VideoConfigDiag::Event_DisplayResolution, this);
|
choice_display_resolution->Bind(wxEVT_CHOICE, &VideoConfigDiag::Event_DisplayResolution, this);
|
||||||
@ -300,12 +295,6 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
|
|||||||
|
|
||||||
szr_display->Add(label_display_resolution, 1, wxALIGN_CENTER_VERTICAL, 0);
|
szr_display->Add(label_display_resolution, 1, wxALIGN_CENTER_VERTICAL, 0);
|
||||||
szr_display->Add(choice_display_resolution);
|
szr_display->Add(choice_display_resolution);
|
||||||
|
|
||||||
if (Core::IsRunning())
|
|
||||||
{
|
|
||||||
label_display_resolution->Disable();
|
|
||||||
choice_display_resolution->Disable();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -330,16 +319,12 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
|
|||||||
wxFlexGridSizer* const szr_other = new wxFlexGridSizer(2, 5, 5);
|
wxFlexGridSizer* const szr_other = new wxFlexGridSizer(2, 5, 5);
|
||||||
|
|
||||||
{
|
{
|
||||||
SettingCheckBox* render_to_main_cb;
|
|
||||||
szr_other->Add(CreateCheckBox(page_general, _("Show FPS"), wxGetTranslation(show_fps_desc), vconfig.bShowFPS));
|
szr_other->Add(CreateCheckBox(page_general, _("Show FPS"), wxGetTranslation(show_fps_desc), vconfig.bShowFPS));
|
||||||
szr_other->Add(CreateCheckBox(page_general, _("Log Render Time to File"), wxGetTranslation(log_render_time_to_file_desc), vconfig.bLogRenderTimeToFile));
|
szr_other->Add(CreateCheckBox(page_general, _("Log Render Time to File"), wxGetTranslation(log_render_time_to_file_desc), vconfig.bLogRenderTimeToFile));
|
||||||
szr_other->Add(CreateCheckBox(page_general, _("Auto adjust Window Size"), wxGetTranslation(auto_window_size_desc), SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderWindowAutoSize));
|
szr_other->Add(CreateCheckBox(page_general, _("Auto adjust Window Size"), wxGetTranslation(auto_window_size_desc), SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderWindowAutoSize));
|
||||||
szr_other->Add(CreateCheckBox(page_general, _("Keep Window on Top"), wxGetTranslation(keep_window_on_top_desc), SConfig::GetInstance().m_LocalCoreStartupParameter.bKeepWindowOnTop));
|
szr_other->Add(CreateCheckBox(page_general, _("Keep Window on Top"), wxGetTranslation(keep_window_on_top_desc), SConfig::GetInstance().m_LocalCoreStartupParameter.bKeepWindowOnTop));
|
||||||
szr_other->Add(CreateCheckBox(page_general, _("Hide Mouse Cursor"), wxGetTranslation(hide_mouse_cursor_desc), SConfig::GetInstance().m_LocalCoreStartupParameter.bHideCursor));
|
szr_other->Add(CreateCheckBox(page_general, _("Hide Mouse Cursor"), wxGetTranslation(hide_mouse_cursor_desc), SConfig::GetInstance().m_LocalCoreStartupParameter.bHideCursor));
|
||||||
szr_other->Add(render_to_main_cb = CreateCheckBox(page_general, _("Render to Main Window"), wxGetTranslation(render_to_main_win_desc), SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain));
|
szr_other->Add(render_to_main_checkbox = CreateCheckBox(page_general, _("Render to Main Window"), wxGetTranslation(render_to_main_win_desc), SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain));
|
||||||
|
|
||||||
if (Core::IsRunning())
|
|
||||||
render_to_main_cb->Disable();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -587,17 +572,15 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
|
|||||||
|
|
||||||
// Progressive Scan
|
// Progressive Scan
|
||||||
{
|
{
|
||||||
wxCheckBox* const cb_prog_scan = new wxCheckBox(page_advanced, wxID_ANY, _("Enable Progressive Scan"));
|
progressive_scan_checkbox = new wxCheckBox(page_advanced, wxID_ANY, _("Enable Progressive Scan"));
|
||||||
RegisterControl(cb_prog_scan, wxGetTranslation(prog_scan_desc));
|
RegisterControl(progressive_scan_checkbox, wxGetTranslation(prog_scan_desc));
|
||||||
cb_prog_scan->Bind(wxEVT_CHECKBOX, &VideoConfigDiag::Event_ProgressiveScan, this);
|
progressive_scan_checkbox->Bind(wxEVT_CHECKBOX, &VideoConfigDiag::Event_ProgressiveScan, this);
|
||||||
if (Core::IsRunning())
|
|
||||||
cb_prog_scan->Disable();
|
|
||||||
|
|
||||||
cb_prog_scan->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bProgressive);
|
progressive_scan_checkbox->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bProgressive);
|
||||||
// A bit strange behavior, but this needs to stay in sync with the main progressive boolean; TODO: Is this still necessary?
|
// A bit strange behavior, but this needs to stay in sync with the main progressive boolean; TODO: Is this still necessary?
|
||||||
SConfig::GetInstance().m_SYSCONF->SetData("IPL.PGS", SConfig::GetInstance().m_LocalCoreStartupParameter.bProgressive);
|
SConfig::GetInstance().m_SYSCONF->SetData("IPL.PGS", SConfig::GetInstance().m_LocalCoreStartupParameter.bProgressive);
|
||||||
|
|
||||||
szr_misc->Add(cb_prog_scan);
|
szr_misc->Add(progressive_scan_checkbox);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Borderless Fullscreen
|
// Borderless Fullscreen
|
||||||
|
@ -188,6 +188,29 @@ protected:
|
|||||||
virtual_xfb->Enable(vconfig.bUseXFB);
|
virtual_xfb->Enable(vconfig.bUseXFB);
|
||||||
real_xfb->Enable(vconfig.bUseXFB);
|
real_xfb->Enable(vconfig.bUseXFB);
|
||||||
|
|
||||||
|
// Things which shouldn't be changed during emulation
|
||||||
|
if (Core::IsRunning())
|
||||||
|
{
|
||||||
|
choice_backend->Disable();
|
||||||
|
label_backend->Disable();
|
||||||
|
|
||||||
|
//D3D only
|
||||||
|
if (vconfig.backend_info.Adapters.size())
|
||||||
|
{
|
||||||
|
choice_adapter->Disable();
|
||||||
|
label_adapter->Disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !defined(_APPLE_)
|
||||||
|
// This isn't supported on OSX.
|
||||||
|
|
||||||
|
choice_display_resolution->Disable();
|
||||||
|
label_display_resolution->Disable();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
progressive_scan_checkbox->Disable();
|
||||||
|
render_to_main_checkbox->Disable();
|
||||||
|
}
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -204,13 +227,21 @@ protected:
|
|||||||
void CreateDescriptionArea(wxPanel* const page, wxBoxSizer* const sizer);
|
void CreateDescriptionArea(wxPanel* const page, wxBoxSizer* const sizer);
|
||||||
|
|
||||||
wxChoice* choice_backend;
|
wxChoice* choice_backend;
|
||||||
|
wxChoice* choice_adapter;
|
||||||
wxChoice* choice_display_resolution;
|
wxChoice* choice_display_resolution;
|
||||||
|
|
||||||
|
wxStaticText* label_backend;
|
||||||
|
wxStaticText* label_adapter;
|
||||||
|
|
||||||
wxStaticText* text_aamode;
|
wxStaticText* text_aamode;
|
||||||
SettingChoice* choice_aamode;
|
SettingChoice* choice_aamode;
|
||||||
|
|
||||||
|
wxStaticText* label_display_resolution;
|
||||||
|
|
||||||
wxButton* button_config_pp;
|
wxButton* button_config_pp;
|
||||||
|
|
||||||
SettingCheckBox* borderless_fullscreen;
|
SettingCheckBox* borderless_fullscreen;
|
||||||
|
SettingCheckBox* render_to_main_checkbox;
|
||||||
|
|
||||||
SettingRadioButton* efbcopy_texture;
|
SettingRadioButton* efbcopy_texture;
|
||||||
SettingRadioButton* efbcopy_ram;
|
SettingRadioButton* efbcopy_ram;
|
||||||
@ -219,6 +250,8 @@ protected:
|
|||||||
SettingRadioButton* virtual_xfb;
|
SettingRadioButton* virtual_xfb;
|
||||||
SettingRadioButton* real_xfb;
|
SettingRadioButton* real_xfb;
|
||||||
|
|
||||||
|
wxCheckBox* progressive_scan_checkbox;
|
||||||
|
|
||||||
std::map<wxWindow*, wxString> ctrl_descs; // maps setting controls to their descriptions
|
std::map<wxWindow*, wxString> ctrl_descs; // maps setting controls to their descriptions
|
||||||
std::map<wxWindow*, wxStaticText*> desc_texts; // maps dialog tabs (which are the parents of the setting controls) to their description text objects
|
std::map<wxWindow*, wxStaticText*> desc_texts; // maps dialog tabs (which are the parents of the setting controls) to their description text objects
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user