refactor(editor): isolate windowing from composition runtime
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "Windowing/EditorWindowTransferRequests.h"
|
||||
#include "Windowing/EditorFrameServices.h"
|
||||
#include "EditorWindowContentBindings.h"
|
||||
|
||||
#include <XCEditor/Foundation/UIEditorTextMeasurement.h>
|
||||
@@ -50,8 +51,6 @@ class EditorHostResourceService;
|
||||
|
||||
namespace XCEngine::UI::Editor::App {
|
||||
|
||||
class EditorContext;
|
||||
|
||||
struct EditorWindowContentCapabilities {
|
||||
bool workspace = false;
|
||||
bool dockHost = false;
|
||||
@@ -63,7 +62,7 @@ struct EditorWindowContentCapabilities {
|
||||
|
||||
struct EditorWindowContentInitializationContext {
|
||||
const std::filesystem::path& repoRoot;
|
||||
EditorContext& editorContext;
|
||||
EditorFrameServices& frameServices;
|
||||
Rendering::Host::UiTextureHost& textureHost;
|
||||
Host::EditorHostResourceService& resourceService;
|
||||
UIEditorTextMeasurer& textMeasurer;
|
||||
@@ -71,7 +70,7 @@ struct EditorWindowContentInitializationContext {
|
||||
};
|
||||
|
||||
struct EditorWindowContentFrameContext {
|
||||
EditorContext& editorContext;
|
||||
EditorFrameServices& frameServices;
|
||||
const ::XCEngine::UI::UIRect& bounds;
|
||||
const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents;
|
||||
std::optional<EditorWindowScreenPoint> cursorScreenPoint = {};
|
||||
@@ -109,12 +108,14 @@ public:
|
||||
}
|
||||
|
||||
virtual void Initialize(const EditorWindowContentInitializationContext&) {}
|
||||
virtual void PrepareEditorContext(EditorContext& context, UIEditorTextMeasurer& textMeasurer);
|
||||
virtual bool IsEditorContextValid(const EditorContext& context) const;
|
||||
virtual void PrepareFrameServices(
|
||||
EditorFrameServices& frameServices,
|
||||
UIEditorTextMeasurer& textMeasurer);
|
||||
virtual bool AreFrameServicesValid(const EditorFrameServices& frameServices) const;
|
||||
virtual void AppendInvalidFrame(
|
||||
const EditorContext& context,
|
||||
const EditorFrameServices& frameServices,
|
||||
::XCEngine::UI::UIDrawList& drawList) const;
|
||||
virtual void NotifyStartupCaptureRequested(EditorContext& context);
|
||||
virtual void NotifyStartupCaptureRequested(EditorFrameServices& frameServices);
|
||||
virtual void Shutdown() {}
|
||||
virtual void ResetInteractionState() {}
|
||||
virtual void SetViewportSurfacePresentationEnabled(bool) {}
|
||||
|
||||
Reference in New Issue
Block a user