50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
# D3D12CommandQueue
|
||
|
||
**命名空间**: `XCEngine::RHI`
|
||
|
||
**类型**: `class`
|
||
|
||
**继承**: `RHICommandQueue`
|
||
|
||
**描述**: DirectX 12 命令队列的 D3D12 实现,继承自 `RHICommandQueue`。
|
||
|
||
## 公共方法
|
||
|
||
| 方法 | 描述 | 类型 |
|
||
|------|------|------|
|
||
| [`Initialize`](initialize.md) | 初始化命令队列 | D3D12 特有 |
|
||
| [`Shutdown`](shutdown.md) | 关闭命令队列 | Override |
|
||
| [`ExecuteCommandLists`](execute-command-lists.md) | 执行命令列表 | Override |
|
||
| [`Signal`](signal.md) | 信号栅栏(RHIFence 重载) | Override |
|
||
| [`Signal(ID3D12Fence*)`](signal-native.md) | 信号栅栏(Native D3D12Fence) | D3D12 特有 |
|
||
| [`Wait`](wait.md) | 等待栅栏达到指定值 | Override |
|
||
| [`Wait(ID3D12Fence*)`](wait-native.md) | 等待栅栏(Native D3D12Fence) | D3D12 特有 |
|
||
| [`GetCompletedValue`](get-completed-value.md) | 获取完成值 | Override |
|
||
| [`WaitForIdle`](wait-for-idle.md) | 等待空闲 | Override |
|
||
| [`GetType`](get-type.md) | 获取队列类型 | Override |
|
||
| [`GetTimestampFrequency`](get-timestamp-frequency.md) | 获取时间戳频率 | Override |
|
||
| [`GetCommandQueue`](get-command-queue.md) | 获取 D3D12 命令队列 | D3D12 特有 |
|
||
| [`GetNativeHandle`](get-native-handle.md) | 获取原生句柄 | Override |
|
||
|
||
## 使用示例
|
||
|
||
```cpp
|
||
ID3D12Device* device; // 初始化好的 D3D12 设备
|
||
D3D12CommandQueue commandQueue;
|
||
|
||
if (commandQueue.Initialize(device, CommandQueueType::Direct)) {
|
||
// 使用命令队列
|
||
commandQueue.ExecuteCommandLists(count, lists);
|
||
|
||
// 等待完成
|
||
commandQueue.WaitForIdle();
|
||
}
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [D3D12 后端总览](../d3d12.md)
|
||
- [RHICommandQueue](../../command-queue/command-queue.md) - 抽象命令队列接口
|
||
- [D3D12CommandList](../command-list/command-list.md)
|
||
- [D3D12Fence](../fence/fence.md)
|