Files
XCEngine/docs/api/rhi/d3d12/shader-resource-view/shader-resource-view.md

53 lines
1.5 KiB
Markdown
Raw Normal View History

# D3D12ShaderResourceView
**命名空间**: `XCEngine::RHI`
**类型**: `class`
**头文件**: `XCEngine/RHI/D3D12/D3D12ShaderResourceView.h`
2026-03-20 02:35:45 +08:00
**描述**: DirectX 12 着色器资源视图Shader Resource View, SRV的 D3D12 实现。SRV 允许着色器访问纹理、缓冲区等资源。
## 概述
`D3D12ShaderResourceView` 封装了 D3D12 的 `CreateShaderResourceView` 操作,提供两种初始化方式:
- `Initialize`: 自动分配描述符句柄
- `InitializeAt`: 在预分配的描述符位置创建视图
## 公共方法
| 方法 | 描述 |
|------|------|
2026-03-20 02:35:45 +08:00
| [`D3D12ShaderResourceView()`](constructor.md) | 构造函数 |
| [`~D3D12ShaderResourceView()`](destructor.md) | 析构函数 |
| [`Initialize`](initialize.md) | 初始化着色器资源视图 |
| [`InitializeAt`](initialize-at.md) | 在指定位置初始化 |
2026-03-20 02:35:45 +08:00
| [`Shutdown`](shutdown.md) | 关闭着色器资源视图 |
| [`GetCPUDescriptorHandle`](get-cpu-descriptor-handle.md) | 获取 CPU 描述符句柄 |
| [`CreateDesc`](create-desc.md) | 创建描述符(静态) |
2026-03-20 02:35:45 +08:00
## 使用示例
```cpp
// 创建设备和资源
ID3D12Device* device;
ID3D12Resource* texture;
// ... 初始化设备资源 ...
// 创建 SRV
D3D12ShaderResourceView* srv = new D3D12ShaderResourceView();
srv->Initialize(device, texture, nullptr);
// 获取描述符句柄用于绑定
D3D12_CPU_DESCRIPTOR_HANDLE handle = srv->GetCPUDescriptorHandle();
// 清理
srv->Shutdown();
delete srv;
```
## 相关文档
2026-03-20 02:35:45 +08:00
- [D3D12 后端概览](../d3d12.md)
- [OpenGL 后端](../../opengl/opengl.md)