54 lines
1.4 KiB
Markdown
54 lines
1.4 KiB
Markdown
# D3D12ShaderResourceView
|
|
|
|
DirectX 12 着色器资源视图的 D3D12 实现。
|
|
|
|
## 头文件
|
|
|
|
```cpp
|
|
#include <XCEngine/RHI/D3D12/D3D12ShaderResourceView.h>
|
|
```
|
|
|
|
## 公共成员函数
|
|
|
|
### 构造函数与析构函数
|
|
|
|
#### `D3D12ShaderResourceView()`
|
|
默认构造函数。
|
|
|
|
#### `~D3D12ShaderResourceView()`
|
|
析构函数,确保调用 `Shutdown()`。
|
|
|
|
### 初始化
|
|
|
|
#### `void Initialize(ID3D12Device* device, ID3D12Resource* resource, const D3D12_SHADER_RESOURCE_VIEW_DESC* desc = nullptr)`
|
|
创建 SRV。
|
|
|
|
#### `void InitializeAt(ID3D12Device* device, ID3D12Resource* resource, D3D12_CPU_DESCRIPTOR_HANDLE handle, const D3D12_SHADER_RESOURCE_VIEW_DESC* desc = nullptr)`
|
|
在指定位置创建 SRV。
|
|
|
|
#### `void Shutdown()`
|
|
释放 SRV。
|
|
|
|
### 属性
|
|
|
|
#### `D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() const`
|
|
获取 CPU 描述符句柄。
|
|
|
|
### 静态辅助函数
|
|
|
|
#### `static D3D12_SHADER_RESOURCE_VIEW_DESC CreateDesc(Format format, D3D12_SRV_DIMENSION dimension = D3D12_SRV_DIMENSION_TEXTURE2D, uint32_t mipLevels = 1)`
|
|
创建 SRV 描述。
|
|
|
|
## 内部成员
|
|
|
|
| 成员 | 类型 | 描述 |
|
|
|------|------|------|
|
|
| `m_handle` | `D3D12_CPU_DESCRIPTOR_HANDLE` | CPU 描述符句柄 |
|
|
| `m_resource` | `ID3D12Resource*` | 关联的资源 |
|
|
|
|
## 备注
|
|
|
|
- SRV 用于在 shader 中读取资源
|
|
- SRV 必须在 CBV_SRV_UAV 类型描述符堆中分配
|
|
- 如果需要在 shader 中访问,必须创建 shader visible 的描述符堆
|