我想创建多个渲染目标 View ,但我尝试过,但缓冲区不能超过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方法只能访问第一个缓冲区。那就是您只能查看可以绘制的唯一缓冲区的 View 。

10-05 19:50