- 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 文档
2.4 KiB
2.4 KiB
RHIDevice
命名空间: XCEngine::RHI
类型: class (abstract)
头文件: XCEngine/RHI/RHIDevice.h
描述: RHI 渲染设备抽象接口,代表一个图形设备实例。
概述
RHIDevice 是 RHI 模块的核心接口之一,负责创建和管理所有 GPU 资源。每个 RHI 后端(D3D12、OpenGL 等)都需要实现此接口。
公共方法
| 方法 | 描述 |
|---|---|
RHIDevice |
默认构造函数 |
~RHIDevice |
虚析构函数 |
Initialize |
初始化设备 |
Shutdown |
关闭设备 |
CreateBuffer |
创建缓冲区 |
CreateTexture |
创建纹理 |
CreateSwapChain |
创建交换链 |
CreateCommandList |
创建命令列表 |
CreateCommandQueue |
创建命令队列 |
CreateShader |
创建着色器 |
CreatePipelineState |
创建管线状态 |
CreateFence |
创建栅栏 |
CreateSampler |
创建采样器 |
GetCapabilities |
获取设备能力 |
GetDeviceInfo |
获取设备信息 |
GetNativeDevice |
获取原生设备 |
使用示例
// 创建 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 模块总览
- RHIFactory - 设备工厂
- RHICapabilities - 设备能力
- RHITypes - 设备描述结构体