VideoBackend: Video config filename is now exposed in VideoBackends.

It reduces redundancy. Needed make possible to save current video config.
This commit is contained in:
ghost 2015-09-22 03:25:37 +03:00
parent 79bf93996f
commit 07e4b4f7c4
7 changed files with 25 additions and 6 deletions

View File

@ -17,6 +17,7 @@ class VideoBackend : public VideoBackendHardware
std::string GetName() const override;
std::string GetDisplayName() const override;
std::string GetConfigName() const override;
void Video_Prepare() override;
void Video_Cleanup() override;

View File

@ -64,6 +64,11 @@ std::string VideoBackend::GetDisplayName() const
return "Direct3D";
}
std::string VideoBackend::GetConfigName() const
{
return "gfx_dx11";
}
void InitBackendInfo()
{
HRESULT hr = DX11::D3D::LoadDXGI();
@ -148,7 +153,7 @@ void InitBackendInfo()
void VideoBackend::ShowConfig(void *hParent)
{
InitBackendInfo();
Host_ShowVideoConfig(hParent, GetDisplayName(), "gfx_dx11");
Host_ShowVideoConfig(hParent, GetDisplayName(), GetConfigName());
}
bool VideoBackend::Initialize(void *window_handle)
@ -161,7 +166,7 @@ bool VideoBackend::Initialize(void *window_handle)
frameCount = 0;
g_Config.Load(File::GetUserPath(D_CONFIG_IDX) + "gfx_dx11.ini");
g_Config.Load(File::GetUserPath(D_CONFIG_IDX) + GetConfigName() + ".ini");
g_Config.GameIniLoad();
g_Config.UpdateProjectionHack();
g_Config.VerifyValidity();

View File

@ -17,6 +17,7 @@ class VideoBackend : public VideoBackendHardware
std::string GetName() const override;
std::string GetDisplayName() const override;
std::string GetConfigName() const override;
void Video_Prepare() override;
void Video_Cleanup() override;

View File

@ -97,6 +97,11 @@ std::string VideoBackend::GetDisplayName() const
return "OpenGL";
}
std::string VideoBackend::GetConfigName() const
{
return "gfx_opengl";
}
static std::vector<std::string> GetShaders(const std::string &sub_dir = "")
{
std::vector<std::string> paths = DoFileSearch({"*.glsl"}, {
@ -134,7 +139,7 @@ void VideoBackend::ShowConfig(void *_hParent)
{
if (!s_BackendInitialized)
InitBackendInfo();
Host_ShowVideoConfig(_hParent, GetDisplayName(), "gfx_opengl");
Host_ShowVideoConfig(_hParent, GetDisplayName(), GetConfigName());
}
bool VideoBackend::Initialize(void *window_handle)
@ -144,7 +149,7 @@ bool VideoBackend::Initialize(void *window_handle)
frameCount = 0;
g_Config.Load(File::GetUserPath(D_CONFIG_IDX) + "gfx_opengl.ini");
g_Config.Load(File::GetUserPath(D_CONFIG_IDX) + GetConfigName() + ".ini");
g_Config.GameIniLoad();
g_Config.UpdateProjectionHack();
g_Config.VerifyValidity();

View File

@ -67,14 +67,19 @@ std::string VideoSoftware::GetDisplayName() const
return "Software Renderer";
}
std::string VideoSoftware::GetConfigName() const
{
return "gfx_software";
}
void VideoSoftware::ShowConfig(void *hParent)
{
Host_ShowVideoConfig(hParent, GetDisplayName(), "gfx_software");
Host_ShowVideoConfig(hParent, GetDisplayName(), GetConfigName());
}
bool VideoSoftware::Initialize(void *window_handle)
{
g_SWVideoConfig.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_software.ini").c_str());
g_SWVideoConfig.Load((File::GetUserPath(D_CONFIG_IDX) + GetConfigName() + ".ini").c_str());
InitInterface();
GLInterface->SetMode(GLInterfaceMode::MODE_DETECT);

View File

@ -19,6 +19,7 @@ class VideoSoftware : public VideoBackend
std::string GetName() const override;
std::string GetDisplayName() const override;
std::string GetConfigName() const override;
void EmuStateChange(EMUSTATE_CHANGE newState) override;

View File

@ -72,6 +72,7 @@ public:
virtual std::string GetName() const = 0;
virtual std::string GetDisplayName() const { return GetName(); }
virtual std::string GetConfigName() const = 0;
virtual void ShowConfig(void*) = 0;