Files
XCEngine/docs/api/rhi/device/device.md
ssdfasd d83ed56177 fix(rhi): Fix RHI abstraction layer API docs per api-skill.md template
- Rename texture/dtor.md to destructor.md per template spec
- Remove duplicate non-hyphenated fence docs (getnativehandle.md, issignaled.md, getcompletedvalue.md)
- Fix template field issues:
  - swap-chain, command-queue: 类型 now uses 'class (abstract)'
  - sampler: 头文件 now uses full path 'XCEngine/RHI/RHISampler.h'
  - types: 类型 fixed from 'structs' to 'struct'
  - enums: 类型 fixed from 'enums' to 'enum class'
- Fix include paths in command-queue and pipeline-layout code examples
- Create missing constructor/destructor docs for 11 classes:
  buffer, texture, shader, device, command-list, command-queue,
  fence, sampler, swap-chain, pipeline-state, pipeline-layout
- Update class overview pages to include constructor/destructor entries
2026-03-22 03:07:41 +08:00

2.4 KiB
Raw Blame History

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 创建命令队列
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.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;

相关文档