Refactor editor windowing and update renderer regression

This commit is contained in:
2026-04-26 03:41:58 +08:00
parent 68993c46bb
commit 4fcaac81d6
39 changed files with 1181 additions and 872 deletions

View File

@@ -10,6 +10,8 @@
namespace XCEngine::UI::Editor::App {
class EditorWindowSystem;
class EditorWorkspaceWindowContentController final
: public EditorWindowContentController
, public EditorWindowWorkspaceBinding
@@ -19,7 +21,8 @@ class EditorWorkspaceWindowContentController final
public:
EditorWorkspaceWindowContentController(
std::string windowId,
UIEditorWorkspaceController workspaceController);
UIEditorWorkspaceController workspaceController,
EditorWindowSystem& windowSystem);
~EditorWorkspaceWindowContentController() override;
EditorWindowContentCapabilities GetCapabilities() const override;
@@ -72,8 +75,12 @@ public:
std::string_view fallbackWindowTitle) const override;
private:
void RefreshProjectionFromWorkspaceController(bool primary = false);
void RestoreWorkspaceControllerFromProjection();
std::string m_windowId = {};
UIEditorWorkspaceController m_workspaceController = {};
EditorWindowSystem& m_windowSystem;
EditorWorkspaceWindowProjection m_projection = {};
EditorShellRuntime m_shellRuntime = {};
EditorWindowFrameOrchestrator m_frameOrchestrator = {};
@@ -81,6 +88,7 @@ private:
std::unique_ptr<EditorWindowContentController> CreateEditorWorkspaceWindowContentController(
std::string_view windowId,
UIEditorWorkspaceController workspaceController);
UIEditorWorkspaceController workspaceController,
EditorWindowSystem& windowSystem);
} // namespace XCEngine::UI::Editor::App