Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. case WM_SIZE: // Window size has been changed
  2. if (g_D3DDev) // Resize D3D render target
  3. {
  4. // Release render target and depth-stencil view
  5. ID3D11RenderTargetView *nullRTV = NULL;
  6. g_D3DDevCtx->OMSetRenderTargets(1, &nullRTV, NULL);
  7. if (g_RenderTargetView)
  8. {
  9. g_RenderTargetView->Release();
  10. g_RenderTargetView = NULL;
  11. }
  12. if (g_DepthStencilView)
  13. {
  14. g_DepthStencilView->Release();
  15. g_DepthStencilView = NULL;
  16. }
  17.  
  18. if (g_SwapChain)
  19. {
  20. // Resize swap chain
  21. g_SwapChainDesc.BufferDesc.Width = LOWORD(lParam);
  22. g_SwapChainDesc.BufferDesc.Height = HIWORD(lParam);
  23. g_SwapChain->ResizeBuffers(g_SwapChainDesc.BufferCount, g_SwapChainDesc.BufferDesc.Width,
  24. g_SwapChainDesc.BufferDesc.Height, g_SwapChainDesc.BufferDesc.Format,
  25. g_SwapChainDesc.Flags);
  26.  
  27. // Re-create a render target and depth-stencil view
  28. ID3D11Texture2D *backBuffer = NULL, *dsBuffer = NULL;
  29. g_SwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&backBuffer);
  30. g_D3DDev->CreateRenderTargetView(backBuffer, NULL, &g_RenderTargetView);
  31. backBuffer->Release();
  32. g_DepthStencilDesc.Width = g_SwapChainDesc.BufferDesc.Width;
  33. g_DepthStencilDesc.Height = g_SwapChainDesc.BufferDesc.Height;
  34. g_D3DDev->CreateTexture2D(&g_DepthStencilDesc, NULL, &dsBuffer);
  35. g_D3DDev->CreateDepthStencilView(dsBuffer, NULL, &g_DepthStencilView);
  36. dsBuffer->Release();
  37. g_D3DDevCtx->OMSetRenderTargets(1, &g_RenderTargetView, g_DepthStencilView);
  38.  
  39. // Setup the viewport
  40. D3D11_VIEWPORT vp;
  41. vp.Width = (float)g_SwapChainDesc.BufferDesc.Width;
  42. vp.Height = (float)g_SwapChainDesc.BufferDesc.Height;
  43. vp.MinDepth = 0.0f;
  44. vp.MaxDepth = 1.0f;
  45. vp.TopLeftX = 0;
  46. vp.TopLeftY = 0;
  47. g_D3DDevCtx->RSSetViewports(1, &vp);
  48. }
  49.  
  50. // TwWindowSize has been called by TwEventWin, so it is not necessary to call it again here.
  51. }
  52. return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement