[toc]
# 主要步骤
# 初始化
- 用
D3D12CreateDevice
函数创建ID3D12Device
接口实例。 - 创建一个
ID3D12Fence
对象,并查询描述符大小。 - 检测用户设备对
4x MSAA
质量级别的支持情况。 - 依次创建命令队列、命令列表分配器和主命令列表。
- 描述并创建交换链。
- 创建应用程序所需要的描述符堆。
- 调整后台缓冲区的大小,并为它创建渲染目标视图。
- 创建深度 / 模板缓冲区及与之关联的深度 / 模板视图。
- 创建视口 (viewport) 和裁剪矩形 (scissor rectangle)。
# Chapter4 渲染循环
- 等待 GPU 关联的命令列表执行完毕
- 重置列表的分配器
- 从命令列表中获取分配器 (复用分配器)
- 将资源状态从呈现状态转换为渲染状态
- 设置视口矩阵和裁剪矩阵
- 清除后台缓冲区和深度缓冲区
- 指定当前命令列表要渲染的目标缓冲区
- 将资源状态从渲染状态转换为呈现状态
- 将命令列表从记录状态转换为关闭状态
- 获得设置完毕的命令列表
- 调用命令队列的
ExecuteCommandLists
将命令列表加入命令队列 - 交换前后台缓冲区
- 等待此帧的命令结束