fix VC6 compile error

This commit is contained in:
Chris Danford
2003-06-27 08:33:15 +00:00
parent df728d987a
commit b9acabbed5
+80 -78
View File
@@ -195,97 +195,99 @@ const PixelFormatDesc *RageDisplay_D3D::GetPixelFormatDesc(PixelFormat pf) const
RageDisplay_D3D::RageDisplay_D3D( VideoModeParams p ) RageDisplay_D3D::RageDisplay_D3D( VideoModeParams p )
try
{ {
LOG->Trace( "RageDisplay_D3D::RageDisplay_D3D()" ); try
LOG->MapLog("renderer", "Current renderer: Direct3D"); {
LOG->Trace( "RageDisplay_D3D::RageDisplay_D3D()" );
LOG->MapLog("renderer", "Current renderer: Direct3D");
typedef IDirect3D8 * (WINAPI * Direct3DCreate8_t) (UINT SDKVersion); typedef IDirect3D8 * (WINAPI * Direct3DCreate8_t) (UINT SDKVersion);
Direct3DCreate8_t pDirect3DCreate8; Direct3DCreate8_t pDirect3DCreate8;
#if defined(_XBOX) #if defined(_XBOX)
pDirect3DCreate8 = Direct3DCreate8; pDirect3DCreate8 = Direct3DCreate8;
#else #else
g_D3D8_Module = LoadLibrary("D3D8.dll"); g_D3D8_Module = LoadLibrary("D3D8.dll");
if(!g_D3D8_Module) if(!g_D3D8_Module)
throw RageException_D3DNotInstalled(); throw RageException_D3DNotInstalled();
pDirect3DCreate8 = (Direct3DCreate8_t) GetProcAddress(g_D3D8_Module, "Direct3DCreate8"); pDirect3DCreate8 = (Direct3DCreate8_t) GetProcAddress(g_D3D8_Module, "Direct3DCreate8");
#endif #endif
g_pd3d = pDirect3DCreate8( D3D_SDK_VERSION ); g_pd3d = pDirect3DCreate8( D3D_SDK_VERSION );
if( FAILED( g_pd3d->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &g_DeviceCaps) ) ) if( FAILED( g_pd3d->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &g_DeviceCaps) ) )
throw RageException_D3DNoAcceleration(); throw RageException_D3DNoAcceleration();
D3DADAPTER_IDENTIFIER8 identifier; D3DADAPTER_IDENTIFIER8 identifier;
g_pd3d->GetAdapterIdentifier( D3DADAPTER_DEFAULT, 0, &identifier ); g_pd3d->GetAdapterIdentifier( D3DADAPTER_DEFAULT, 0, &identifier );
LOG->Trace( LOG->Trace(
"Driver: %s\n" "Driver: %s\n"
"Description: %s\n" "Description: %s\n"
"Max texture size: %d\n", "Max texture size: %d\n",
identifier.Driver, identifier.Driver,
identifier.Description, identifier.Description,
g_DeviceCaps.MaxTextureWidth g_DeviceCaps.MaxTextureWidth
); );
LOG->Trace( "This display adaptor supports the following modes:" ); LOG->Trace( "This display adaptor supports the following modes:" );
D3DDISPLAYMODE mode; D3DDISPLAYMODE mode;
for( UINT u=0; u<g_pd3d->GetAdapterModeCount(D3DADAPTER_DEFAULT); u++ ) for( UINT u=0; u<g_pd3d->GetAdapterModeCount(D3DADAPTER_DEFAULT); u++ )
if( SUCCEEDED( g_pd3d->EnumAdapterModes( D3DADAPTER_DEFAULT, u, &mode ) ) ) if( SUCCEEDED( g_pd3d->EnumAdapterModes( D3DADAPTER_DEFAULT, u, &mode ) ) )
LOG->Trace( " %ux%u %uHz, format %d", mode.Width, mode.Height, mode.RefreshRate, mode.Format ); LOG->Trace( " %ux%u %uHz, format %d", mode.Width, mode.Height, mode.RefreshRate, mode.Format );
/* Up until now, all we've done is set up g_pd3d and do some queries. Now, /* Up until now, all we've done is set up g_pd3d and do some queries. Now,
* actually initialize the window. Do this after as many error conditions * actually initialize the window. Do this after as many error conditions
* as possible, because if we have to shut it down again we'll flash a window * as possible, because if we have to shut it down again we'll flash a window
* briefly. */ * briefly. */
if(!SDL_WasInit(SDL_INIT_VIDEO)) if(!SDL_WasInit(SDL_INIT_VIDEO))
{ {
if( SDL_InitSubSystem(SDL_INIT_VIDEO) == -1 ) if( SDL_InitSubSystem(SDL_INIT_VIDEO) == -1 )
RageException::Throw( "SDL_INIT_VIDEO failed: %s", SDL_GetError() ); RageException::Throw( "SDL_INIT_VIDEO failed: %s", SDL_GetError() );
}
/* By default, ignore all SDL events. We'll enable them as we need them.
* We must not enable any events we don't actually want, since we won't
* query for them and they'll fill up the event queue.
*
* This needs to be done after we initialize video, since it's really part
* of the SDL video system--it'll be reinitialized on us if we do this first. */
SDL_EventState(0xFF /*SDL_ALLEVENTS*/, SDL_IGNORE);
SDL_EventState(SDL_VIDEORESIZE, SDL_ENABLE);
g_PaletteIndex.clear();
for( int i = 0; i < 256; ++i )
g_PaletteIndex.push_back(i);
// Save the original desktop format.
g_pd3d->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &g_DesktopMode );
// Create the SDL window
int flags = SDL_RESIZABLE | SDL_SWSURFACE;
SDL_Surface *screen = SDL_SetVideoMode(p.width, p.height, p.bpp, flags);
if(!screen)
RageException::Throw("SDL_SetVideoMode failed: %s", SDL_GetError());
SetVideoMode( p );
} catch(...) {
// Clean up; ~RageDisplay will not be called.
if( SDL_WasInit(SDL_INIT_VIDEO) )
SDL_QuitSubSystem(SDL_INIT_VIDEO);
if( g_pd3d )
{
g_pd3d->Release();
g_pd3d = NULL;
}
if( g_D3D8_Module )
{
FreeLibrary( g_D3D8_Module );
g_D3D8_Module = NULL;
}
throw;
} }
}
/* By default, ignore all SDL events. We'll enable them as we need them.
* We must not enable any events we don't actually want, since we won't
* query for them and they'll fill up the event queue.
*
* This needs to be done after we initialize video, since it's really part
* of the SDL video system--it'll be reinitialized on us if we do this first. */
SDL_EventState(0xFF /*SDL_ALLEVENTS*/, SDL_IGNORE);
SDL_EventState(SDL_VIDEORESIZE, SDL_ENABLE);
g_PaletteIndex.clear();
for( int i = 0; i < 256; ++i )
g_PaletteIndex.push_back(i);
// Save the original desktop format.
g_pd3d->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &g_DesktopMode );
// Create the SDL window
int flags = SDL_RESIZABLE | SDL_SWSURFACE;
SDL_Surface *screen = SDL_SetVideoMode(p.width, p.height, p.bpp, flags);
if(!screen)
RageException::Throw("SDL_SetVideoMode failed: %s", SDL_GetError());
SetVideoMode( p );
} catch(...) {
// Clean up; ~RageDisplay will not be called.
if( SDL_WasInit(SDL_INIT_VIDEO) )
SDL_QuitSubSystem(SDL_INIT_VIDEO);
if( g_pd3d )
{
g_pd3d->Release();
g_pd3d = NULL;
}
if( g_D3D8_Module )
{
FreeLibrary( g_D3D8_Module );
g_D3D8_Module = NULL;
}
throw;
};
void RageDisplay_D3D::Update(float fDeltaTime) void RageDisplay_D3D::Update(float fDeltaTime)
{ {