checkpoint(new_editor): native d3d12 ui path
Key node 1: move main-window UI presentation onto the D3D12 render loop with native UI renderer, text system, and texture host. Key node 2: wire frame timing/FPS display, window runtime, swapchain presentation, and native screenshot capture around the new path. Key node 3: carry editor shell/workspace/viewport/panel interaction updates needed by the new renderer and detached window flow. Key node 4: pump async resource loads and scene bridge follow-up needed for scene content visibility in new_editor.
This commit is contained in:
@@ -6,6 +6,9 @@
|
||||
|
||||
#include "Composition/EditorShellRuntime.h"
|
||||
|
||||
#include <Rendering/D3D12/D3D12UiRenderer.h>
|
||||
#include <Rendering/D3D12/D3D12UiTextSystem.h>
|
||||
#include <Rendering/D3D12/D3D12UiTextureHost.h>
|
||||
#include <Rendering/D3D12/D3D12WindowRenderLoop.h>
|
||||
#include <Rendering/D3D12/D3D12WindowRenderer.h>
|
||||
#include <Rendering/Native/AutoScreenshot.h>
|
||||
@@ -63,8 +66,8 @@ public:
|
||||
void ClearExternalDockHostDropPreview();
|
||||
|
||||
void SetDpiScale(float dpiScale);
|
||||
Host::NativeRenderer& GetRenderer();
|
||||
const Host::NativeRenderer& GetRenderer() const;
|
||||
::XCEngine::UI::Editor::UIEditorTextMeasurer& GetTextMeasurer();
|
||||
const ::XCEngine::UI::Editor::UIEditorTextMeasurer& GetTextMeasurer() const;
|
||||
const ::XCEngine::UI::UITextureHandle& GetTitleBarLogoIcon() const;
|
||||
|
||||
bool Initialize(
|
||||
@@ -93,9 +96,13 @@ public:
|
||||
private:
|
||||
void ResetFrameTiming();
|
||||
void UpdateFrameTiming();
|
||||
void RefreshDisplayedFrameStats();
|
||||
|
||||
Host::NativeRenderer m_renderer = {};
|
||||
Host::D3D12WindowRenderer m_windowRenderer = {};
|
||||
Host::D3D12UiTextureHost m_textureHost = {};
|
||||
Host::D3D12UiTextSystem m_textSystem = {};
|
||||
Host::D3D12UiRenderer m_uiRenderer = {};
|
||||
Host::D3D12WindowRenderLoop m_windowRenderLoop = {};
|
||||
Host::AutoScreenshotController m_autoScreenshot = {};
|
||||
::XCEngine::UI::UITextureHandle m_titleBarLogoIcon = {};
|
||||
@@ -104,8 +111,10 @@ private:
|
||||
std::chrono::steady_clock::time_point m_lastFrameTime = {};
|
||||
bool m_hasLastFrameTime = false;
|
||||
float m_smoothedDeltaTimeSeconds = 0.0f;
|
||||
float m_frameStatsDisplayAccumulatorSeconds = 0.0f;
|
||||
float m_displayFps = 0.0f;
|
||||
float m_displayFrameTimeMs = 0.0f;
|
||||
std::string m_frameRateText = {};
|
||||
bool m_ready = false;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user