HelloWindow
D3D12HelloWindow 结构
- 构建渲染管线 LoadPipeline
- 开启Debug layer
- 创建dxgi工厂对象factory
- 根据预定标记决定是否使用wrap适配器,利用factory枚举对应适配器并创建Device
- 创建命令队列
1. 创建命令队列描述符,指定行为标志、队列类型
2. 使用device根据描述符创建队列
- 创建交换链
1. 创建交换链描述符,指定缓冲区数量、宽高、颜色格式、缓冲区类型、交换方式和采样
2. 根据描述符创建一个较旧版本的交换链
3. 将交换链提升到需要的版本以应用新的特性
4. 标记当前后台缓冲区的索引
- 创建描述符堆
- 创建RTV(渲染目标视图
- 创建Command Allocator
- 准备资源与同步顺序 LoadAsset
- 创建Command List
- 创建Fence和Event
- 渲染帧更新 OnRender
- 准备命令列表 PopulateCommandList
1. 重置Command Allocator,Command List
2. 资源屏障状态切换
3. 通过描述符堆获取当前RTV
4. 绘制
5. 切回可渲染的状态并关闭Command List
- 等待GPU完成当前工作并准备下一帧资源 WaitForPreviousFrame
- 逻辑帧更新 OnUpdate
- 销毁 OnDestroy