feat: add editor viewport host service
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
#include <XCEngine/RHI/D3D12/D3D12SwapChain.h>
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
#include <windows.h>
|
||||
|
||||
@@ -154,7 +155,10 @@ public:
|
||||
RecreateBackBufferViews();
|
||||
}
|
||||
|
||||
void Render(UI::ImGuiBackendBridge& imguiBackend, const float clearColor[4]) {
|
||||
void Render(
|
||||
UI::ImGuiBackendBridge& imguiBackend,
|
||||
const float clearColor[4],
|
||||
const std::function<void(const Rendering::RenderContext&)>& beforeUiRender = {}) {
|
||||
auto* d3d12Queue = GetD3D12CommandQueue();
|
||||
auto* d3d12CommandList = GetD3D12CommandList();
|
||||
if (m_swapChain == nullptr ||
|
||||
@@ -167,6 +171,10 @@ public:
|
||||
d3d12Queue->WaitForPreviousFrame();
|
||||
m_commandList->Reset();
|
||||
|
||||
if (beforeUiRender) {
|
||||
beforeUiRender(GetRenderContext());
|
||||
}
|
||||
|
||||
const uint32_t backBufferIndex = m_swapChain->GetCurrentBackBufferIndex();
|
||||
if (backBufferIndex >= m_backBufferViews.size() || m_backBufferViews[backBufferIndex] == nullptr) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user