Получение нескольких буферов экрана из цепочки обмена - PullRequest
2 голосов
/ 28 апреля 2019

Я хочу создать несколько целевых представлений рендеринга, и я попробовал это сделать, но я не могу получить буфер больше 2.

Я уже установил значение BufferCount в DXGI_SWAP_CHAIN_DESC как 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.

1 Ответ

0 голосов
/ 28 апреля 2019

Если в этой цепочке обмена используется эффект DXGI_SWAP_EFFECT_DISCARD, метод GetBuffer может получить доступ только к первому буферу.То есть вы можете видеть только единственный буфер, на котором можете рисовать.

...