|
发表于 2005-4-11 16:23:00
|
显示全部楼层
Re:GetGraphics()->SwitchMode();
HRESULT hr;
m_bIsSwitching = true;
Destroy();
if( m_bWindowed ) // 窗口->全屏
{
// 修改窗口风格
SetWindowLong( m_hWnd, GWL_STYLE, WS_POPUP );
ShowWindow( m_hWnd, SW_SHOW );
CreateDirectDrawFullScreen( m_hWnd, m_nScreenWidth, m_nScreenHeight );
// get hardware status
m_pDD->GetCaps( &m_ddcaps, NULL );
// 检测是否支持Gamma
if( m_ddcaps.dwCaps2 & DDCAPS2_PRIMARYGAMMA )
{
// 初始化Gamma
m_bIsSupportGamma = true;
if( FAILED( hr = m_pFrontSurface->GetSurface()->QueryInterface( IID_IDirectDrawGammaControl,(void **)&m_pGamma ) ) )
{
Failed( "QueryInterface() failed, error code = 0x%x", hr );
return E_FAIL;
}
m_pGamma->GetGammaRamp( 0, &m_DDGammaOld );
m_pGamma->GetGammaRamp( 0, &m_DDGammaRamp );
}
m_bWindowed = !m_bWindowed;
}
else // 全屏->窗口
{
CreateDirectDrawWindow( m_hWnd, m_nScreenWidth, m_nScreenHeight, m_bIsChangeStyle );
m_bWindowed = !m_bWindowed;
UpdateBounds();
Restore();
}
|
|