Files
XCEngine/docs/api/rhi/descriptor-pool/descriptor-pool.md
2026-03-20 02:35:45 +08:00

53 lines
1.5 KiB
Markdown

# RHIDescriptorPool
**命名空间**: `XCEngine::RHI`
**类型**: `class` (abstract)
**头文件**: `XCEngine/RHI/RHIDescriptorPool.h`
**描述**: GPU 描述符堆池抽象接口,用于管理 GPU 描述符的分配和回收。
## 概述
`RHIDescriptorPool` 是 RHI 模块中的抽象类,提供 GPU 描述符堆的统一接口。描述符堆用于存储 GPU 资源视图(如常量缓冲区视图、着色器资源视图、采样器等)。该类管理描述符的分配和回收,支持着色器可见性配置。
## 公共方法
| 方法 | 描述 |
|------|------|
| [`~RHIDescriptorPool`](destructor.md) | 虚析构函数 |
| [`Initialize`](initialize.md) | 初始化描述符池 |
| [`Shutdown`](shutdown.md) | 关闭并释放资源 |
| [`GetNativeHandle`](get-native-handle.md) | 获取原生句柄 |
| [`GetDescriptorCount`](get-descriptor-count.md) | 获取描述符数量 |
| [`GetType`](get-type.md) | 获取描述符类型 |
## 使用示例
```cpp
// 创建描述符池
DescriptorPoolDesc desc;
desc.device = device;
desc.type = DescriptorHeapType::CBV_SRV_UAV;
desc.descriptorCount = 256;
desc.shaderVisible = true;
RHIDescriptorPool* pool = yourFactory->CreateDescriptorPool();
if (pool->Initialize(desc)) {
// 获取描述符数量
uint32_t count = pool->GetDescriptorCount();
// 获取原生句柄
void* handle = pool->GetNativeHandle();
// 使用完后关闭
pool->Shutdown();
}
delete pool;
```
## 相关文档
- [RHI 模块总览](../rhi.md) - RHI 模块总览