GSopen2: Fixed legacy mode compat and STGS operation.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1862 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-09-18 22:13:40 +00:00
parent 27af8d80ca
commit 788489f517
4 changed files with 11 additions and 6 deletions

View File

@ -171,6 +171,7 @@ static INT32 _GSopen(void* dsp, char* title, int renderer)
{ {
// Allowing std exceptions to escape the scope of the plugin callstack could // Allowing std exceptions to escape the scope of the plugin callstack could
// be problematic, because of differing typeids between DLL and EXE compilations. // be problematic, because of differing typeids between DLL and EXE compilations.
// ('new' could throw std::alloc)
printf( "GSdx error: Exception caught in GSopen: %s", ex.what() ); printf( "GSdx error: Exception caught in GSopen: %s", ex.what() );
return -1; return -1;
@ -248,7 +249,7 @@ EXPORT_C_(INT32) GSopen(void* dsp, char* title, int mt)
if( retval == 0 && s_gs ) if( retval == 0 && s_gs )
{ {
s_gs->SetMultithreaded( false ); s_gs->SetMultithreaded( !!mt );
} }
return retval; return retval;

View File

@ -22,7 +22,6 @@
#pragma once #pragma once
#include "GSRendererHW.h" #include "GSRendererHW.h"
//#include "GSTextureFX.h"
template<class Vertex> template<class Vertex>
class GSRendererDX : public GSRendererHW<Vertex> class GSRendererDX : public GSRendererHW<Vertex>

View File

@ -226,9 +226,8 @@ void GSState::ResetHandlers()
m_fpGIFRegHandlers[GIF_A_D_REG_TRXREG] = &GSState::GIFRegHandlerTRXREG; m_fpGIFRegHandlers[GIF_A_D_REG_TRXREG] = &GSState::GIFRegHandlerTRXREG;
m_fpGIFRegHandlers[GIF_A_D_REG_TRXDIR] = &GSState::GIFRegHandlerTRXDIR; m_fpGIFRegHandlers[GIF_A_D_REG_TRXDIR] = &GSState::GIFRegHandlerTRXDIR;
m_fpGIFRegHandlers[GIF_A_D_REG_HWREG] = &GSState::GIFRegHandlerHWREG; m_fpGIFRegHandlers[GIF_A_D_REG_HWREG] = &GSState::GIFRegHandlerHWREG;
m_fpGIFRegHandlers[GIF_A_D_REG_SIGNAL] = &GSState::GIFRegHandlerSIGNAL;
m_fpGIFRegHandlers[GIF_A_D_REG_FINISH] = &GSState::GIFRegHandlerFINISH; SetMultithreaded( m_mt );
m_fpGIFRegHandlers[GIF_A_D_REG_LABEL] = &GSState::GIFRegHandlerLABEL;
} }
GSVector4i GSState::GetDisplayRect(int i) GSVector4i GSState::GetDisplayRect(int i)

View File

@ -68,7 +68,7 @@ LRESULT GSWnd::OnMessage(UINT message, WPARAM wParam, LPARAM lParam)
// DestroyWindow(m_hWnd); // DestroyWindow(m_hWnd);
return 0; return 0;
case WM_DESTROY: case WM_DESTROY:
PostQuitMessage(0); //PostQuitMessage(0);
return 0; return 0;
default: default:
break; break;
@ -150,6 +150,12 @@ bool GSWnd::Attach(HWND hWnd, bool isManaged)
void GSWnd::Detach() void GSWnd::Detach()
{ {
if(m_hWnd && m_IsManaged)
{
// close the window, since it's under GSdx care. It's not taking messages anyway, and
// that means its big, ugly, and in the way.
DestroyWindow(m_hWnd);
}
m_hWnd = NULL; m_hWnd = NULL;
m_IsManaged = true; m_IsManaged = true;
} }