mirror of https://github.com/PCSX2/pcsx2.git
Revert "gsdx: always restore the full gs state object (s_gs)"
This reverts commit 2ea049b5a5
.
This commit is contained in:
parent
091f0d5ee9
commit
7e662c50d4
|
@ -62,6 +62,7 @@ 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 int s_renderer = -1;
|
||||||
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;
|
||||||
|
@ -154,6 +155,8 @@ EXPORT_C GSshutdown()
|
||||||
|
|
||||||
s_gs = NULL;
|
s_gs = NULL;
|
||||||
|
|
||||||
|
s_renderer = -1;
|
||||||
|
|
||||||
#ifdef _WINDOWS
|
#ifdef _WINDOWS
|
||||||
|
|
||||||
if(SUCCEEDED(s_hr))
|
if(SUCCEEDED(s_hr))
|
||||||
|
@ -211,8 +214,16 @@ static int _GSopen(void** dsp, char* title, int renderer, int threads = -1)
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if(s_renderer != renderer)
|
||||||
|
{
|
||||||
|
// 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
|
||||||
|
// GSopen call then they'll get corrupted graphics, but that's not my problem.
|
||||||
|
|
||||||
delete s_gs;
|
delete s_gs;
|
||||||
|
|
||||||
s_gs = NULL;
|
s_gs = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
switch(renderer)
|
switch(renderer)
|
||||||
{
|
{
|
||||||
|
@ -270,6 +281,8 @@ static int _GSopen(void** dsp, char* title, int renderer, int threads = -1)
|
||||||
}
|
}
|
||||||
if (s_gs == NULL)
|
if (s_gs == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
s_renderer = renderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_gs->m_wnd == NULL)
|
if (s_gs->m_wnd == NULL)
|
||||||
|
|
Loading…
Reference in New Issue