1.4 KiB
1.4 KiB
D3D12WindowRenderer
命名空间: XCEngine::Editor::Platform
类型: class
源文件: editor/src/Platform/D3D12WindowRenderer.h
描述: 编辑器专用的 D3D12 窗口渲染器,负责交换链、RTV/SRV 堆、命令列表和 ImGui 绘制提交。
概述
D3D12WindowRenderer 解决的是“编辑器 UI 窗口本身怎么被呈现到屏幕”这个问题。
它当前自己管理:
ID3D12DeviceID3D12CommandQueueID3D12CommandAllocatorID3D12GraphicsCommandListIDXGISwapChain3- RTV / SRV descriptor heap
- back buffer render targets
- fence
当前实现说明
Initialize(hwnd, width, height)会创建设备与渲染目标。Render(imguiBackend, clearColor)会完成 back buffer 状态切换、清屏、ImGui draw data 提交、present 和 fence signal。Resize()会重建 back buffer RTV。GetDevice()/GetSrvHeap()为 ImGui backend 提供初始化依赖。
当前实现边界
- 当前完全是编辑器宿主级 D3D12 代码,不走引擎自己的 RHI 抽象。
- 当前资源释放与错误处理都比较直接,没有更高层的资源状态对象。
SetEventOnCompletion()当前传的是nullptr事件句柄,这个等待路径仍然很原始。