docs: update RHI API docs
This commit is contained in:
@@ -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) - 初始化方法
|
||||
|
||||
@@ -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) - 渲染目标视图
|
||||
@@ -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) - 返回类总览
|
||||
|
||||
@@ -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) - 返回类总览
|
||||
|
||||
36
docs/api/rhi/d3d12/depth-stencil-view/initialize.md
Normal file
36
docs/api/rhi/d3d12/depth-stencil-view/initialize.md
Normal 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 设备
|
||||
31
docs/api/rhi/d3d12/depth-stencil-view/shutdown.md
Normal file
31
docs/api/rhi/d3d12/depth-stencil-view/shutdown.md
Normal 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) - 在指定位置初始化
|
||||
Reference in New Issue
Block a user