Files
XCEngine/docs/api/rhi/swap-chain/swap-chain.md
2026-03-20 02:35:45 +08:00

1.9 KiB
Raw Blame History

RHISwapChain

命名空间: XCEngine::RHI

类型: class (抽象基类)

头文件: XCEngine/RHI/RHISwapChain.h

描述: GPU 交换链抽象接口,管理窗口渲染和帧缓冲区切换。

概述

RHISwapChain 是 RHI 模块中的核心接口之一,负责管理渲染目标帧缓冲区的切换和呈现。该抽象类为不同图形 APID3D12、Vulkan 等)提供统一接口,使上层渲染代码无需关心底层实现细节。

主要职责:

  • 管理前后台缓冲区切换
  • 处理窗口全屏/窗口化模式切换
  • 协调垂直同步呈现
  • 提供原生 API 句柄供高级用法

公共方法

方法 描述
Shutdown 关闭并释放资源
GetCurrentBackBufferIndex 获取当前后台缓冲区索引
GetCurrentBackBuffer 获取当前后台缓冲区
Present 呈现画面
Resize 调整交换链大小
SetFullscreen 设置全屏模式
IsFullscreen 检查是否全屏
ShouldClose 检查是否应关闭
SetShouldClose 设置关闭标志
PollEvents 处理窗口事件
GetNativeHandle 获取原生句柄

使用示例

while (!swapChain->ShouldClose()) {
    swapChain->PollEvents();
    RHITexture* backBuffer = swapChain->GetCurrentBackBuffer();
    commandList->Reset();
    commandList->SetRenderTargets(1, &backBuffer, nullptr);
    commandList->ClearRenderTarget(backBuffer, clearColor);
    commandList->Close();
    commandQueue->ExecuteCommandLists(1, (void**)&commandList);
    swapChain->Present(1, 0);
}

相关文档