交换链封装2个以上的后背缓冲区用于渲染和显示。他们通常包含一个前置缓冲区用于显示和一个后背缓冲区用于渲染。实时上下文用于渲染后背缓冲区,交换链通过交换两个缓冲区来显示图像。
交换链定义了几个渲染特性,包括:
- 渲染区域的大小
- 显示刷新率
- 显示模式
- 缓冲区的数据格式
通过填充DXGI_SWAPCHAIN_DESC结构并初始化IDXGISwapChain接口,定义交换链的特征。通过调用IDXGIFactory::CreateSwapChain或D3D11CreateDeviceAndSwapChain初始化交换链。
创建一个设备和交换链
要初始化设备和交换链,请使用以下两个函数之一:
- 当您想在设备初始化的同时初始化交换链时,使用D3D11CreateDeviceAndSwapChain函数。这通常是最简单的选择。
- 当您决定使用IDXGIFactory::CreateSwapChain创建了交换链时,使用D3D11CreateDevice函数创建设备。