restore Alt-tab handling for fullscreen Bltflip

This commit is contained in:
cxgeorge 2002-02-20 00:46:27 +00:00
parent de6a97f1c0
commit f2bd33cd7c

View File

@ -6522,12 +6522,7 @@ void DXGraphicsStateGuardian::show_full_screen_frame(void) {
// Flip the front and back buffers, to make what we just rendered
// visible.
if (_overlay_windows_supported) {
// If we're asking for overlay windows, we have to blt instead of
// flip, so we don't lose the window.
hr = scrn.pddsPrimary->Blt( NULL, scrn.pddsBack, NULL, DDBLT_WAIT, NULL );
} else {
if(!_overlay_windows_supported) {
// Normally, we can just do the fast flip operation.
DWORD dwFlipFlags = DDFLIP_WAIT;
@ -6544,17 +6539,20 @@ void DXGraphicsStateGuardian::show_full_screen_frame(void) {
// bugbug: dont we want triple buffering instead of wasting time
// waiting for vsync?
hr = scrn.pddsPrimary->Flip( NULL, dwFlipFlags);
} else {
// If we're asking for overlay windows, we have to blt instead of
// flip, so we don't lose the window.
hr = scrn.pddsPrimary->Blt( NULL, scrn.pddsBack, NULL, DDBLT_WAIT, NULL );
}
if(FAILED(hr)) {
if(FAILED(hr)) {
if((hr == DDERR_SURFACELOST) || (hr == DDERR_SURFACEBUSY)) {
CheckCooperativeLevel();
} else {
dxgsg_cat.error() << "show_frame() - Flip failed w/unexpected error code: " << ConvD3DErrorToString(hr) << endl;
exit(1);
}
}
}
}
////////////////////////////////////////////////////////////////////