- Fix link resolution with proper relative/absolute path handling - Improve link styling with underline decoration - Hide leaf nodes from tree, only show directories - Fix log file path for packaged app
2.3 KiB
2.3 KiB
RHIDevice
命名空间: XCEngine::RHI
类型: class (abstract)
描述: RHI 渲染设备抽象接口,代表一个图形设备实例。
概述
RHIDevice 是 RHI 模块的核心接口之一,负责创建和管理所有 GPU 资源。每个 RHI 后端(D3D12、OpenGL 等)都需要实现此接口。
公共方法
| 方法 | 描述 |
|---|---|
Initialize |
初始化设备 |
Shutdown |
关闭设备 |
CreateBuffer |
创建缓冲区 |
CreateTexture |
创建纹理 |
CreateSwapChain |
创建交换链 |
CreateCommandList |
创建命令列表 |
CreateCommandQueue |
创建命令队列 |
CompileShader |
编译着色器 |
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.description.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 - 设备描述结构体