Files
XCEngine/docs/api/XCEngine/Editor/Platform/D3D12WindowRenderer/D3D12WindowRenderer.md

1.8 KiB
Raw Blame History

D3D12WindowRenderer

命名空间: XCEngine::Editor::Platform

类型: class

源文件: editor/src/Platform/D3D12WindowRenderer.h

描述: 编辑器专用的 D3D12 窗口渲染器负责交换链、RTV/SRV 堆、命令列表和 ImGui 绘制提交。

概述

D3D12WindowRenderer 解决的是“编辑器 UI 窗口本身怎么被呈现到屏幕”这个问题。

它当前自己管理:

  • RHIDevice
  • RHICommandQueue
  • RHICommandList
  • RHISwapChain
  • shader-visible SRV descriptor heap
  • back buffer render target views

公开 API

生命周期

帧切换

渲染与上下文

设备与交换链访问

当前实现说明

  • Initialize(hwnd, width, height) 会创建设备与渲染目标。
  • Render(imguiBackend, clearColor) 会完成 back buffer 状态切换、清屏、ImGui draw data 提交和 present。
  • Resize() 会重建 back buffer RTV。
  • GetDevice() / GetSrvHeap() 为 ImGui backend 提供初始化依赖。
  • beforeUiRender 回调允许上层先用同一份 RenderContext 完成 viewport 等非 ImGui 渲染。

当前实现边界

  • 当前是编辑器宿主级窗口渲染器,但底层资源仍然通过引擎 RHI 抽象对象创建与访问。
  • 当前资源释放与错误处理都比较直接,没有更高层的窗口 renderer 状态对象。
  • 当前实现固定面向 D3D12不是可替换的多后端窗口壳层。

相关文档