Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- case WM_SIZE: // Window size has been changed
- if (g_D3DDev) // Resize D3D render target
- {
- // Release render target and depth-stencil view
- ID3D11RenderTargetView *nullRTV = NULL;
- g_D3DDevCtx->OMSetRenderTargets(1, &nullRTV, NULL);
- if (g_RenderTargetView)
- {
- g_RenderTargetView->Release();
- g_RenderTargetView = NULL;
- }
- if (g_DepthStencilView)
- {
- g_DepthStencilView->Release();
- g_DepthStencilView = NULL;
- }
- if (g_SwapChain)
- {
- // Resize swap chain
- g_SwapChainDesc.BufferDesc.Width = LOWORD(lParam);
- g_SwapChainDesc.BufferDesc.Height = HIWORD(lParam);
- g_SwapChain->ResizeBuffers(g_SwapChainDesc.BufferCount, g_SwapChainDesc.BufferDesc.Width,
- g_SwapChainDesc.BufferDesc.Height, g_SwapChainDesc.BufferDesc.Format,
- g_SwapChainDesc.Flags);
- // Re-create a render target and depth-stencil view
- ID3D11Texture2D *backBuffer = NULL, *dsBuffer = NULL;
- g_SwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&backBuffer);
- g_D3DDev->CreateRenderTargetView(backBuffer, NULL, &g_RenderTargetView);
- backBuffer->Release();
- g_DepthStencilDesc.Width = g_SwapChainDesc.BufferDesc.Width;
- g_DepthStencilDesc.Height = g_SwapChainDesc.BufferDesc.Height;
- g_D3DDev->CreateTexture2D(&g_DepthStencilDesc, NULL, &dsBuffer);
- g_D3DDev->CreateDepthStencilView(dsBuffer, NULL, &g_DepthStencilView);
- dsBuffer->Release();
- g_D3DDevCtx->OMSetRenderTargets(1, &g_RenderTargetView, g_DepthStencilView);
- // Setup the viewport
- D3D11_VIEWPORT vp;
- vp.Width = (float)g_SwapChainDesc.BufferDesc.Width;
- vp.Height = (float)g_SwapChainDesc.BufferDesc.Height;
- vp.MinDepth = 0.0f;
- vp.MaxDepth = 1.0f;
- vp.TopLeftX = 0;
- vp.TopLeftY = 0;
- g_D3DDevCtx->RSSetViewports(1, &vp);
- }
- // TwWindowSize has been called by TwEventWin, so it is not necessary to call it again here.
- }
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement