1.8 KiB
1.8 KiB
D3D12WindowRenderer
命名空间: XCEngine::Editor::Platform
类型: class
源文件: editor/src/Platform/D3D12WindowRenderer.h
描述: 编辑器专用的 D3D12 窗口渲染器,负责交换链、RTV/SRV 堆、命令列表和 ImGui 绘制提交。
概述
D3D12WindowRenderer 解决的是“编辑器 UI 窗口本身怎么被呈现到屏幕”这个问题。
它当前自己管理:
RHIDeviceRHICommandQueueRHICommandListRHISwapChain- 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,不是可替换的多后端窗口壳层。