Second try for nvidia driver bug in dx10/aero.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2480 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2010-01-22 23:56:06 +00:00
parent 4e225ba113
commit b594d6e37b
1 changed files with 11 additions and 5 deletions

View File

@ -816,12 +816,18 @@ void Pcsx2App::OpenGsPanel()
// This is an attempt to hackfix a bug in nvidia's 195.xx drivers: When using // This is an attempt to hackfix a bug in nvidia's 195.xx drivers: When using
// Aero and DX10, the driver fails to update the window after the device has changed, // Aero and DX10, the driver fails to update the window after the device has changed,
// until some event like a hide/show or resize event is posted to the window. // until some event like a hide/show or resize event is posted to the window.
// Presumably this forces the driver to re-cache the visibility info. I'm not sure // Presumably this forces the driver to re-cache the visibility info.
// if an immediate hide/show will work, or if I need to post these through the event // Notes:
// loop for it to take effect. Trying this first... -- air. // Doing an immediate hide/show didn't work. So now I'm trying a resize. Because
// wxWidgets is "clever" (grr!) it optimizes out just force-setting the same size
// over again, so instead I resize it to size-1 and then back to the original size.
const wxSize oldsize( gsFrame->GetSize() );
wxSize newsize( oldsize );
newsize.DecBy(1);
gsFrame->GetViewport()->Hide(); gsFrame->SetSize( newsize );
gsFrame->GetViewport()->Show(); gsFrame->SetSize( oldsize );
} }
pxAssumeDev( !GetPluginManager().IsOpen( PluginId_GS ), "GS Plugin must be closed prior to opening a new Gs Panel!" ); pxAssumeDev( !GetPluginManager().IsOpen( PluginId_GS ), "GS Plugin must be closed prior to opening a new Gs Panel!" );