For tracking down Michel's problem: Reenable mode printing, print

the hr when CheckDeviceType fails.
This commit is contained in:
Glenn Maynard
2002-10-01 22:11:07 +00:00
parent 1e0e536467
commit 49f21f16e3
+16 -23
View File
@@ -82,7 +82,6 @@ RageDisplay::RageDisplay( HWND hWnd )
// Enumerate possible display modes
/*
LOG->Trace( "This display adaptor supports the following modes:" );
for( UINT u=0; u<m_pd3d->GetAdapterModeCount(D3DADAPTER_DEFAULT); u++ )
{
@@ -91,7 +90,7 @@ RageDisplay::RageDisplay( HWND hWnd )
{
LOG->Trace( " %ux%u %uHz, format %d", mode.Width, mode.Height, mode.RefreshRate, mode.Format );
}
} */
}
// Save the original desktop format.
m_pd3d->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &m_DesktopMode );
@@ -206,40 +205,34 @@ D3DFORMAT RageDisplay::FindBackBufferType(bool bWindowed, int iBPP)
throw RageException( ssprintf("Invalid BPP '%u' specified", iBPP) );
// Test each back buffer format until we find something that works.
D3DFORMAT fmtBackBuffer=D3DFMT_UNKNOWN; // fill this in below...
int i;
for( i=0; i < arrayBackBufferFormats.GetSize(); i++ )
for( int i=0; i < arrayBackBufferFormats.GetSize(); i++ )
{
D3DFORMAT fmtBackBuffer = arrayBackBufferFormats[i];
D3DFORMAT fmtDisplay;
if( bWindowed )
{
fmtDisplay = m_DesktopMode.Format;
fmtBackBuffer = arrayBackBufferFormats[i];
}
else // Fullscreen
{
fmtDisplay = fmtBackBuffer = arrayBackBufferFormats[i];
}
fmtDisplay = arrayBackBufferFormats[i];
LOG->Trace( CString(i? "That won't work. ":"") +
"Testing format: display %d, back buffer %d, windowed %d...",
LOG->Trace( "Testing format: display %d, back buffer %d, windowed %d...",
fmtDisplay, fmtBackBuffer, bWindowed );
hr = m_pd3d->CheckDeviceType( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
fmtDisplay, fmtBackBuffer, bWindowed );
if( SUCCEEDED(hr) )
break; // done searching
if( FAILED(hr) ) {
LOG->Trace( hr, "That won't work. ");
continue;
}
// done searching
LOG->Trace( "This will work." );
return fmtBackBuffer;
}
if(fmtBackBuffer == D3DFMT_UNKNOWN)
throw RageException( "Couldn't find a valid format." );
LOG->Trace( "This will work." );
if( i == arrayBackBufferFormats.GetSize() ) // we didn't find an appropriate format
return D3DFMT_UNKNOWN;
return fmtBackBuffer;
// we didn't find an appropriate format
return D3DFMT_UNKNOWN;
}