VideoBackendBase: Store video backends as unique_ptr

This commit is contained in:
Lioncash
2016-02-20 19:07:40 -05:00
parent 3b23eb24c4
commit 1d6ee140f0
6 changed files with 40 additions and 34 deletions
@@ -61,7 +61,7 @@ SoftwareVideoConfigDialog::SoftwareVideoConfigDialog(wxWindow* parent, const std
wxStaticText* const label_backend = new wxStaticText(page_general, wxID_ANY, _("Backend:"));
wxChoice* const choice_backend = new wxChoice(page_general, wxID_ANY);
for (const VideoBackendBase* backend : g_available_video_backends)
for (const auto& backend : g_available_video_backends)
{
choice_backend->AppendString(StrToWxStr(backend->GetDisplayName()));
}
@@ -24,17 +24,18 @@ public:
void Event_Backend(wxCommandEvent &ev)
{
VideoBackendBase* new_backend = g_available_video_backends[ev.GetInt()];
auto& new_backend = g_available_video_backends[ev.GetInt()];
if (g_video_backend != new_backend)
if (g_video_backend != new_backend.get())
{
Close();
g_video_backend = new_backend;
g_video_backend = new_backend.get();
SConfig::GetInstance().m_strVideoBackend = g_video_backend->GetName();
g_video_backend->ShowConfig(GetParent());
}
ev.Skip();
}
};
+1 -1
View File
@@ -235,7 +235,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
choice_backend = new wxChoice(page_general, wxID_ANY);
RegisterControl(choice_backend, wxGetTranslation(backend_desc));
for (const VideoBackendBase* backend : g_available_video_backends)
for (const auto& backend : g_available_video_backends)
{
choice_backend->AppendString(wxGetTranslation(StrToWxStr(backend->GetDisplayName())));
}
+4 -3
View File
@@ -82,8 +82,9 @@ public:
protected:
void Event_Backend(wxCommandEvent &ev)
{
VideoBackendBase* new_backend = g_available_video_backends[ev.GetInt()];
if (g_video_backend != new_backend)
auto& new_backend = g_available_video_backends[ev.GetInt()];
if (g_video_backend != new_backend.get())
{
bool do_switch = !Core::IsRunning();
if (new_backend->GetName() == "Software Renderer")
@@ -99,7 +100,7 @@ protected:
// reopen the dialog
Close();
g_video_backend = new_backend;
g_video_backend = new_backend.get();
SConfig::GetInstance().m_strVideoBackend = g_video_backend->GetName();
g_video_backend->ShowConfig(GetParent());