Here's my OnResize() function. I'm either doing something wrong, or ResizeBuffers doesn't do what I though it did. Sorry if this is a dumb question
[source lang="cpp"]HRESULT OnResize(LPARAM lParam){ g_pImmediateContext->OMSetRenderTargets(0, 0, 0); // Release any extraneous instances of swap chain's buffers. The render // target view typically holds references to swap chain's buffers. g_pRenderTargetView->Release(); UINT width = LOWORD(lParam); UINT height = HIWORD(lParam); // Resize swap chain's buffers. HRESULT hr = g_pSwapChain->ResizeBuffers(1, width, height, DXGI_FORMAT_R8G8B8A8_UNORM, 0); if(FAILED(hr)) { MessageBox(NULL, "[ERROR] Failed to resize buffers.\nOnResize() in rederer.cpp", "ERROR", MB_ICONERROR | MB_OK); return hr; } // Get buffer and create render target view. ID3D11Texture2D* pBackBuffer = nullptr; hr = g_pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (void**)&pBackBuffer); if(FAILED(hr)) { MessageBox(NULL, "[ERROR] Failed to get back buffer.\nOnResize() in renderer.cpp", "ERROR", MB_ICONERROR | MB_OK); return hr; } hr = g_pD3DDevice->CreateRenderTargetView(pBackBuffer, NULL, &g_pRenderTargetView); pBackBuffer->Release(); if(FAILED(hr)) { MessageBox(NULL, "[ERROR] Failed to create render target view." "\nOnResize() in renderer.cpp", "ERROR", MB_ICONERROR | MB_OK); return hr; } g_pImmediateContext->OMSetRenderTargets(1, &g_pRenderTargetView, NULL); // Set up viewport. D3D11_VIEWPORT vp; vp.Width = (float)width; vp.Height = (float)height; vp.MinDepth = 0.0f; vp.MaxDepth = 1.0f; vp.TopLeftX = 0; vp.TopLeftY = 0; g_pImmediateContext->RSSetViewports(1, &vp); return S_OK;}[/source]
And here's the little snippet inside of WndProc() where I call it.
[source lang="cpp"]case WM_SIZE: if(g_pSwapChain) { OnResize(lParam); } return 0;[/source]
Thanks for the help.






