| 1753 | } |
| 1754 | |
| 1755 | void DXRenderWindow::Resized() |
| 1756 | { |
| 1757 | mRenderDevice->mResizeCount++; |
| 1758 | mResizeNum = mRenderDevice->mResizeCount; |
| 1759 | |
| 1760 | RECT rect; |
| 1761 | GetClientRect(mHWnd, &rect); |
| 1762 | |
| 1763 | if (rect.right <= rect.left) |
| 1764 | return; |
| 1765 | |
| 1766 | mWidth = rect.right - rect.left; |
| 1767 | mHeight = rect.bottom - rect.top; |
| 1768 | |
| 1769 | if (mDXSwapChain != NULL) |
| 1770 | { |
| 1771 | mD3DBackBuffer->Release(); |
| 1772 | mD3DDepthBuffer->Release(); |
| 1773 | mD3DRenderTargetView->Release(); |
| 1774 | mD3DDepthStencilView->Release(); |
| 1775 | |
| 1776 | CheckDXResult(mDXSwapChain->ResizeBuffers(0, mWidth, mHeight, DXGI_FORMAT_UNKNOWN, |
| 1777 | DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH /*| DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT*/)); |
| 1778 | |
| 1779 | D3D11_TEXTURE2D_DESC descDepth; |
| 1780 | ZeroMemory(&descDepth, sizeof(descDepth)); |
| 1781 | descDepth.Width = mWidth; |
| 1782 | descDepth.Height = mHeight; |
| 1783 | descDepth.MipLevels = 1; |
| 1784 | descDepth.ArraySize = 1; |
| 1785 | descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; |
| 1786 | descDepth.SampleDesc.Count = 1; |
| 1787 | descDepth.SampleDesc.Quality = 0; |
| 1788 | descDepth.Usage = D3D11_USAGE_DEFAULT; |
| 1789 | descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL; |
| 1790 | descDepth.CPUAccessFlags = 0; |
| 1791 | descDepth.MiscFlags = 0; |
| 1792 | mDXRenderDevice->mD3DDevice->CreateTexture2D(&descDepth, NULL, &mD3DDepthBuffer); |
| 1793 | |
| 1794 | CheckDXResult(mDXSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&mD3DBackBuffer)); |
| 1795 | CheckDXResult(mDXRenderDevice->mD3DDevice->CreateRenderTargetView(mD3DBackBuffer, NULL, &mD3DRenderTargetView)); |
| 1796 | CheckDXResult(mDXRenderDevice->mD3DDevice->CreateDepthStencilView(mD3DDepthBuffer, NULL, &mD3DDepthStencilView)); |
| 1797 | |
| 1798 | /*if (mRenderDevice->mCurRenderTarget == this) |
| 1799 | mRenderDevice->mCurRenderTarget = NULL; |
| 1800 | PhysSetAsTarget();*/ |
| 1801 | } |
| 1802 | } |
| 1803 | |
| 1804 | void DXRenderWindow::Present() |
| 1805 | { |
no test coverage detected