Isolate XCNewEditor default build from ImGui headers

This commit is contained in:
2026-04-05 16:11:08 +08:00
parent 18f53bd920
commit 9db0d82082
17 changed files with 546 additions and 308 deletions

View File

@@ -1,23 +1,44 @@
#pragma once
#include "Platform/D3D12WindowRenderer.h"
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include "XCUIBackend/UITextureRegistration.h"
#include <XCEngine/Rendering/RenderContext.h>
#include <XCEngine/Rendering/RenderSurface.h>
#include <XCEngine/RHI/RHIDevice.h>
#include <XCEngine/RHI/RHITexture.h>
#include <functional>
#include <memory>
#include <windows.h>
#ifdef min
#undef min
#endif
#ifdef max
#undef max
#endif
namespace XCEngine {
namespace Editor {
namespace Platform {
class D3D12WindowRenderer;
} // namespace Platform
namespace XCUIBackend {
class IEditorHostCompositor {
public:
using ConfigureFontsCallback = std::function<void()>;
using RenderCallback = ::XCEngine::Editor::Platform::D3D12WindowRenderer::RenderCallback;
using RenderCallback =
std::function<void(const ::XCEngine::Rendering::RenderContext&, const ::XCEngine::Rendering::RenderSurface&)>;
virtual ~IEditorHostCompositor() = default;

View File

@@ -1,24 +1,45 @@
#pragma once
#include "Platform/D3D12WindowRenderer.h"
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include "XCUIBackend/UITextureRegistration.h"
#include <XCEngine/Rendering/RenderContext.h>
#include <XCEngine/Rendering/RenderSurface.h>
#include <XCEngine/RHI/RHIDevice.h>
#include <XCEngine/RHI/RHITexture.h>
#include <functional>
#include <memory>
#include <windows.h>
#ifdef min
#undef min
#endif
#ifdef max
#undef max
#endif
namespace XCEngine {
namespace Editor {
namespace Platform {
class D3D12WindowRenderer;
} // namespace Platform
namespace XCUIBackend {
class IWindowUICompositor {
public:
using ConfigureFontsCallback = std::function<void()>;
using UiRenderCallback = std::function<void()>;
using RenderCallback = ::XCEngine::Editor::Platform::D3D12WindowRenderer::RenderCallback;
using RenderCallback =
std::function<void(const ::XCEngine::Rendering::RenderContext&, const ::XCEngine::Rendering::RenderSurface&)>;
virtual ~IWindowUICompositor() = default;

View File

@@ -1,5 +1,6 @@
#include "XCUIBackend/IEditorHostCompositor.h"
#include "Platform/D3D12WindowRendererImGuiInterop.h"
#include "UI/ImGuiBackendBridge.h"
#include <imgui.h>
@@ -61,7 +62,12 @@ public:
const RenderCallback& beforeUiRender,
const RenderCallback& afterUiRender) override {
ImGui::Render();
windowRenderer.Render(m_backend, clearColor, beforeUiRender, afterUiRender);
::XCEngine::Editor::Platform::RenderImGuiFrame(
windowRenderer,
m_backend,
clearColor,
beforeUiRender,
afterUiRender);
}
bool CreateTextureDescriptor(

View File

@@ -1,5 +1,7 @@
#include "XCUIBackend/NativeWindowUICompositor.h"
#include "Platform/D3D12WindowRenderer.h"
#include <XCEngine/Rendering/RenderContext.h>
#include <XCEngine/Rendering/RenderSurface.h>
#include <XCEngine/RHI/RHICommandList.h>