| 1687 | } |
| 1688 | |
| 1689 | HRESULT CDX9VideoProcessor::SetWindowRect(const CRect& windowRect) |
| 1690 | { |
| 1691 | m_windowRect = windowRect; |
| 1692 | UpdateRenderRect(); |
| 1693 | |
| 1694 | if (m_pD3DDevEx && !m_windowRect.IsRectEmpty()) { |
| 1695 | if (!m_pFilter->m_bExclusiveScreen) { |
| 1696 | UINT backBufW = m_windowRect.Width(); |
| 1697 | UINT backBufH = m_windowRect.Height(); |
| 1698 | if (m_d3dpp.SwapEffect == D3DSWAPEFFECT_DISCARD && m_d3dpp.Windowed) { |
| 1699 | backBufW = ALIGN(backBufW, 128); |
| 1700 | backBufH = ALIGN(backBufH, 128); |
| 1701 | } |
| 1702 | if (backBufW != m_d3dpp.BackBufferWidth || backBufH != m_d3dpp.BackBufferHeight) { |
| 1703 | m_d3dpp.BackBufferWidth = backBufW; |
| 1704 | m_d3dpp.BackBufferHeight = backBufH; |
| 1705 | |
| 1706 | m_evResize.Set(); |
| 1707 | WaitForSingleObject(m_evThreadFinishJob, INFINITE); |
| 1708 | } |
| 1709 | } |
| 1710 | |
| 1711 | UpdateStatsByWindow(); |
| 1712 | } |
| 1713 | |
| 1714 | UpdatePostScaleTexures(); |
| 1715 | |
| 1716 | return S_OK; |
| 1717 | } |
| 1718 | |
| 1719 | HRESULT CDX9VideoProcessor::Reset(bool) |
| 1720 | { |