Docs: Add D3D12 API documentation
This commit is contained in:
63
docs/api/d3d12/d3d12-command-queue.md
Normal file
63
docs/api/d3d12/d3d12-command-queue.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# D3D12CommandQueue
|
||||
|
||||
**命名空间**: `XCEngine::RHI`
|
||||
|
||||
**类型**: `class`
|
||||
|
||||
**头文件**: `XCEngine/RHI/D3D12/D3D12CommandQueue.h`
|
||||
|
||||
**描述**: DirectX 12 命令队列封装类,负责提交命令列表到 GPU 执行
|
||||
|
||||
## 概述
|
||||
|
||||
D3D12CommandQueue 是 DirectX 12 命令队列的封装类,继承自 RHICommandQueue 接口。它负责将录制好的命令列表提交到 GPU 执行,支持 GPU/CPU 同步操作,如信号、等待等。命令队列是渲染管线的核心组件,所有渲染命令都通过命令队列提交到 GPU。
|
||||
|
||||
## 公共方法
|
||||
|
||||
| 方法 | 描述 |
|
||||
|------|------|
|
||||
| `D3D12CommandQueue()` | 默认构造函数 |
|
||||
| `~D3D12CommandQueue()` | 虚析构函数 |
|
||||
| [Initialize](d3d12-command-queue-initialize.md) | 初始化命令队列 |
|
||||
| [Shutdown](d3d12-command-queue-shutdown.md) | 关闭命令队列 |
|
||||
| [ExecuteCommandLists](d3d12-command-queue-execute-command-lists.md) | 执行命令列表 |
|
||||
| [Signal](d3d12-command-queue-signal.md) | 设置围栏信号 |
|
||||
| [Wait](d3d12-command-queue-wait.md) | 等待围栏 |
|
||||
| [GetCompletedValue](d3d12-command-queue-get-completed-value.md) | 获取已完成值 |
|
||||
| [WaitForIdle](d3d12-command-queue-wait-for-idle.md) | 等待空闲 |
|
||||
| [GetType](d3d12-command-queue-get-type.md) | 获取队列类型 |
|
||||
| [GetTimestampFrequency](d3d12-command-queue-get-timestamp-frequency.md) | 获取时间戳频率 |
|
||||
| [GetCommandQueue](d3d12-command-queue-get-command-queue.md) | 获取底层队列指针 |
|
||||
| [WaitForPreviousFrame](d3d12-command-queue-wait-for-previous-frame.md) | 等待前一帧完成 |
|
||||
|
||||
## 使用示例
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/RHI/D3D12/D3D12CommandQueue.h>
|
||||
|
||||
using namespace XCEngine::RHI;
|
||||
|
||||
// 创建命令队列
|
||||
D3D12CommandQueue commandQueue;
|
||||
commandQueue.Initialize(device, CommandQueueType::Direct);
|
||||
|
||||
// 执行命令列表
|
||||
ID3D12CommandList* lists[] = { commandList->GetCommandList() };
|
||||
commandQueue.ExecuteCommandListsInternal(1, lists);
|
||||
|
||||
// 信号同步
|
||||
commandQueue.Signal(fence, frameIndex);
|
||||
commandQueue.WaitForPreviousFrame();
|
||||
|
||||
// 等待空闲
|
||||
commandQueue.WaitForIdle();
|
||||
|
||||
// 关闭
|
||||
commandQueue.Shutdown();
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [D3D12 模块概览](d3d12.md) - D3D12 模块总览
|
||||
- [D3D12CommandList](d3d12-command-list.md) - 命令列表
|
||||
- [D3D12Fence](d3d12-fence.md) - 围栏同步
|
||||
Reference in New Issue
Block a user