feat(new_editor): wire project, inspector, and viewport runtime
This commit is contained in:
@@ -51,28 +51,6 @@ bool SupportsExternalViewportPresentation(
|
||||
descriptor->presentationKind == UIEditorPanelPresentationKind::ViewportShell;
|
||||
}
|
||||
|
||||
std::vector<UIEditorPanelContentHostBinding> BuildContentHostBindings(
|
||||
const UIEditorPanelRegistry& panelRegistry,
|
||||
const std::vector<UIEditorWorkspacePanelPresentationModel>& presentations) {
|
||||
std::vector<UIEditorPanelContentHostBinding> bindings = {};
|
||||
bindings.reserve(presentations.size());
|
||||
for (const UIEditorWorkspacePanelPresentationModel& presentation : presentations) {
|
||||
const UIEditorPanelDescriptor* descriptor =
|
||||
FindUIEditorPanelDescriptor(panelRegistry, presentation.panelId);
|
||||
if (descriptor == nullptr ||
|
||||
descriptor->presentationKind != presentation.kind ||
|
||||
!IsUIEditorPanelPresentationExternallyHosted(presentation.kind)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
UIEditorPanelContentHostBinding binding = {};
|
||||
binding.panelId = presentation.panelId;
|
||||
binding.kind = presentation.kind;
|
||||
bindings.push_back(std::move(binding));
|
||||
}
|
||||
return bindings;
|
||||
}
|
||||
|
||||
UIEditorWorkspacePanelPresentationState& EnsurePanelState(
|
||||
UIEditorWorkspaceComposeState& state,
|
||||
std::string_view panelId) {
|
||||
@@ -182,12 +160,9 @@ UIEditorWorkspaceComposeRequest ResolveUIEditorWorkspaceComposeRequest(
|
||||
session,
|
||||
dockHostState,
|
||||
dockHostMetrics);
|
||||
const std::vector<UIEditorPanelContentHostBinding> contentHostBindings =
|
||||
BuildContentHostBindings(panelRegistry, presentations);
|
||||
request.contentHostRequest = ResolveUIEditorPanelContentHostRequest(
|
||||
request.dockHostLayout,
|
||||
panelRegistry,
|
||||
contentHostBindings);
|
||||
panelRegistry);
|
||||
|
||||
for (const UIEditorPanelContentHostMountRequest& mountRequest :
|
||||
request.contentHostRequest.mountRequests) {
|
||||
@@ -234,18 +209,14 @@ UIEditorWorkspaceComposeFrame UpdateUIEditorWorkspaceCompose(
|
||||
session,
|
||||
dockHostState,
|
||||
dockHostMetrics);
|
||||
const std::vector<UIEditorPanelContentHostBinding> contentHostBindings =
|
||||
BuildContentHostBindings(panelRegistry, presentations);
|
||||
const UIEditorPanelContentHostRequest contentHostRequest =
|
||||
ResolveUIEditorPanelContentHostRequest(
|
||||
frame.dockHostLayout,
|
||||
panelRegistry,
|
||||
contentHostBindings);
|
||||
panelRegistry);
|
||||
frame.contentHostFrame = UpdateUIEditorPanelContentHost(
|
||||
state.contentHostState,
|
||||
contentHostRequest,
|
||||
panelRegistry,
|
||||
contentHostBindings);
|
||||
panelRegistry);
|
||||
TrimObsoleteViewportPresentationStates(state, panelRegistry, presentations);
|
||||
|
||||
for (const UIEditorWorkspacePanelPresentationModel& presentation : presentations) {
|
||||
|
||||
Reference in New Issue
Block a user