docs: update RHI API docs

This commit is contained in:
2026-03-20 02:35:45 +08:00
parent ea756c0177
commit 070b444f8f
501 changed files with 13493 additions and 2022 deletions

View File

@@ -0,0 +1,31 @@
# D3D12Device::CompileShader
```cpp
RHIShader* CompileShader(const ShaderCompileDesc& desc) override;
```
编译 D3D12 着色器。
**参数:**
- `desc` - 着色器编译描述符包含文件名、入口点、Profile 等
**返回:** 新创建的着色器指针,失败返回 `nullptr`
**复杂度:** 取决于着色器复杂度
**示例:**
```cpp
ShaderCompileDesc shaderDesc;
shaderDesc.fileName = L"shaders/vertex.hlsl";
shaderDesc.entryPoint = "VSMain";
shaderDesc.profile = "vs_5_0";
RHIShader* shader = device->CompileShader(shaderDesc);
```
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CompileShader](../../device/compile-shader.md) - 基类方法
- [D3D12Shader](../../shader/shader.md) - D3D12 着色器实现

View File

@@ -0,0 +1,32 @@
# D3D12Device::CreateBuffer
```cpp
RHIBuffer* CreateBuffer(const BufferDesc& desc) override;
```
创建 D3D12 缓冲区资源。
**参数:**
- `desc` - 缓冲区描述符,包含大小、类型、标志等
**返回:** 新创建的缓冲区指针,失败返回 `nullptr`
**复杂度:** O(1)
**示例:**
```cpp
BufferDesc bufferDesc;
bufferDesc.size = sizeof(Vertex) * vertexCount;
bufferDesc.stride = sizeof(Vertex);
bufferDesc.bufferType = (uint32_t)BufferType::Vertex;
bufferDesc.flags = 0;
RHIBuffer* vertexBuffer = device->CreateBuffer(bufferDesc);
```
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CreateBuffer](../../device/create-buffer.md) - 基类方法
- [D3D12Buffer](../../buffer/buffer.md) - D3D12 缓冲区实现

View File

@@ -0,0 +1,19 @@
# D3D12Device::CreateCommandList
```cpp
RHICommandList* CreateCommandList(const CommandListDesc& desc) override;
```
创建 D3D12 命令列表。
**参数:**
- `desc` - 命令列表描述符
**返回:** 新创建的命令列表指针
**注意:** 当前实现返回 `nullptr`
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CreateCommandList](../../device/create-command-list.md) - 基类方法

View File

@@ -0,0 +1,19 @@
# D3D12Device::CreateCommandQueue
```cpp
RHICommandQueue* CreateCommandQueue(const CommandQueueDesc& desc) override;
```
创建 D3D12 命令队列。
**参数:**
- `desc` - 命令队列描述符
**返回:** 新创建的命令队列指针
**注意:** 当前实现返回 `nullptr`
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CreateCommandQueue](../../device/create-command-queue.md) - 基类方法

View File

@@ -0,0 +1,27 @@
# D3D12Device::CreateFence
```cpp
RHIFence* CreateFence(const FenceDesc& desc) override;
```
创建 D3D12 栅栏。
**参数:**
- `desc` - 栅栏描述符,包含初始值等
**返回:** 新创建的栅栏指针,失败返回 `nullptr`
**示例:**
```cpp
FenceDesc fenceDesc;
fenceDesc.initialValue = 0;
RHIFence* fence = device->CreateFence(fenceDesc);
```
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CreateFence](../../device/create-fence.md) - 基类方法
- [D3D12Fence](../../fence/fence.md) - D3D12 栅栏实现

View File

@@ -0,0 +1,19 @@
# D3D12Device::CreatePipelineState
```cpp
RHIPipelineState* CreatePipelineState(const PipelineStateDesc& desc) override;
```
创建 D3D12 管线状态对象。
**参数:**
- `desc` - 管线状态描述符
**返回:** 新创建的管线状态指针
**注意:** 当前实现返回 `nullptr`
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CreatePipelineState](../../device/create-pipeline-state.md) - 基类方法

View File

@@ -0,0 +1,30 @@
# D3D12Device::CreateSampler
```cpp
RHISampler* CreateSampler(const SamplerDesc& desc) override;
```
创建 D3D12 采样器。
**参数:**
- `desc` - 采样器描述符,包含过滤模式、地址模式等
**返回:** 新创建的采样器指针,失败返回 `nullptr`
**示例:**
```cpp
SamplerDesc samplerDesc;
samplerDesc.filter = (uint32_t)D3D12_FILTER_MIN_MAG_MIP_LINEAR;
samplerDesc.addressU = (uint32_t)D3D12_TEXTURE_ADDRESS_MODE_WRAP;
samplerDesc.addressV = (uint32_t)D3D12_TEXTURE_ADDRESS_MODE_WRAP;
samplerDesc.addressW = (uint32_t)D3D12_TEXTURE_ADDRESS_MODE_WRAP;
RHISampler* sampler = device->CreateSampler(samplerDesc);
```
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CreateSampler](../../device/create-sampler.md) - 基类方法
- [D3D12Sampler](../../sampler/sampler.md) - D3D12 采样器实现

View File

@@ -0,0 +1,19 @@
# D3D12Device::CreateSwapChain
```cpp
RHISwapChain* CreateSwapChain(const SwapChainDesc& desc) override;
```
创建 D3D12 交换链。
**参数:**
- `desc` - 交换链描述符
**返回:** 新创建的交换链指针
**注意:** 当前实现返回 `nullptr`
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CreateSwapChain](../../device/create-swap-chain.md) - 基类方法

View File

@@ -0,0 +1,36 @@
# D3D12Device::CreateTexture
```cpp
RHITexture* CreateTexture(const TextureDesc& desc) override;
```
创建 D3D12 纹理资源。
**参数:**
- `desc` - 纹理描述符,包含维度、格式、分辨率等
**返回:** 新创建的纹理指针,失败返回 `nullptr`
**复杂度:** O(1)
**示例:**
```cpp
TextureDesc texDesc;
texDesc.textureType = (uint32_t)D3D12_RESOURCE_DIMENSION_TEXTURE2D;
texDesc.width = 1920;
texDesc.height = 1080;
texDesc.depth = 1;
texDesc.mipLevels = 1;
texDesc.format = (uint32_t)DXGI_FORMAT_R8G8B8A8_UNORM;
texDesc.sampleCount = 1;
texDesc.sampleQuality = 0;
RHITexture* texture = device->CreateTexture(texDesc);
```
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::CreateTexture](../../device/create-texture.md) - 基类方法
- [D3D12Texture](../../texture/texture.md) - D3D12 纹理实现

View File

@@ -2,34 +2,55 @@
**命名空间**: `XCEngine::RHI`
**描述**: DirectX 12 设备实现,继承自 `RHIDevice`
**继承自**: `RHIDevice`
**描述**: DirectX 12 设备实现,用于管理 D3D12 图形适配器、创建资源和管理命令队列。
## 公共方法
| 方法 | 描述 |
|------|------|
| [`Initialize`](../../../threading/task-system/initialize.md) | 初始化设备 |
| [`Shutdown`](../../../threading/task-system/shutdown.md) | 关闭设备 |
| [`CreateBuffer`](../../device/create-buffer.md) | 创建缓冲区 |
| [`CreateTexture`](../../device/create-texture.md) | 创建纹理 |
| [`CreateSwapChain`](../../device/create-swap-chain.md) | 创建交换链 |
| [`CreateCommandList`](../../device/create-command-list.md) | 创建命令列表 |
| [`CreateCommandQueue`](../../device/create-command-queue.md) | 创建命令队列 |
| [`CompileShader`](../../device/compile-shader.md) | 编译着色器 |
| [`CreatePipelineState`](../../device/create-pipeline-state.md) | 创建管线状态 |
| [`CreateFence`](../../device/create-fence.md) | 创建栅栏 |
| [`CreateSampler`](../../device/create-sampler.md) | 创建采样器 |
| [`GetCapabilities`](../../device/get-capabilities.md) | 获取设备能力 |
| [`GetDeviceInfo`](../../device/get-device-info.md) | 获取设备信息 |
| [`GetNativeDevice`](../../device/get-native-device.md) | 获取原生设备 |
| [`Initialize`](initialize.md) | 初始化 D3D12 设备 |
| [`Shutdown`](shutdown.md) | 关闭设备 |
| [`CreateBuffer`](create-buffer.md) | 创建缓冲区 |
| [`CreateTexture`](create-texture.md) | 创建纹理 |
| [`CreateSwapChain`](create-swap-chain.md) | 创建交换链 |
| [`CreateCommandList`](create-command-list.md) | 创建命令列表 |
| [`CreateCommandQueue`](create-command-queue.md) | 创建命令队列 |
| [`CompileShader`](compile-shader.md) | 编译着色器 |
| [`CreatePipelineState`](create-pipeline-state.md) | 创建管线状态 |
| [`CreateFence`](create-fence.md) | 创建栅栏 |
| [`CreateSampler`](create-sampler.md) | 创建采样器 |
| [`GetCapabilities`](get-capabilities.md) | 获取设备能力 |
| [`GetDeviceInfo`](get-device-info.md) | 获取设备信息 |
| [`GetNativeDevice`](get-native-device.md) | 获取原生设备 |
| [`GetNativeHandle`](get-native-handle.md) | 获取原生句柄 |
| [`GetDevice`](get-device.md) | 获取 D3D12 设备 |
| [`GetFactory`](get-factory.md) | 获取 D3D12 工厂 |
| [`GetAdapterInfo`](get-adapter-info.md) | 获取适配器信息 |
| [`EnumerateAdapters`](enumerate-adapters.md) | 枚举适配器 |
| [`GetDescriptorHandleIncrementSize`](get-descriptor-handle-increment-size.md) | 获取描述符增量大小 |
| [`CheckFeatureSupport`](check-feature-support.md) | 检查特性支持 |
| [`SetDeviceRemoved`](set-device-removed.md) | 设置设备已移除 |
| [`IsDeviceRemoved`](is-device-removed.md) | 查询设备是否已移除 |
## 使用示例
```cpp
RHIDeviceDesc desc;
desc.adapterIndex = 0;
desc.enableDebugLayer = true;
D3D12Device* device = new D3D12Device();
if (device->Initialize(desc)) {
ID3D12Device* nativeDevice = device->GetDevice();
// 使用设备...
device->Shutdown();
}
delete device;
```
## 相关文档
- [D3D12 后端总览](../../opengl/overview.md)
- [D3D12 后端总览](../d3d12.md)
- [RHIDevice](../../device/device.md) - 抽象设备接口

View File

@@ -0,0 +1,15 @@
# D3D12Device::GetCapabilities
```cpp
const RHICapabilities& GetCapabilities() const override;
```
获取 D3D12 设备能力。
**返回:** 设备能力引用
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::GetCapabilities](../../device/get-capabilities.md) - 基类方法
- [RHICapabilities](../../capabilities/capabilities.md) - 能力结构体

View File

@@ -0,0 +1,14 @@
# D3D12Device::GetDeviceInfo
```cpp
const RHIDeviceInfo& GetDeviceInfo() const override;
```
获取 D3D12 设备信息。
**返回:** 设备信息引用
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::GetDeviceInfo](../../device/get-device-info.md) - 基类方法

View File

@@ -0,0 +1,21 @@
# D3D12Device::GetNativeDevice
```cpp
void* GetNativeDevice() override;
```
获取原生 D3D12 设备指针。
**返回:** `ID3D12Device*` 指针
**示例:**
```cpp
ID3D12Device* nativeDevice = static_cast<ID3D12Device*>(device->GetNativeDevice());
```
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::GetNativeDevice](../../device/get-native-device.md) - 基类方法
- [GetNativeHandle](get-native-handle.md) - 获取原生句柄

View File

@@ -0,0 +1,16 @@
# D3D12Device::GetNativeHandle
```cpp
void* GetNativeHandle() const;
```
获取原生 D3D12 设备句柄。
**返回:** `ID3D12Device*` 指针
**注意:** 此方法返回与 `GetNativeDevice()` 相同的指针
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [GetNativeDevice](get-native-device.md) - 获取原生设备

View File

@@ -0,0 +1,35 @@
# D3D12Device::Initialize
```cpp
bool Initialize(const RHIDeviceDesc& desc) override;
```
初始化 D3D12 设备,建立与图形适配器的连接。
**参数:**
- `desc` - 设备描述符,包含适配器索引、调试选项等配置
**返回:** 成功返回 `true`,失败返回 `false`
**复杂度:** O(1)
**示例:**
```cpp
RHIDeviceDesc desc;
desc.adapterIndex = 0;
desc.enableDebugLayer = true;
D3D12Device* device = new D3D12Device();
if (device->Initialize(desc)) {
ID3D12Device* nativeDevice = device->GetDevice();
} else {
delete device;
}
```
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::Initialize](../../device/initialize.md) - 基类方法
- [RHIDeviceDesc](../../types/types.md) - 设备描述结构体

View File

@@ -0,0 +1,14 @@
# D3D12Device::IsDeviceRemoved
```cpp
bool IsDeviceRemoved() const;
```
查询设备是否已移除。
**返回:** 设备已移除返回 `true`,否则返回 `false`
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [SetDeviceRemoved](set-device-removed.md) - 设置设备已移除标记

View File

@@ -1,165 +0,0 @@
# D3D12Device 方法
## 继承方法
### Initialize
```cpp
bool Initialize(const RHIDeviceDesc& desc) override;
```
初始化 D3D12 设备。
### Shutdown
```cpp
void Shutdown() override;
```
关闭设备。
### CreateBuffer
```cpp
RHIBuffer* CreateBuffer(const BufferDesc& desc) override;
```
创建 D3D12 缓冲区。
### CreateTexture
```cpp
RHITexture* CreateTexture(const TextureDesc& desc) override;
```
创建 D3D12 纹理。
### CreateSwapChain
```cpp
RHISwapChain* CreateSwapChain(const SwapChainDesc& desc) override;
```
创建 D3D12 交换链。
### CreateCommandList
```cpp
RHICommandList* CreateCommandList(const CommandListDesc& desc) override;
```
创建 D3D12 命令列表。
### CreateCommandQueue
```cpp
RHICommandQueue* CreateCommandQueue(const CommandQueueDesc& desc) override;
```
创建 D3D12 命令队列。
### CompileShader
```cpp
RHIShader* CompileShader(const ShaderCompileDesc& desc) override;
```
编译 D3D12 着色器。
### CreatePipelineState
```cpp
RHIPipelineState* CreatePipelineState(const PipelineStateDesc& desc) override;
```
创建 D3D12 管线状态对象。
### CreateFence
```cpp
RHIFence* CreateFence(const FenceDesc& desc) override;
```
创建 D3D12 栅栏。
### CreateSampler
```cpp
RHISampler* CreateSampler(const SamplerDesc& desc) override;
```
创建 D3D12 采样器。
### GetCapabilities
```cpp
const RHICapabilities& GetCapabilities() const override;
```
获取设备能力。
### GetDeviceInfo
```cpp
const RHIDeviceInfo& GetDeviceInfo() const override;
```
获取设备信息。
### GetNativeDevice
```cpp
void* GetNativeDevice() override;
```
获取原生 D3D12 设备指针。
## D3D12 特有方法
### GetDevice
```cpp
ID3D12Device* GetDevice() const;
```
获取 `ID3D12Device` 接口。
### GetFactory
```cpp
IDXGIFactory4* GetFactory() const;
```
获取 `IDXGIFactory4` 接口。
### GetAdapterInfo
```cpp
const AdapterInfo& GetAdapterInfo() const;
```
获取适配器信息。
### EnumerateAdapters
```cpp
std::vector<AdapterInfo> EnumerateAdapters();
```
枚举所有适配器。
### GetDescriptorHandleIncrementSize
```cpp
UINT GetDescriptorHandleIncrementSize(DescriptorHeapType type) const;
```
获取描述符句柄增量大小。
### CheckFeatureSupport
```cpp
bool CheckFeatureSupport(D3D12_FEATURE feature, void* featureSupportData, uint32_t featureSupportDataSize);
```
检查功能支持。

View File

@@ -0,0 +1,12 @@
# D3D12Device::SetDeviceRemoved
```cpp
void SetDeviceRemoved();
```
标记设备已移除。
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [IsDeviceRemoved](is-device-removed.md) - 查询设备是否已移除

View File

@@ -0,0 +1,21 @@
# D3D12Device::Shutdown
```cpp
void Shutdown() override;
```
关闭 D3D12 设备,释放所有相关资源。
**复杂度:** O(n) - 取决于管理的资源数量
**示例:**
```cpp
device->Shutdown();
delete device;
```
## 相关文档
- [D3D12Device 总览](device.md) - 返回类总览
- [RHIDevice::Shutdown](../../device/shutdown.md) - 基类方法