我想创建多个渲染目标视图,我试过但我不能获得超过2的缓冲区。
我已经将DXGI_SWAP_CHAIN_DESC的BufferCount值设置为BufferSize
UINT const BufferSize = 4;
ID3D11Texture2D* BufferTemp;
ID3D11RenderTargetView** RenderTargetView = new ID3D11RenderTargetView*[BufferSize];
for (UINT i = 0; i < BufferSize; i++) {
ZeroMemory(&BufferTemp, sizeof(BufferTemp));
SwapChain->GetBuffer(i, __uuidof(ID3D11Texture2D), (void**)&BufferTemp);
Device->CreateRenderTargetView(BufferTemp, 0, &RenderTargetView[i]);
}
在实际代码中,我初始化了HRESULT值,它在第一个循环中表示S_OK,但之后它表示0x887a0001。
如果此交换链使用DXGI_SWAP_EFFECT_DISCARD
效果,则GetBuffer
方法只能访问第一个缓冲区。也就是说,您只能查看可以绘制的唯一缓冲区。