HRESULT CD3D9Renderer::AdjustWindowForChange()
{
#if !defined(XENON) && !defined(PS3)
if (IsEditorMode())
return S_OK;
if( !m_bFullScreen )
{
// Set windowed-mode style
SetWindowLong( m_hWnd, GWL_STYLE, m_dwWindowStyle );
}
else
{
// Set fullscreen-mode style
SetWindowLong( m_hWnd, GWL_STYLE, WS_POPUP|WS_VISIBLE );
}
DXUTDeviceSettings* pDev = DXUTGetCurrentDeviceSettings();
#if defined (DIRECT3D9) || defined (OPENGL)
if (m_width != m_pd3dpp->BackBufferWidth || m_height != m_pd3dpp->BackBufferHeight)
{
m_width = m_pd3dpp->BackBufferWidth;
m_height = m_pd3dpp->BackBufferHeight;
_SetVar("r_Width", m_width);
_SetVar("r_Height", m_height);
int x, y, wdt, hgt;
if (m_bFullScreen)
{
x = 0;
y = 0;
wdt = m_width;
hgt = m_height;
SetWindowPos(m_hWnd, HWND_TOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW);
}
else
{
x = (GetSystemMetrics(SM_CXFULLSCREEN)-m_width)/2;
y = (GetSystemMetrics(SM_CYFULLSCREEN)-m_height)/2;
wdt = GetSystemMetrics(SM_CXDLGFRAME)*2 + m_width;
hgt = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CXDLGFRAME)*2 + m_height;
SetWindowPos(m_hWnd, HWND_NOTOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW);
}
RT_SetViewport(0, 0, m_width, m_height);
m_MainViewport.nX = 0;
m_MainViewport.nY = 0;
m_MainViewport.nWidth = m_width;
m_MainViewport.nHeight = m_height;
m_MainRTViewport.nX = 0;
m_MainRTViewport.nY = 0;
m_MainRTViewport.nWidth = m_width;
m_MainRTViewport.nHeight = m_height;
}
#elif defined (DIRECT3D10)
/*{
int x, y, wdt, hgt;
if (m_bFullScreen)
{
x = 0;
y = 0;
wdt = m_width;
hgt = m_height;
SetWindowPos(m_hWnd, HWND_TOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW);
}
else
{
x = (GetSystemMetrics(SM_CXFULLSCREEN)-m_width)/2;
y = (GetSystemMetrics(SM_CYFULLSCREEN)-m_height)/2;
wdt = GetSystemMetrics(SM_CXDLGFRAME)*2 + m_width;
hgt = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CXDLGFRAME)*2 + m_height;
SetWindowPos(m_hWnd, HWND_NOTOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW);
}
SetViewport(0, 0, m_width, m_height);
}*/
#endif
#endif
return S_OK;
}