Files
XCEngine/docs/api/rhi/device/device.md
ssdfasd 8df04c120f docs: 更新 API 文档 - 多模块修复和完善
- audio: 更新 audio-system 方法文档
- components: 新增 audio-listener/audio-source 组件方法文档,新增 remove-component 方法
- core: 更新 filewriter, types 文档
- math: 更新 box 方法文档
- memory: 更新 proxy-allocator 文档
- resources: 更新 loader 和 texture 文档
- rhi: 更新 opengl 设备、shader、swap-chain 文档
- threading: 更新 mutex 和 task-system 文档
2026-03-26 01:58:45 +08:00

78 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RHIDevice
**命名空间**: `XCEngine::RHI`
**类型**: `class` (abstract)
**头文件**: `XCEngine/RHI/RHIDevice.h`
**描述**: RHI 渲染设备抽象接口,代表一个图形设备实例。
## 概述
`RHIDevice` 是 RHI 模块的核心接口之一,负责创建和管理所有 GPU 资源。每个 RHI 后端D3D12、OpenGL 等)都需要实现此接口。
## 公共方法
| 方法 | 描述 |
|------|------|
| [`RHIDevice`](constructor.md) | 默认构造函数 |
| [`~RHIDevice`](destructor.md) | 虚析构函数 |
| [`Initialize`](initialize.md) | 初始化设备 |
| [`Shutdown`](shutdown.md) | 关闭设备 |
| [`CreateBuffer`](create-buffer.md) | 创建缓冲区 |
| [`CreateTexture`](create-texture.md) | 创建纹理 |
| [`CreateSwapChain`](create-swap-chain.md) | 创建交换链 |
| [`CreateCommandList`](create-command-list.md) | 创建命令列表 |
| [`CreateCommandQueue`](create-command-queue.md) | 创建命令队列 |
| [`CreateShader`](create-shader.md) | 创建着色器 |
| [`CreatePipelineState`](create-pipeline-state.md) | 创建管线状态 |
| [`CreateFence`](create-fence.md) | 创建栅栏 |
| [`CreateSampler`](create-sampler.md) | 创建采样器 |
| [`GetCapabilities`](get-capabilities.md) | 获取设备能力 |
| [`GetDeviceInfo`](get-device-info.md) | 获取设备信息 |
| [`GetNativeDevice`](get-native-device.md) | 获取原生设备 |
## 使用示例
```cpp
// 创建 D3D12 设备
RHI::RHIDevice* device = RHI::RHIFactory::CreateRHIDevice(RHI::RHIType::D3D12);
// 配置设备描述
RHI::RHIDeviceDesc desc;
desc.windowHandle = hwnd;
desc.width = 1280;
desc.height = 720;
desc.appName = L"MyApp";
desc.enableDebugLayer = true;
// 初始化设备
if (device->Initialize(desc)) {
const RHI::RHICapabilities& caps = device->GetCapabilities();
if (caps.bSupportsRayTracing) {
// 设备支持光线追踪
}
const RHI::RHIDeviceInfo& info = device->GetDeviceInfo();
printf("GPU: %ls\n", info.renderer.c_str());
// 创建资源
RHI::BufferDesc bufferDesc;
bufferDesc.size = 1024;
bufferDesc.bufferType = (uint32_t)RHI::BufferType::Vertex;
RHI::RHIBuffer* buffer = device->CreateBuffer(bufferDesc);
device->Shutdown();
}
delete device;
```
## 相关文档
- [../../rhi.md](../rhi.md) - RHI 模块总览
- [RHIFactory](../factory/factory.md) - 设备工厂
- [RHICapabilities](../capabilities/capabilities.md) - 设备能力
- [RHITypes](../types/types.md) - 设备描述结构体