Я новичок в DirectX 11, и после книги Beginning DirectX 11 в главе 2 есть код для создания буфера, используя следующий код:
DXGI_SWAP_CHAIN_DESC swapChainDesc;
ZeroMemory( &swapChainDesc, sizeof( swapChainDesc ) );
swapChainDesc.BufferCount = 1;
swapChainDesc.BufferDesc.Width = width;
swapChainDesc.BufferDesc.Height = height;
swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
swapChainDesc.BufferDesc.RefreshRate.Numerator = 60;
swapChainDesc.BufferDesc.RefreshRate.Denominator = 1;
swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
swapChainDesc.OutputWindow = hwnd;
swapChainDesc.Windowed = true;
swapChainDesc.SampleDesc.Count = 1;
swapChainDesc.SampleDesc.Quality = 0;
Мой вопрос заключается в описание цепочки подкачки , очевидно, есть место только для одного буфера, поскольку существует только один BufferDesc (структура DXGI_MODE_DESC).Итак, если для BufferCount установлено значение 2 или более, как регистрируется второй буфер?Используется ли другой DXGI_SWAP_CHAIN_DESC?Пожалуйста, напишите пример кода.
Также BufferCount имеет тип UNIT, что означает, что можно добавить более двух буферов.В то время как 2 буфера используются в технике двойной буферизации, в которой один буфер используется для рисования, а другой буфер используется для отображения на сцене, и буферы меняются местами.Какая польза, преимущества более двух буферов?