47 lines
1.3 KiB
Markdown
47 lines
1.3 KiB
Markdown
# RHIFactory
|
||
|
||
**命名空间**: `XCEngine::RHI`
|
||
|
||
**类型**: `class`
|
||
|
||
**描述**: RHI 设备工厂,用于创建不同图形 API 后端的渲染设备。
|
||
|
||
## 概述
|
||
|
||
`RHIFactory` 是静态工厂类,提供统一的接口来创建不同后端的 `RHIDevice` 实例。通过 `RHIType` 枚举指定要创建的后端类型。
|
||
|
||
## 公共方法
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| `static RHIDevice* CreateRHIDevice(RHIType type)` | 根据类型创建 RHI 设备 |
|
||
| `static RHIDevice* CreateRHIDevice(const std::string& typeName)` | 根据类型名称字符串创建设备 |
|
||
|
||
## 类型映射
|
||
|
||
| RHIType | typeName 参数值 |
|
||
|----------|-----------------|
|
||
| `RHIType::D3D12` | `"D3D12"` |
|
||
| `RHIType::OpenGL` | `"OpenGL"` |
|
||
| `RHIType::Vulkan` | `"Vulkan"` |
|
||
| `RHIType::Metal` | `"Metal"` |
|
||
|
||
## 使用示例
|
||
|
||
```cpp
|
||
// 方法1:使用枚举创建
|
||
RHIDevice* d3d12Device = RHIFactory::CreateRHIDevice(RHIType::D3D12);
|
||
|
||
// 方法2:使用字符串创建
|
||
RHIDevice* glDevice = RHIFactory::CreateRHIDevice("OpenGL");
|
||
|
||
// 方法3:根据配置选择
|
||
std::string backend = "D3D12"; // 可以从配置文件读取
|
||
RHIDevice* device = RHIFactory::CreateRHIDevice(backend);
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [RHIDevice](./rhi-device.md) - 渲染设备
|
||
- [RHIEnums](./rhi-enums.md) - RHIType 枚举定义
|