mirror of https://github.com/PCSX2/pcsx2.git
gsdx: Store the current renderer in GSdxApp
This commit is contained in:
parent
94f2ad9263
commit
a5282daf91
|
@ -62,7 +62,6 @@ extern bool RunLinuxDialog();
|
||||||
static GSRenderer* s_gs = NULL;
|
static GSRenderer* s_gs = NULL;
|
||||||
static void (*s_irq)() = NULL;
|
static void (*s_irq)() = NULL;
|
||||||
static uint8* s_basemem = NULL;
|
static uint8* s_basemem = NULL;
|
||||||
static GSRendererType s_renderer = GSRendererType::Undefined;
|
|
||||||
static bool s_framelimit = true;
|
static bool s_framelimit = true;
|
||||||
static bool s_vsync = false;
|
static bool s_vsync = false;
|
||||||
static bool s_exclusive = true;
|
static bool s_exclusive = true;
|
||||||
|
@ -170,7 +169,7 @@ EXPORT_C GSshutdown()
|
||||||
delete s_gs;
|
delete s_gs;
|
||||||
s_gs = nullptr;
|
s_gs = nullptr;
|
||||||
|
|
||||||
s_renderer = GSRendererType::Undefined;
|
theApp.SetCurrentRendererType(GSRendererType::Undefined);
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
|
||||||
|
@ -232,7 +231,7 @@ static int _GSopen(void** dsp, const char* title, GSRendererType renderer, int t
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (s_renderer != renderer)
|
if (theApp.GetCurrentRendererType() != renderer)
|
||||||
{
|
{
|
||||||
// Emulator has made a render change request, which requires a completely
|
// Emulator has made a render change request, which requires a completely
|
||||||
// new s_gs -- if the emu doesn't save/restore the GS state across this
|
// new s_gs -- if the emu doesn't save/restore the GS state across this
|
||||||
|
@ -241,6 +240,8 @@ static int _GSopen(void** dsp, const char* title, GSRendererType renderer, int t
|
||||||
delete s_gs;
|
delete s_gs;
|
||||||
|
|
||||||
s_gs = NULL;
|
s_gs = NULL;
|
||||||
|
|
||||||
|
theApp.SetCurrentRendererType(renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<GSWnd> window;
|
std::shared_ptr<GSWnd> window;
|
||||||
|
@ -419,8 +420,6 @@ static int _GSopen(void** dsp, const char* title, GSRendererType renderer, int t
|
||||||
}
|
}
|
||||||
if (s_gs == NULL)
|
if (s_gs == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
s_renderer = renderer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s_gs->m_wnd = window;
|
s_gs->m_wnd = window;
|
||||||
|
@ -480,7 +479,7 @@ EXPORT_C_(int) GSopen2(void** dsp, uint32 flags)
|
||||||
static bool stored_toggle_state = false;
|
static bool stored_toggle_state = false;
|
||||||
bool toggle_state = !!(flags & 4);
|
bool toggle_state = !!(flags & 4);
|
||||||
|
|
||||||
GSRendererType renderer = s_renderer;
|
GSRendererType renderer = theApp.GetCurrentRendererType();
|
||||||
|
|
||||||
if (renderer != GSRendererType::Undefined && stored_toggle_state != toggle_state)
|
if (renderer != GSRendererType::Undefined && stored_toggle_state != toggle_state)
|
||||||
{
|
{
|
||||||
|
@ -811,7 +810,7 @@ EXPORT_C GSconfigure()
|
||||||
if(GSSettingsDlg().DoModal() == IDOK)
|
if(GSSettingsDlg().DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
// Force a reload of the gs state
|
// Force a reload of the gs state
|
||||||
s_renderer = GSRendererType::Undefined;
|
theApp.SetCurrentRendererType(GSRendererType::Undefined);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
@ -819,7 +818,7 @@ EXPORT_C GSconfigure()
|
||||||
if (RunLinuxDialog()) {
|
if (RunLinuxDialog()) {
|
||||||
theApp.ReloadConfig();
|
theApp.ReloadConfig();
|
||||||
// Force a reload of the gs state
|
// Force a reload of the gs state
|
||||||
s_renderer = GSRendererType::Undefined;
|
theApp.SetCurrentRendererType(GSRendererType::Undefined);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -142,6 +142,8 @@ void GSdxApp::Init()
|
||||||
return;
|
return;
|
||||||
is_initialised = true;
|
is_initialised = true;
|
||||||
|
|
||||||
|
m_current_renderer_type = GSRendererType::Undefined;
|
||||||
|
|
||||||
if (m_ini.empty())
|
if (m_ini.empty())
|
||||||
m_ini = "inis/GSdx.ini";
|
m_ini = "inis/GSdx.ini";
|
||||||
m_section = "Settings";
|
m_section = "Settings";
|
||||||
|
@ -497,3 +499,13 @@ void GSdxApp::SetConfig(const char* entry, int value)
|
||||||
|
|
||||||
SetConfig(entry, buff);
|
SetConfig(entry, buff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GSdxApp::SetCurrentRendererType(GSRendererType type)
|
||||||
|
{
|
||||||
|
m_current_renderer_type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
GSRendererType GSdxApp::GetCurrentRendererType()
|
||||||
|
{
|
||||||
|
return m_current_renderer_type;
|
||||||
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "GSSetting.h"
|
#include "GSSetting.h"
|
||||||
|
#include "GS.h"
|
||||||
|
|
||||||
class GSdxApp
|
class GSdxApp
|
||||||
{
|
{
|
||||||
|
@ -31,6 +32,7 @@ class GSdxApp
|
||||||
#if defined(__unix__)
|
#if defined(__unix__)
|
||||||
std::map< std::string, std::string > m_configuration_map;
|
std::map< std::string, std::string > m_configuration_map;
|
||||||
#endif
|
#endif
|
||||||
|
GSRendererType m_current_renderer_type;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GSdxApp();
|
GSdxApp();
|
||||||
|
@ -60,6 +62,8 @@ public:
|
||||||
bool GetConfigB(const char* entry);
|
bool GetConfigB(const char* entry);
|
||||||
string GetConfigS(const char* entry);
|
string GetConfigS(const char* entry);
|
||||||
|
|
||||||
|
void SetCurrentRendererType(GSRendererType type);
|
||||||
|
GSRendererType GetCurrentRendererType();
|
||||||
|
|
||||||
void SetConfigDir(const char* dir);
|
void SetConfigDir(const char* dir);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue