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

@@ -7,13 +7,21 @@ static D3D12_DEPTH_STENCIL_VIEW_DESC CreateDesc(Format format, D3D12_DSV_DIMENSI
创建深度模板视图描述(静态方法)。
**参数:**
- `format` - 格式
- `dimension` - 视图维度
- `format` - 深度模板格式(如 `Format::D32_FLOAT`
- `dimension` - 视图维度,默认为 `D3D12_DSV_DIMENSION_TEXTURE2D`
**返回:** D3D12 深度模板视图描述
**复杂度:** O(1)
## 示例
```cpp
auto desc = D3D12DepthStencilView::CreateDesc(Format::D32_FLOAT, D3D12_DSV_DIMENSION_TEXTURE2D);
dsv.Initialize(device, depthBuffer, &desc);
```
## 相关文档
- [D3D12DepthStencilView 总览](depth-stencil-view.md) - 返回类总览
- [D3D12DepthStencilView 总览](depth-stencil-view.md) - 类总览
- [Initialize](initialize.md) - 初始化方法

View File

@@ -2,18 +2,43 @@
**命名空间**: `XCEngine::RHI`
**描述**: DirectX 12 深度模板视图的 D3D12 实现。
**类型**: `class`
**描述**: DirectX 12 深度模板视图的 D3D12 实现,用于渲染管线中的深度/模板测试。
## 概述
`D3D12DepthStencilView` 是 RHI 深度模板视图接口的 D3D12 特定实现。该类封装了 D3D12 深度模板视图DSV的创建和管理提供两种初始化方式自动分配描述符句柄或使用预分配的描述符句柄。深度模板视图是渲染管线中用于深度测试和模板测试的关键资源。
## 公共方法
| 方法 | 描述 |
|------|------|
| [`Initialize`](../../../threading/task-system/initialize.md) | 初始化深度模板视图 |
| [`InitializeAt`](initialize-at.md) | 在指定位置初始化 |
| [`Shutdown`](../../../threading/task-system/shutdown.md) | 关闭深度模板视图 |
| [`D3D12DepthStencilView()`](initialize.md) | 构造函数 |
| [`~D3D12DepthStencilView()`](initialize.md) | 析构函数 |
| [`Initialize`](initialize.md) | 初始化深度模板视图 |
| [`InitializeAt`](initialize-at.md) | 在指定位置初始化深度模板视图 |
| [`Shutdown`](shutdown.md) | 关闭深度模板视图 |
| [`GetCPUDescriptorHandle`](get-cpu-descriptor-handle.md) | 获取 CPU 描述符句柄 |
| [`CreateDesc`](create-desc.md) | 创建描述符(静态) |
| [`CreateDesc`](create-desc.md) | 创建描述符(静态方法 |
## 使用示例
```cpp
ID3D12Device* device; // 已初始化的 D3D12 设备
ID3D12Resource* depthBuffer; // 深度缓冲资源
D3D12DepthStencilView dsv;
dsv.Initialize(device, depthBuffer, nullptr);
D3D12_CPU_DESCRIPTOR_HANDLE handle = dsv.GetCPUDescriptorHandle();
// 使用 handle 进行渲染操作
dsv.Shutdown();
```
## 相关文档
- [D3D12 后端](../../opengl/overview.md)
- [D3D12 后端](../d3d12.md) - D3D12 后端模块总览
- [D3D12DescriptorHeap](../descriptor-heap/descriptor-heap.md) - 描述符堆管理
- [D3D12RenderTargetView](../render-target-view/render-target-view.md) - 渲染目标视图

View File

@@ -1,15 +1,29 @@
# D3D12DepthStencilView::GetCPUDescriptorHandle
```cpp
D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() const { return m_handle; }
D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() const;
```
获取 CPU 描述符句柄。
获取深度模板视图的 CPU 描述符句柄,用于绑定到渲染管线
**返回:** CPU 描述符句柄
**复杂度:** O(1)
## 说明
返回的描述符句柄用于将深度模板视图绑定到渲染管线的 OM输出合并阶段。此方法是 const 的,因为描述符句柄本身不修改对象状态。
## 示例
```cpp
D3D12DepthStencilView dsv;
dsv.Initialize(device, depthBuffer, nullptr);
D3D12_CPU_DESCRIPTOR_HANDLE handle = dsv.GetCPUDescriptorHandle();
// 使用 handle 绑定到 OM 阶段
```
## 相关文档
- [D3D12DepthStencilView 总览](depth-stencil-view.md) - 返回类总览

View File

@@ -4,16 +4,30 @@
void InitializeAt(ID3D12Device* device, ID3D12Resource* resource, D3D12_CPU_DESCRIPTOR_HANDLE handle, const D3D12_DEPTH_STENCIL_VIEW_DESC* desc = nullptr);
```
在指定位置初始化深度模板视图。
在指定位置初始化深度模板视图,允许使用预分配的描述符句柄
**参数:**
- `device` - D3D12 设备
- `resource` - D3D12 资源
- `handle` - CPU 描述符句柄
- `desc` - 深度模板视图描述
- `device` - D3D12 设备指针
- `resource` - D3D12 资源指针(深度缓冲纹理)
- `handle` - 预分配的 CPU 描述符句柄位置
- `desc` - 深度模板视图描述符,可选,默认为 nullptr
**返回:**
**复杂度:** O(1)
## 说明
此方法与 `Initialize` 的区别在于使用预分配的描述符句柄位置,适用于描述符堆管理场景。当需要将深度模板视图绑定到特定的描述符位置时使用此方法。
## 示例
```cpp
D3D12DepthStencilView dsv;
D3D12_CPU_DESCRIPTOR_HANDLE handle = GetPreallocatedHandle(); // 预分配的句柄
dsv.InitializeAt(device, depthBuffer, handle, nullptr);
```
## 相关文档
- [D3D12DepthStencilView 总览](depth-stencil-view.md) - 返回类总览

View File

@@ -0,0 +1,36 @@
# D3D12DepthStencilView::Initialize
```cpp
void Initialize(ID3D12Device* device, ID3D12Resource* resource, const D3D12_DEPTH_STENCIL_VIEW_DESC* desc = nullptr);
```
初始化深度模板视图,使用设备自动分配描述符句柄。
**参数:**
- `device` - D3D12 设备指针
- `resource` - D3D12 资源指针(深度缓冲纹理)
- `desc` - 深度模板视图描述符,可选,默认为 nullptr
**返回:**
**复杂度:** O(1)
## 说明
此方法使用 `ID3D12Device::CreateDepthStencilView` 创建深度模板视图,描述符句柄由设备自动分配。适用于创建独立的深度模板视图。
## 示例
```cpp
D3D12DepthStencilView dsv;
dsv.Initialize(device, depthBuffer, nullptr);
// 获取描述符句柄用于渲染
D3D12_CPU_DESCRIPTOR_HANDLE handle = dsv.GetCPUDescriptorHandle();
```
## 相关文档
- [D3D12DepthStencilView 总览](depth-stencil-view.md) - 类总览
- [InitializeAt](initialize-at.md) - 在指定位置初始化
- [D3D12Device](../../device/device.md) - D3D12 设备

View File

@@ -0,0 +1,31 @@
# D3D12DepthStencilView::Shutdown
```cpp
void Shutdown();
```
关闭深度模板视图,释放关联的资源引用。
**返回:**
**复杂度:** O(1)
## 说明
此方法重置内部描述符句柄和资源指针,但不会释放描述符堆本身。调用后,视图对象处于未初始化状态,可以重新调用 `Initialize``InitializeAt` 进行初始化。
## 示例
```cpp
D3D12DepthStencilView dsv;
dsv.Initialize(device, depthBuffer, nullptr);
// 使用视图...
dsv.Shutdown();
```
## 相关文档
- [D3D12DepthStencilView 总览](depth-stencil-view.md) - 类总览
- [Initialize](initialize.md) - 初始化视图
- [InitializeAt](initialize-at.md) - 在指定位置初始化