diff --git a/docs/plan/NewEditor_WindowWorkspaceSingleSourceRefactorPlan_2026-04-22.md b/docs/plan/NewEditor_WindowWorkspaceSingleSourceRefactorPlan_2026-04-22.md new file mode 100644 index 00000000..674350bb --- /dev/null +++ b/docs/plan/NewEditor_WindowWorkspaceSingleSourceRefactorPlan_2026-04-22.md @@ -0,0 +1,286 @@ +# NewEditor Window Workspace Single-Source Refactor Plan + +Date: 2026-04-22 +Status: In Progress + +## Progress + +Completed on 2026-04-22: + +1. `EditorWindowWorkspaceCoordinator::BuildWorkspaceMutationController()` no longer reads mutation input from `EditorWindowWorkspaceStore` mirror +2. mutation input is now built from live `EditorWindow` controllers at call time +3. Debug build of `XCUIEditorApp` passed +4. manual verification passed for: + - detach + - re-dock + - open / close baseline behavior + - detached title baseline behavior + +Next: + +1. split detached title refresh from frame-time projection +2. then remove the remaining per-frame mirror commit path +## 1. Objective + +这份计划只处理 `new_editor` 当前最严重的一处结构性冗余: + +1. 每个 `EditorWindow` 已经各自持有一份 live `UIEditorWorkspaceController` +2. `EditorWindowWorkspaceStore` 又额外持有一份完整的 `UIEditorWindowWorkspaceSet` +3. 宿主层每帧把前者整份投影回后者 +4. 跨窗口操作再从后者反向重建 controller 灌回窗口 + +本计划的目标不是“看起来更抽象”,而是把窗口 workspace 的单一事实源收回到 live window,自根源消除双写状态同步环,同时不破坏以下现有行为: + +1. 分离窗口打开与关闭 +2. Tab 跨窗口拖拽 +3. 面板 detach / re-dock +4. detached tool window 标题与尺寸策略 +5. 现有 `UIEditorWindowWorkspaceController` 上的跨窗口变换语义 + +## 2. Confirmed Problem + +当前重复链路已经形成完整闭环: + +1. live state: + - `EditorWindowRuntimeController::m_workspaceController` +2. mirrored state: + - `EditorWindowWorkspaceStore::m_windowSet` +3. frame-time projection: + - `EditorWindowHostRuntime::RenderAllWindows(...)` + - `EditorWindowWorkspaceCoordinator::CommitWindowProjection(...)` +4. mutation-time reverse application: + - `EditorWindowWorkspaceCoordinator::BuildWorkspaceMutationController()` + - `EditorWindowWorkspaceCoordinator::SynchronizeWindowsFromWindowSet(...)` + +这不是普通 cache,而是双向同步的第二套真相源。 + +## 3. Root Cause + +根因不在某一个函数,而在宿主层把“跨窗口协调”实现成了“跨窗口状态镜像”。 + +当前设计默认: + +1. window 内的 live controller 负责真实交互与更新 +2. store 内的 window set 负责跨窗口 mutation 的输入 +3. 二者通过每帧投影保持近似一致 + +这导致: + +1. 同一语义的 workspace/session 状态有两份 owner +2. 每帧发生整份复制和整套验证 +3. mutation 逻辑被迫依赖 mirror,而不是直接面向 live windows +4. 标题刷新、窗口集合描述、关闭路径,也被顺带绑在 mirror 上 + +## 4. Why This Is The Most Serious Redundancy + +这处问题同时命中四个严重特征: + +1. 同一职责重复实现 + - live window controller 和 mirrored window set 都在表达同一份窗口 workspace 状态 +2. 同一帧重复计算 + - 每帧 `CommitWindowProjection(...)` 都会复制 `m_windowSet`、覆写某个窗口状态、再验证整套 window set +3. 结构扩散 + - 打开窗口、关闭窗口、跨窗口拖拽、标题刷新都被迫围绕 mirror 组织 +4. 没有独立 owner + - `EditorWindowWorkspaceStore` 并没有独立业务语义,只是在宿主层替 live state 保存一份副本 + +## 5. Red Lines + +这次重构明确禁止以下做法: + +1. 只删除 `CommitWindowProjection(...)`,但继续让 mutation 从旧 store 读数据 +2. 先删 store,再临时把跨窗口逻辑散落回 `EditorWindowWorkspaceCoordinator` +3. 改写 `UIEditorWindowWorkspaceController` 的跨窗口变换语义 +4. 修改 dock / transfer / extract 的业务规则,只为了配合结构调整 +5. 以“后面再补验证”为理由跳过 detached window / global tab drag 的回归验证 + +其中第 1 条最危险。它一定会造成功能回归,因为当前 detached 窗口标题刷新和 mutation 输入都还绑在 projection 路径上。 + +## 6. Target End State + +目标终态必须满足: + +1. live `EditorWindow` 持有的 `UIEditorWorkspaceController` 成为唯一可变真相源 +2. 跨窗口 mutation 需要的 `UIEditorWindowWorkspaceSet` 改为按需从 live windows 现采样构建 +3. `EditorWindowWorkspaceStore` 不再保存整份 `workspace/session` +4. detached 窗口标题刷新从 projection 逻辑中独立出来 +5. primary / active / existing window 集合信息只保留真正被消费的最小元数据 + +允许两种落地形式: + +1. 保留 `EditorWindowWorkspaceStore`,但只保留窗口元数据和注册信息,不再保存 workspace/session +2. 完全删除 `EditorWindowWorkspaceStore`,由 coordinator 直接从 host runtime 构建 snapshot + +## 7. Refactor Strategy + +### Phase A. Freeze semantics and add live snapshot builder + +先新增从 live windows 构建 `UIEditorWindowWorkspaceSet` 的单一路径,例如: + +1. `BuildLiveWindowWorkspaceSnapshot()` +2. 或 `BuildWorkspaceMutationControllerFromLiveWindows()` + +要求: + +1. snapshot 必须完整覆盖所有活跃窗口 +2. 每个窗口的 workspace/session 直接来自 live controller +3. primary window id 必须来自 live host state +4. active window id 只保留当前真实需要的最小语义 + +这一步先增加,不删旧路径。 + +### Phase B. Make mutation read from live snapshot instead of store mirror + +把以下入口改为依赖 live snapshot: + +1. `BuildWorkspaceMutationController()` +2. `TryStartGlobalTabDrag(...)` +3. `TryProcessDetachRequest(...)` +4. `TryProcessOpenDetachedPanelRequest(...)` +5. cross-window drop commit path + +要求: + +1. mutation 前只从 live windows 取状态 +2. mutation 后仍复用 `SynchronizeWindowsFromWindowSet(...)` 回灌窗口 +3. 在这一阶段仍允许 store 暂时存在,但不能再是 mutation 输入源 + +### Phase C. Split title refresh from projection + +当前 `RefreshWindowTitle(...)` 被挂在 `CommitWindowProjection(...)` 后面,这是一种错误耦合。 + +必须单独拆出标题同步路径: + +1. detached 窗口标题直接基于 live controller 刷新 +2. 标题刷新继续允许 frame-time 执行 +3. 但标题刷新不能再隐含 workspace mirror commit + +完成后,删除“为了标题而保留每帧 projection”的借口。 + +### Phase D. Remove mirrored workspace/session from store + +在 mutation 输入已经切换到 live snapshot 后: + +1. 删除 `EditorWindowWorkspaceStore` 中的 `workspace/session` 镜像 +2. 删除 `BuildWindowState(...)` 这类整份复制逻辑 +3. 删除每帧 `CommitWindowProjection(...)` +4. 删除围绕 projection 的整套验证与回退路径 + +如果此时 store 还存在,它只能保存: + +1. 已注册窗口 id +2. primary window id +3. 可能仍有意义的轻量元数据 + +## 8. Functional Risk Analysis + +这次重构不是零风险,但风险集中且可控。 + +### 8.1 Real risk: title synchronization + +如果直接删除每帧 projection,而不拆标题刷新: + +1. detached 窗口标题可能停留在旧 active panel +2. 同一窗口内切 tab 后标题可能不再更新 + +因此标题刷新必须先和 projection 解耦,再删 projection。 + +### 8.2 Real risk: mutation input staleness + +如果 mutation 仍从 store 读状态,而 store 不再每帧同步: + +1. detach 可能从旧 workspace 提取 panel +2. cross-window drop 可能基于过期 session 判断 panel owner +3. open detached panel 可能错误判断某 panel 已经打开或未打开 + +因此必须先引入 live snapshot builder,再切 mutation 输入。 + +### 8.3 Medium risk: lifecycle and close path assumptions + +当前 `IsPrimaryWindowId(...)`、`DescribeWindowSet()`、`RemoveWindowProjection(...)` 都依赖 store。 + +需要逐条确认: + +1. 哪些只用于日志 +2. 哪些只用于关闭路径 +3. 哪些真影响行为 + +如果不区分,容易把“日志依赖”误当成“结构依赖”。 + +### 8.4 Low risk: cross-window mutation algorithm itself + +`UIEditorWindowWorkspaceController` 和 `UIEditorWorkspaceTransfer` 负责的是跨窗口 panel 变换语义。 + +本计划不改: + +1. extract 规则 +2. insert 规则 +3. dock 规则 +4. detached workspace 生成规则 + +因此只要 mutation 输入快照正确,这一层不是主要风险源。 + +## 9. Why This Refactor Is Actually Simplifying + +它不是表面简化,而是实质上减少状态 owner。 + +完成后会得到: + +1. 窗口 workspace 只在 live window 内持有一份 +2. mutation 输入不再依赖长期镜像,而是按需快照 +3. frame path 不再做整份 workspace/session 复制与整套 validate +4. coordinator 的职责变成: + - 从 live windows 取快照 + - 调用 mutation controller + - 把 mutation 结果同步回 live windows +5. title refresh 变成一个独立的小职责,而不是夹带在 projection 里 + +也就是说,复杂度不是被藏起来,而是真的减少了一层。 + +## 10. Why This Refactor Is Root-Cause-Oriented + +它之所以是从根源出发,是因为它处理的是“谁拥有窗口 workspace 真相”。 + +如果不解决 owner 问题,只做局部删减,最终都会回到: + +1. 某处还需要一份 mirror +2. 某帧还得再同步一次 +3. 某条宿主功能又悄悄绑回 projection + +而这份计划直接把真相源收回 live window,把跨窗口 controller 降级为临时 snapshot consumer,这才是对根因动刀。 + +## 11. Validation Requirements + +没有以下验证,不允许落地删除 projection: + +1. detached window 内切换 active panel 后,窗口标题实时更新 +2. primary window detach panel 正常创建新窗口 +3. detached window 再次拖拽 panel 发起 global tab drag 正常 +4. 跨窗口 drop 到 tab stack 和 relative dock 都正常 +5. 已打开 tool window 的 panel 重复打开请求仍然正确复用 +6. 关闭 detached window 后,其余窗口状态保持正确 +7. 关闭 primary window 时,其他窗口生命周期不异常 +8. `XCUIEditorApp` Debug 构建通过 + +## 12. Completion Criteria + +只有满足以下条件,这次重构才算真正完成: + +1. `EditorWindowWorkspaceStore` 不再持有整份 `workspace/session` 镜像 +2. `EditorWindowHostRuntime::RenderAllWindows(...)` 不再每帧调用 workspace projection commit +3. 所有跨窗口 mutation 都从 live snapshot 构建输入 +4. detached 标题刷新与 projection 彻底解耦 +5. 现有 detach / drag / re-dock / close 行为无回归 + +## 13. Final Statement + +这次重构不能靠“删几行同步代码”完成。 + +真正安全、真正彻底的路径只有一条: + +1. 先建立 live snapshot 输入 +2. 再把 mutation 输入切过去 +3. 再拆标题刷新 +4. 最后删除 mirror + +只有按这个顺序,才能既不破坏功能,又从根上消灭这套双写宿主残片。 diff --git a/editor/CMakeLists.txt b/mvs/editor/CMakeLists.txt similarity index 100% rename from editor/CMakeLists.txt rename to mvs/editor/CMakeLists.txt diff --git a/editor/README.md b/mvs/editor/README.md similarity index 100% rename from editor/README.md rename to mvs/editor/README.md diff --git a/editor/resources/Icons/Camera.png b/mvs/editor/resources/Icons/Camera.png similarity index 100% rename from editor/resources/Icons/Camera.png rename to mvs/editor/resources/Icons/Camera.png diff --git a/editor/resources/Icons/app.ico b/mvs/editor/resources/Icons/app.ico similarity index 100% rename from editor/resources/Icons/app.ico rename to mvs/editor/resources/Icons/app.ico diff --git a/editor/resources/Icons/camera_gizmo.png b/mvs/editor/resources/Icons/camera_gizmo.png similarity index 100% rename from editor/resources/Icons/camera_gizmo.png rename to mvs/editor/resources/Icons/camera_gizmo.png diff --git a/editor/resources/Icons/cloud.png b/mvs/editor/resources/Icons/cloud.png similarity index 100% rename from editor/resources/Icons/cloud.png rename to mvs/editor/resources/Icons/cloud.png diff --git a/editor/resources/Icons/cloud_icon.png b/mvs/editor/resources/Icons/cloud_icon.png similarity index 100% rename from editor/resources/Icons/cloud_icon.png rename to mvs/editor/resources/Icons/cloud_icon.png diff --git a/editor/resources/Icons/console__info_icon.png b/mvs/editor/resources/Icons/console__info_icon.png similarity index 100% rename from editor/resources/Icons/console__info_icon.png rename to mvs/editor/resources/Icons/console__info_icon.png diff --git a/editor/resources/Icons/console_error_button_icon.png b/mvs/editor/resources/Icons/console_error_button_icon.png similarity index 100% rename from editor/resources/Icons/console_error_button_icon.png rename to mvs/editor/resources/Icons/console_error_button_icon.png diff --git a/editor/resources/Icons/console_error_icon.png b/mvs/editor/resources/Icons/console_error_icon.png similarity index 100% rename from editor/resources/Icons/console_error_icon.png rename to mvs/editor/resources/Icons/console_error_icon.png diff --git a/editor/resources/Icons/console_info_button_icon.png b/mvs/editor/resources/Icons/console_info_button_icon.png similarity index 100% rename from editor/resources/Icons/console_info_button_icon.png rename to mvs/editor/resources/Icons/console_info_button_icon.png diff --git a/editor/resources/Icons/console_warn_button_icon.png b/mvs/editor/resources/Icons/console_warn_button_icon.png similarity index 100% rename from editor/resources/Icons/console_warn_button_icon.png rename to mvs/editor/resources/Icons/console_warn_button_icon.png diff --git a/editor/resources/Icons/console_warn_icon.png b/mvs/editor/resources/Icons/console_warn_icon.png similarity index 100% rename from editor/resources/Icons/console_warn_icon.png rename to mvs/editor/resources/Icons/console_warn_icon.png diff --git a/editor/resources/Icons/directional_light_gizmo.png b/mvs/editor/resources/Icons/directional_light_gizmo.png similarity index 100% rename from editor/resources/Icons/directional_light_gizmo.png rename to mvs/editor/resources/Icons/directional_light_gizmo.png diff --git a/editor/resources/Icons/directory_empty_icon.png b/mvs/editor/resources/Icons/directory_empty_icon.png similarity index 100% rename from editor/resources/Icons/directory_empty_icon.png rename to mvs/editor/resources/Icons/directory_empty_icon.png diff --git a/editor/resources/Icons/directory_icon.png b/mvs/editor/resources/Icons/directory_icon.png similarity index 100% rename from editor/resources/Icons/directory_icon.png rename to mvs/editor/resources/Icons/directory_icon.png diff --git a/editor/resources/Icons/folder_empty_icon.png b/mvs/editor/resources/Icons/folder_empty_icon.png similarity index 100% rename from editor/resources/Icons/folder_empty_icon.png rename to mvs/editor/resources/Icons/folder_empty_icon.png diff --git a/editor/resources/Icons/folder_icon.png b/mvs/editor/resources/Icons/folder_icon.png similarity index 100% rename from editor/resources/Icons/folder_icon.png rename to mvs/editor/resources/Icons/folder_icon.png diff --git a/editor/resources/Icons/gameobject_icon.png b/mvs/editor/resources/Icons/gameobject_icon.png similarity index 100% rename from editor/resources/Icons/gameobject_icon.png rename to mvs/editor/resources/Icons/gameobject_icon.png diff --git a/editor/resources/Icons/image_icon.png b/mvs/editor/resources/Icons/image_icon.png similarity index 100% rename from editor/resources/Icons/image_icon.png rename to mvs/editor/resources/Icons/image_icon.png diff --git a/editor/resources/Icons/light.png b/mvs/editor/resources/Icons/light.png similarity index 100% rename from editor/resources/Icons/light.png rename to mvs/editor/resources/Icons/light.png diff --git a/editor/resources/Icons/logo.png b/mvs/editor/resources/Icons/logo.png similarity index 100% rename from editor/resources/Icons/logo.png rename to mvs/editor/resources/Icons/logo.png diff --git a/editor/resources/Icons/logo_icon.png b/mvs/editor/resources/Icons/logo_icon.png similarity index 100% rename from editor/resources/Icons/logo_icon.png rename to mvs/editor/resources/Icons/logo_icon.png diff --git a/editor/resources/Icons/material_icon.png b/mvs/editor/resources/Icons/material_icon.png similarity index 100% rename from editor/resources/Icons/material_icon.png rename to mvs/editor/resources/Icons/material_icon.png diff --git a/editor/resources/Icons/mesh_icon.png b/mvs/editor/resources/Icons/mesh_icon.png similarity index 100% rename from editor/resources/Icons/mesh_icon.png rename to mvs/editor/resources/Icons/mesh_icon.png diff --git a/editor/resources/Icons/mesh_icondd.png b/mvs/editor/resources/Icons/mesh_icondd.png similarity index 100% rename from editor/resources/Icons/mesh_icondd.png rename to mvs/editor/resources/Icons/mesh_icondd.png diff --git a/editor/resources/Icons/move_tool.png b/mvs/editor/resources/Icons/move_tool.png similarity index 100% rename from editor/resources/Icons/move_tool.png rename to mvs/editor/resources/Icons/move_tool.png diff --git a/editor/resources/Icons/move_tool_on.png b/mvs/editor/resources/Icons/move_tool_on.png similarity index 100% rename from editor/resources/Icons/move_tool_on.png rename to mvs/editor/resources/Icons/move_tool_on.png diff --git a/editor/resources/Icons/pause_button.png b/mvs/editor/resources/Icons/pause_button.png similarity index 100% rename from editor/resources/Icons/pause_button.png rename to mvs/editor/resources/Icons/pause_button.png diff --git a/editor/resources/Icons/play_button.png b/mvs/editor/resources/Icons/play_button.png similarity index 100% rename from editor/resources/Icons/play_button.png rename to mvs/editor/resources/Icons/play_button.png diff --git a/editor/resources/Icons/point_light_gizmo.png b/mvs/editor/resources/Icons/point_light_gizmo.png similarity index 100% rename from editor/resources/Icons/point_light_gizmo.png rename to mvs/editor/resources/Icons/point_light_gizmo.png diff --git a/editor/resources/Icons/resize_png.py b/mvs/editor/resources/Icons/resize_png.py similarity index 100% rename from editor/resources/Icons/resize_png.py rename to mvs/editor/resources/Icons/resize_png.py diff --git a/editor/resources/Icons/rotate_tool.png b/mvs/editor/resources/Icons/rotate_tool.png similarity index 100% rename from editor/resources/Icons/rotate_tool.png rename to mvs/editor/resources/Icons/rotate_tool.png diff --git a/editor/resources/Icons/rotate_tool_on.png b/mvs/editor/resources/Icons/rotate_tool_on.png similarity index 100% rename from editor/resources/Icons/rotate_tool_on.png rename to mvs/editor/resources/Icons/rotate_tool_on.png diff --git a/editor/resources/Icons/scale_tool.png b/mvs/editor/resources/Icons/scale_tool.png similarity index 100% rename from editor/resources/Icons/scale_tool.png rename to mvs/editor/resources/Icons/scale_tool.png diff --git a/editor/resources/Icons/scale_tool_on.png b/mvs/editor/resources/Icons/scale_tool_on.png similarity index 100% rename from editor/resources/Icons/scale_tool_on.png rename to mvs/editor/resources/Icons/scale_tool_on.png diff --git a/editor/resources/Icons/scene_icon.png b/mvs/editor/resources/Icons/scene_icon.png similarity index 100% rename from editor/resources/Icons/scene_icon.png rename to mvs/editor/resources/Icons/scene_icon.png diff --git a/editor/resources/Icons/script_icon.png b/mvs/editor/resources/Icons/script_icon.png similarity index 100% rename from editor/resources/Icons/script_icon.png rename to mvs/editor/resources/Icons/script_icon.png diff --git a/editor/resources/Icons/spot_light_gizmo.png b/mvs/editor/resources/Icons/spot_light_gizmo.png similarity index 100% rename from editor/resources/Icons/spot_light_gizmo.png rename to mvs/editor/resources/Icons/spot_light_gizmo.png diff --git a/editor/resources/Icons/step_button.png b/mvs/editor/resources/Icons/step_button.png similarity index 100% rename from editor/resources/Icons/step_button.png rename to mvs/editor/resources/Icons/step_button.png diff --git a/editor/resources/Icons/stop_button.png b/mvs/editor/resources/Icons/stop_button.png similarity index 100% rename from editor/resources/Icons/stop_button.png rename to mvs/editor/resources/Icons/stop_button.png diff --git a/editor/resources/Icons/texture_icon.png b/mvs/editor/resources/Icons/texture_icon.png similarity index 100% rename from editor/resources/Icons/texture_icon.png rename to mvs/editor/resources/Icons/texture_icon.png diff --git a/editor/resources/Icons/transform_tool.png b/mvs/editor/resources/Icons/transform_tool.png similarity index 100% rename from editor/resources/Icons/transform_tool.png rename to mvs/editor/resources/Icons/transform_tool.png diff --git a/editor/resources/Icons/transform_tool_on.png b/mvs/editor/resources/Icons/transform_tool_on.png similarity index 100% rename from editor/resources/Icons/transform_tool_on.png rename to mvs/editor/resources/Icons/transform_tool_on.png diff --git a/editor/resources/Icons/view_move.png b/mvs/editor/resources/Icons/view_move.png similarity index 100% rename from editor/resources/Icons/view_move.png rename to mvs/editor/resources/Icons/view_move.png diff --git a/editor/resources/Icons/view_move_tool.png b/mvs/editor/resources/Icons/view_move_tool.png similarity index 100% rename from editor/resources/Icons/view_move_tool.png rename to mvs/editor/resources/Icons/view_move_tool.png diff --git a/editor/resources/Icons/view_move_tool_on.png b/mvs/editor/resources/Icons/view_move_tool_on.png similarity index 100% rename from editor/resources/Icons/view_move_tool_on.png rename to mvs/editor/resources/Icons/view_move_tool_on.png diff --git a/editor/resources/Icons/view_orbit.png b/mvs/editor/resources/Icons/view_orbit.png similarity index 100% rename from editor/resources/Icons/view_orbit.png rename to mvs/editor/resources/Icons/view_orbit.png diff --git a/editor/resources/shaders/scene-viewport/infinite-grid/infinite-grid.shader b/mvs/editor/resources/shaders/scene-viewport/infinite-grid/infinite-grid.shader similarity index 100% rename from editor/resources/shaders/scene-viewport/infinite-grid/infinite-grid.shader rename to mvs/editor/resources/shaders/scene-viewport/infinite-grid/infinite-grid.shader diff --git a/editor/src/Actions/ActionBinding.h b/mvs/editor/src/Actions/ActionBinding.h similarity index 100% rename from editor/src/Actions/ActionBinding.h rename to mvs/editor/src/Actions/ActionBinding.h diff --git a/editor/src/Actions/ActionRouting.h b/mvs/editor/src/Actions/ActionRouting.h similarity index 100% rename from editor/src/Actions/ActionRouting.h rename to mvs/editor/src/Actions/ActionRouting.h diff --git a/editor/src/Actions/ConsoleActionRouter.h b/mvs/editor/src/Actions/ConsoleActionRouter.h similarity index 100% rename from editor/src/Actions/ConsoleActionRouter.h rename to mvs/editor/src/Actions/ConsoleActionRouter.h diff --git a/editor/src/Actions/EditActionRouter.h b/mvs/editor/src/Actions/EditActionRouter.h similarity index 100% rename from editor/src/Actions/EditActionRouter.h rename to mvs/editor/src/Actions/EditActionRouter.h diff --git a/editor/src/Actions/EditorActions.h b/mvs/editor/src/Actions/EditorActions.h similarity index 100% rename from editor/src/Actions/EditorActions.h rename to mvs/editor/src/Actions/EditorActions.h diff --git a/editor/src/Actions/HierarchyActionRouter.h b/mvs/editor/src/Actions/HierarchyActionRouter.h similarity index 100% rename from editor/src/Actions/HierarchyActionRouter.h rename to mvs/editor/src/Actions/HierarchyActionRouter.h diff --git a/editor/src/Actions/InspectorActionRouter.h b/mvs/editor/src/Actions/InspectorActionRouter.h similarity index 100% rename from editor/src/Actions/InspectorActionRouter.h rename to mvs/editor/src/Actions/InspectorActionRouter.h diff --git a/editor/src/Actions/MainMenuActionRouter.h b/mvs/editor/src/Actions/MainMenuActionRouter.h similarity index 100% rename from editor/src/Actions/MainMenuActionRouter.h rename to mvs/editor/src/Actions/MainMenuActionRouter.h diff --git a/editor/src/Actions/ProjectActionRouter.h b/mvs/editor/src/Actions/ProjectActionRouter.h similarity index 100% rename from editor/src/Actions/ProjectActionRouter.h rename to mvs/editor/src/Actions/ProjectActionRouter.h diff --git a/editor/src/Application.cpp b/mvs/editor/src/Application.cpp similarity index 100% rename from editor/src/Application.cpp rename to mvs/editor/src/Application.cpp diff --git a/editor/src/Application.h b/mvs/editor/src/Application.h similarity index 100% rename from editor/src/Application.h rename to mvs/editor/src/Application.h diff --git a/editor/src/Commands/ComponentCommands.h b/mvs/editor/src/Commands/ComponentCommands.h similarity index 100% rename from editor/src/Commands/ComponentCommands.h rename to mvs/editor/src/Commands/ComponentCommands.h diff --git a/editor/src/Commands/EntityCommands.h b/mvs/editor/src/Commands/EntityCommands.h similarity index 100% rename from editor/src/Commands/EntityCommands.h rename to mvs/editor/src/Commands/EntityCommands.h diff --git a/editor/src/Commands/ProjectCommands.h b/mvs/editor/src/Commands/ProjectCommands.h similarity index 100% rename from editor/src/Commands/ProjectCommands.h rename to mvs/editor/src/Commands/ProjectCommands.h diff --git a/editor/src/Commands/SceneCommands.h b/mvs/editor/src/Commands/SceneCommands.h similarity index 100% rename from editor/src/Commands/SceneCommands.h rename to mvs/editor/src/Commands/SceneCommands.h diff --git a/editor/src/ComponentEditors/AssetReferenceEditorUtils.h b/mvs/editor/src/ComponentEditors/AssetReferenceEditorUtils.h similarity index 100% rename from editor/src/ComponentEditors/AssetReferenceEditorUtils.h rename to mvs/editor/src/ComponentEditors/AssetReferenceEditorUtils.h diff --git a/editor/src/ComponentEditors/AudioListenerComponentEditor.h b/mvs/editor/src/ComponentEditors/AudioListenerComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/AudioListenerComponentEditor.h rename to mvs/editor/src/ComponentEditors/AudioListenerComponentEditor.h diff --git a/editor/src/ComponentEditors/AudioSourceComponentEditor.h b/mvs/editor/src/ComponentEditors/AudioSourceComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/AudioSourceComponentEditor.h rename to mvs/editor/src/ComponentEditors/AudioSourceComponentEditor.h diff --git a/editor/src/ComponentEditors/BoxColliderComponentEditor.h b/mvs/editor/src/ComponentEditors/BoxColliderComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/BoxColliderComponentEditor.h rename to mvs/editor/src/ComponentEditors/BoxColliderComponentEditor.h diff --git a/editor/src/ComponentEditors/CameraComponentEditor.h b/mvs/editor/src/ComponentEditors/CameraComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/CameraComponentEditor.h rename to mvs/editor/src/ComponentEditors/CameraComponentEditor.h diff --git a/editor/src/ComponentEditors/CapsuleColliderComponentEditor.h b/mvs/editor/src/ComponentEditors/CapsuleColliderComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/CapsuleColliderComponentEditor.h rename to mvs/editor/src/ComponentEditors/CapsuleColliderComponentEditor.h diff --git a/editor/src/ComponentEditors/ComponentEditorRegistry.cpp b/mvs/editor/src/ComponentEditors/ComponentEditorRegistry.cpp similarity index 100% rename from editor/src/ComponentEditors/ComponentEditorRegistry.cpp rename to mvs/editor/src/ComponentEditors/ComponentEditorRegistry.cpp diff --git a/editor/src/ComponentEditors/ComponentEditorRegistry.h b/mvs/editor/src/ComponentEditors/ComponentEditorRegistry.h similarity index 100% rename from editor/src/ComponentEditors/ComponentEditorRegistry.h rename to mvs/editor/src/ComponentEditors/ComponentEditorRegistry.h diff --git a/editor/src/ComponentEditors/IComponentEditor.h b/mvs/editor/src/ComponentEditors/IComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/IComponentEditor.h rename to mvs/editor/src/ComponentEditors/IComponentEditor.h diff --git a/editor/src/ComponentEditors/LightComponentEditor.h b/mvs/editor/src/ComponentEditors/LightComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/LightComponentEditor.h rename to mvs/editor/src/ComponentEditors/LightComponentEditor.h diff --git a/editor/src/ComponentEditors/MeshFilterComponentEditor.h b/mvs/editor/src/ComponentEditors/MeshFilterComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/MeshFilterComponentEditor.h rename to mvs/editor/src/ComponentEditors/MeshFilterComponentEditor.h diff --git a/editor/src/ComponentEditors/MeshRendererComponentEditor.h b/mvs/editor/src/ComponentEditors/MeshRendererComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/MeshRendererComponentEditor.h rename to mvs/editor/src/ComponentEditors/MeshRendererComponentEditor.h diff --git a/editor/src/ComponentEditors/RigidbodyComponentEditor.h b/mvs/editor/src/ComponentEditors/RigidbodyComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/RigidbodyComponentEditor.h rename to mvs/editor/src/ComponentEditors/RigidbodyComponentEditor.h diff --git a/editor/src/ComponentEditors/ScriptComponentEditor.h b/mvs/editor/src/ComponentEditors/ScriptComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/ScriptComponentEditor.h rename to mvs/editor/src/ComponentEditors/ScriptComponentEditor.h diff --git a/editor/src/ComponentEditors/ScriptComponentEditorUtils.h b/mvs/editor/src/ComponentEditors/ScriptComponentEditorUtils.h similarity index 100% rename from editor/src/ComponentEditors/ScriptComponentEditorUtils.h rename to mvs/editor/src/ComponentEditors/ScriptComponentEditorUtils.h diff --git a/editor/src/ComponentEditors/SphereColliderComponentEditor.h b/mvs/editor/src/ComponentEditors/SphereColliderComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/SphereColliderComponentEditor.h rename to mvs/editor/src/ComponentEditors/SphereColliderComponentEditor.h diff --git a/editor/src/ComponentEditors/TransformComponentEditor.h b/mvs/editor/src/ComponentEditors/TransformComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/TransformComponentEditor.h rename to mvs/editor/src/ComponentEditors/TransformComponentEditor.h diff --git a/editor/src/ComponentEditors/VolumeRendererComponentEditor.h b/mvs/editor/src/ComponentEditors/VolumeRendererComponentEditor.h similarity index 100% rename from editor/src/ComponentEditors/VolumeRendererComponentEditor.h rename to mvs/editor/src/ComponentEditors/VolumeRendererComponentEditor.h diff --git a/editor/src/Core/AssetItem.h b/mvs/editor/src/Core/AssetItem.h similarity index 100% rename from editor/src/Core/AssetItem.h rename to mvs/editor/src/Core/AssetItem.h diff --git a/editor/src/Core/EditorActionRoute.h b/mvs/editor/src/Core/EditorActionRoute.h similarity index 100% rename from editor/src/Core/EditorActionRoute.h rename to mvs/editor/src/Core/EditorActionRoute.h diff --git a/editor/src/Core/EditorConsoleSink.cpp b/mvs/editor/src/Core/EditorConsoleSink.cpp similarity index 100% rename from editor/src/Core/EditorConsoleSink.cpp rename to mvs/editor/src/Core/EditorConsoleSink.cpp diff --git a/editor/src/Core/EditorConsoleSink.h b/mvs/editor/src/Core/EditorConsoleSink.h similarity index 100% rename from editor/src/Core/EditorConsoleSink.h rename to mvs/editor/src/Core/EditorConsoleSink.h diff --git a/editor/src/Core/EditorContext.h b/mvs/editor/src/Core/EditorContext.h similarity index 100% rename from editor/src/Core/EditorContext.h rename to mvs/editor/src/Core/EditorContext.h diff --git a/editor/src/Core/EditorEvents.h b/mvs/editor/src/Core/EditorEvents.h similarity index 100% rename from editor/src/Core/EditorEvents.h rename to mvs/editor/src/Core/EditorEvents.h diff --git a/editor/src/Core/EditorLoggingSetup.h b/mvs/editor/src/Core/EditorLoggingSetup.h similarity index 100% rename from editor/src/Core/EditorLoggingSetup.h rename to mvs/editor/src/Core/EditorLoggingSetup.h diff --git a/editor/src/Core/EditorRuntimeMode.h b/mvs/editor/src/Core/EditorRuntimeMode.h similarity index 100% rename from editor/src/Core/EditorRuntimeMode.h rename to mvs/editor/src/Core/EditorRuntimeMode.h diff --git a/editor/src/Core/EditorWindowTitle.h b/mvs/editor/src/Core/EditorWindowTitle.h similarity index 100% rename from editor/src/Core/EditorWindowTitle.h rename to mvs/editor/src/Core/EditorWindowTitle.h diff --git a/editor/src/Core/EditorWorkspace.h b/mvs/editor/src/Core/EditorWorkspace.h similarity index 100% rename from editor/src/Core/EditorWorkspace.h rename to mvs/editor/src/Core/EditorWorkspace.h diff --git a/editor/src/Core/EventBus.h b/mvs/editor/src/Core/EventBus.h similarity index 100% rename from editor/src/Core/EventBus.h rename to mvs/editor/src/Core/EventBus.h diff --git a/editor/src/Core/IEditorContext.h b/mvs/editor/src/Core/IEditorContext.h similarity index 100% rename from editor/src/Core/IEditorContext.h rename to mvs/editor/src/Core/IEditorContext.h diff --git a/editor/src/Core/IProjectManager.h b/mvs/editor/src/Core/IProjectManager.h similarity index 100% rename from editor/src/Core/IProjectManager.h rename to mvs/editor/src/Core/IProjectManager.h diff --git a/editor/src/Core/ISceneManager.h b/mvs/editor/src/Core/ISceneManager.h similarity index 100% rename from editor/src/Core/ISceneManager.h rename to mvs/editor/src/Core/ISceneManager.h diff --git a/editor/src/Core/ISelectionManager.h b/mvs/editor/src/Core/ISelectionManager.h similarity index 100% rename from editor/src/Core/ISelectionManager.h rename to mvs/editor/src/Core/ISelectionManager.h diff --git a/editor/src/Core/IUndoManager.h b/mvs/editor/src/Core/IUndoManager.h similarity index 100% rename from editor/src/Core/IUndoManager.h rename to mvs/editor/src/Core/IUndoManager.h diff --git a/editor/src/Core/PlaySessionController.cpp b/mvs/editor/src/Core/PlaySessionController.cpp similarity index 100% rename from editor/src/Core/PlaySessionController.cpp rename to mvs/editor/src/Core/PlaySessionController.cpp diff --git a/editor/src/Core/PlaySessionController.h b/mvs/editor/src/Core/PlaySessionController.h similarity index 100% rename from editor/src/Core/PlaySessionController.h rename to mvs/editor/src/Core/PlaySessionController.h diff --git a/editor/src/Core/ProjectAssetWatcher.cpp b/mvs/editor/src/Core/ProjectAssetWatcher.cpp similarity index 100% rename from editor/src/Core/ProjectAssetWatcher.cpp rename to mvs/editor/src/Core/ProjectAssetWatcher.cpp diff --git a/editor/src/Core/ProjectAssetWatcher.h b/mvs/editor/src/Core/ProjectAssetWatcher.h similarity index 100% rename from editor/src/Core/ProjectAssetWatcher.h rename to mvs/editor/src/Core/ProjectAssetWatcher.h diff --git a/editor/src/Core/ProjectRootResolver.h b/mvs/editor/src/Core/ProjectRootResolver.h similarity index 100% rename from editor/src/Core/ProjectRootResolver.h rename to mvs/editor/src/Core/ProjectRootResolver.h diff --git a/editor/src/Core/SceneSnapshot.h b/mvs/editor/src/Core/SceneSnapshot.h similarity index 100% rename from editor/src/Core/SceneSnapshot.h rename to mvs/editor/src/Core/SceneSnapshot.h diff --git a/editor/src/Core/SelectionManager.h b/mvs/editor/src/Core/SelectionManager.h similarity index 100% rename from editor/src/Core/SelectionManager.h rename to mvs/editor/src/Core/SelectionManager.h diff --git a/editor/src/Core/UndoManager.cpp b/mvs/editor/src/Core/UndoManager.cpp similarity index 100% rename from editor/src/Core/UndoManager.cpp rename to mvs/editor/src/Core/UndoManager.cpp diff --git a/editor/src/Core/UndoManager.h b/mvs/editor/src/Core/UndoManager.h similarity index 100% rename from editor/src/Core/UndoManager.h rename to mvs/editor/src/Core/UndoManager.h diff --git a/editor/src/EditorApp.rc b/mvs/editor/src/EditorApp.rc similarity index 100% rename from editor/src/EditorApp.rc rename to mvs/editor/src/EditorApp.rc diff --git a/editor/src/EditorResources.h b/mvs/editor/src/EditorResources.h similarity index 100% rename from editor/src/EditorResources.h rename to mvs/editor/src/EditorResources.h diff --git a/editor/src/Layers/EditorLayer.cpp b/mvs/editor/src/Layers/EditorLayer.cpp similarity index 100% rename from editor/src/Layers/EditorLayer.cpp rename to mvs/editor/src/Layers/EditorLayer.cpp diff --git a/editor/src/Layers/EditorLayer.h b/mvs/editor/src/Layers/EditorLayer.h similarity index 100% rename from editor/src/Layers/EditorLayer.h rename to mvs/editor/src/Layers/EditorLayer.h diff --git a/editor/src/Layout/DockLayoutController.h b/mvs/editor/src/Layout/DockLayoutController.h similarity index 100% rename from editor/src/Layout/DockLayoutController.h rename to mvs/editor/src/Layout/DockLayoutController.h diff --git a/editor/src/Managers/ProjectManager.cpp b/mvs/editor/src/Managers/ProjectManager.cpp similarity index 100% rename from editor/src/Managers/ProjectManager.cpp rename to mvs/editor/src/Managers/ProjectManager.cpp diff --git a/editor/src/Managers/ProjectManager.h b/mvs/editor/src/Managers/ProjectManager.h similarity index 100% rename from editor/src/Managers/ProjectManager.h rename to mvs/editor/src/Managers/ProjectManager.h diff --git a/editor/src/Managers/SceneManager.cpp b/mvs/editor/src/Managers/SceneManager.cpp similarity index 100% rename from editor/src/Managers/SceneManager.cpp rename to mvs/editor/src/Managers/SceneManager.cpp diff --git a/editor/src/Managers/SceneManager.h b/mvs/editor/src/Managers/SceneManager.h similarity index 100% rename from editor/src/Managers/SceneManager.h rename to mvs/editor/src/Managers/SceneManager.h diff --git a/editor/src/Managers/SelectionManager.h b/mvs/editor/src/Managers/SelectionManager.h similarity index 100% rename from editor/src/Managers/SelectionManager.h rename to mvs/editor/src/Managers/SelectionManager.h diff --git a/editor/src/Platform/D3D12WindowRenderer.h b/mvs/editor/src/Platform/D3D12WindowRenderer.h similarity index 100% rename from editor/src/Platform/D3D12WindowRenderer.h rename to mvs/editor/src/Platform/D3D12WindowRenderer.h diff --git a/editor/src/Platform/D3D12WindowRendererImGuiInterop.h b/mvs/editor/src/Platform/D3D12WindowRendererImGuiInterop.h similarity index 100% rename from editor/src/Platform/D3D12WindowRendererImGuiInterop.h rename to mvs/editor/src/Platform/D3D12WindowRendererImGuiInterop.h diff --git a/editor/src/Platform/Win32EditorHost.h b/mvs/editor/src/Platform/Win32EditorHost.h similarity index 100% rename from editor/src/Platform/Win32EditorHost.h rename to mvs/editor/src/Platform/Win32EditorHost.h diff --git a/editor/src/Platform/Win32Utf8.h b/mvs/editor/src/Platform/Win32Utf8.h similarity index 100% rename from editor/src/Platform/Win32Utf8.h rename to mvs/editor/src/Platform/Win32Utf8.h diff --git a/editor/src/Platform/WindowsProcessDiagnostics.h b/mvs/editor/src/Platform/WindowsProcessDiagnostics.h similarity index 100% rename from editor/src/Platform/WindowsProcessDiagnostics.h rename to mvs/editor/src/Platform/WindowsProcessDiagnostics.h diff --git a/editor/src/Scripting/EditorScriptAssemblyBuilder.cpp b/mvs/editor/src/Scripting/EditorScriptAssemblyBuilder.cpp similarity index 100% rename from editor/src/Scripting/EditorScriptAssemblyBuilder.cpp rename to mvs/editor/src/Scripting/EditorScriptAssemblyBuilder.cpp diff --git a/editor/src/Scripting/EditorScriptAssemblyBuilder.h b/mvs/editor/src/Scripting/EditorScriptAssemblyBuilder.h similarity index 100% rename from editor/src/Scripting/EditorScriptAssemblyBuilder.h rename to mvs/editor/src/Scripting/EditorScriptAssemblyBuilder.h diff --git a/editor/src/Scripting/EditorScriptAssemblyBuilderUtils.h b/mvs/editor/src/Scripting/EditorScriptAssemblyBuilderUtils.h similarity index 100% rename from editor/src/Scripting/EditorScriptAssemblyBuilderUtils.h rename to mvs/editor/src/Scripting/EditorScriptAssemblyBuilderUtils.h diff --git a/editor/src/Scripting/EditorScriptRuntimeStatus.h b/mvs/editor/src/Scripting/EditorScriptRuntimeStatus.h similarity index 100% rename from editor/src/Scripting/EditorScriptRuntimeStatus.h rename to mvs/editor/src/Scripting/EditorScriptRuntimeStatus.h diff --git a/editor/src/Theme.cpp b/mvs/editor/src/Theme.cpp similarity index 100% rename from editor/src/Theme.cpp rename to mvs/editor/src/Theme.cpp diff --git a/editor/src/Theme.h b/mvs/editor/src/Theme.h similarity index 100% rename from editor/src/Theme.h rename to mvs/editor/src/Theme.h diff --git a/editor/src/UI/AboutEditorDialog.h b/mvs/editor/src/UI/AboutEditorDialog.h similarity index 100% rename from editor/src/UI/AboutEditorDialog.h rename to mvs/editor/src/UI/AboutEditorDialog.h diff --git a/editor/src/UI/BaseTheme.h b/mvs/editor/src/UI/BaseTheme.h similarity index 100% rename from editor/src/UI/BaseTheme.h rename to mvs/editor/src/UI/BaseTheme.h diff --git a/editor/src/UI/BuiltInIconLayoutUtils.h b/mvs/editor/src/UI/BuiltInIconLayoutUtils.h similarity index 100% rename from editor/src/UI/BuiltInIconLayoutUtils.h rename to mvs/editor/src/UI/BuiltInIconLayoutUtils.h diff --git a/editor/src/UI/BuiltInIcons.cpp b/mvs/editor/src/UI/BuiltInIcons.cpp similarity index 100% rename from editor/src/UI/BuiltInIcons.cpp rename to mvs/editor/src/UI/BuiltInIcons.cpp diff --git a/editor/src/UI/BuiltInIcons.h b/mvs/editor/src/UI/BuiltInIcons.h similarity index 100% rename from editor/src/UI/BuiltInIcons.h rename to mvs/editor/src/UI/BuiltInIcons.h diff --git a/editor/src/UI/ColorPicker.h b/mvs/editor/src/UI/ColorPicker.h similarity index 100% rename from editor/src/UI/ColorPicker.h rename to mvs/editor/src/UI/ColorPicker.h diff --git a/editor/src/UI/ConsoleFilterState.h b/mvs/editor/src/UI/ConsoleFilterState.h similarity index 100% rename from editor/src/UI/ConsoleFilterState.h rename to mvs/editor/src/UI/ConsoleFilterState.h diff --git a/editor/src/UI/ConsoleLogFormatter.h b/mvs/editor/src/UI/ConsoleLogFormatter.h similarity index 100% rename from editor/src/UI/ConsoleLogFormatter.h rename to mvs/editor/src/UI/ConsoleLogFormatter.h diff --git a/editor/src/UI/ContextMenu.h b/mvs/editor/src/UI/ContextMenu.h similarity index 100% rename from editor/src/UI/ContextMenu.h rename to mvs/editor/src/UI/ContextMenu.h diff --git a/editor/src/UI/Core.h b/mvs/editor/src/UI/Core.h similarity index 100% rename from editor/src/UI/Core.h rename to mvs/editor/src/UI/Core.h diff --git a/editor/src/UI/DividerChrome.h b/mvs/editor/src/UI/DividerChrome.h similarity index 100% rename from editor/src/UI/DividerChrome.h rename to mvs/editor/src/UI/DividerChrome.h diff --git a/editor/src/UI/DockHostStyle.h b/mvs/editor/src/UI/DockHostStyle.h similarity index 100% rename from editor/src/UI/DockHostStyle.h rename to mvs/editor/src/UI/DockHostStyle.h diff --git a/editor/src/UI/DockTabBarChrome.h b/mvs/editor/src/UI/DockTabBarChrome.h similarity index 100% rename from editor/src/UI/DockTabBarChrome.h rename to mvs/editor/src/UI/DockTabBarChrome.h diff --git a/editor/src/UI/ImGuiBackendBridge.h b/mvs/editor/src/UI/ImGuiBackendBridge.h similarity index 100% rename from editor/src/UI/ImGuiBackendBridge.h rename to mvs/editor/src/UI/ImGuiBackendBridge.h diff --git a/editor/src/UI/ImGuiSession.h b/mvs/editor/src/UI/ImGuiSession.h similarity index 100% rename from editor/src/UI/ImGuiSession.h rename to mvs/editor/src/UI/ImGuiSession.h diff --git a/editor/src/UI/MenuCommand.h b/mvs/editor/src/UI/MenuCommand.h similarity index 100% rename from editor/src/UI/MenuCommand.h rename to mvs/editor/src/UI/MenuCommand.h diff --git a/editor/src/UI/PanelChrome.h b/mvs/editor/src/UI/PanelChrome.h similarity index 100% rename from editor/src/UI/PanelChrome.h rename to mvs/editor/src/UI/PanelChrome.h diff --git a/editor/src/UI/PopupState.h b/mvs/editor/src/UI/PopupState.h similarity index 100% rename from editor/src/UI/PopupState.h rename to mvs/editor/src/UI/PopupState.h diff --git a/editor/src/UI/ProjectGraphicsSettingsDialog.h b/mvs/editor/src/UI/ProjectGraphicsSettingsDialog.h similarity index 100% rename from editor/src/UI/ProjectGraphicsSettingsDialog.h rename to mvs/editor/src/UI/ProjectGraphicsSettingsDialog.h diff --git a/editor/src/UI/PropertyGrid.h b/mvs/editor/src/UI/PropertyGrid.h similarity index 100% rename from editor/src/UI/PropertyGrid.h rename to mvs/editor/src/UI/PropertyGrid.h diff --git a/editor/src/UI/PropertyLayout.h b/mvs/editor/src/UI/PropertyLayout.h similarity index 100% rename from editor/src/UI/PropertyLayout.h rename to mvs/editor/src/UI/PropertyLayout.h diff --git a/editor/src/UI/ReferencePicker.h b/mvs/editor/src/UI/ReferencePicker.h similarity index 100% rename from editor/src/UI/ReferencePicker.h rename to mvs/editor/src/UI/ReferencePicker.h diff --git a/editor/src/UI/ScalarControls.h b/mvs/editor/src/UI/ScalarControls.h similarity index 100% rename from editor/src/UI/ScalarControls.h rename to mvs/editor/src/UI/ScalarControls.h diff --git a/editor/src/UI/SceneStatusWidget.h b/mvs/editor/src/UI/SceneStatusWidget.h similarity index 100% rename from editor/src/UI/SceneStatusWidget.h rename to mvs/editor/src/UI/SceneStatusWidget.h diff --git a/editor/src/UI/SearchText.h b/mvs/editor/src/UI/SearchText.h similarity index 100% rename from editor/src/UI/SearchText.h rename to mvs/editor/src/UI/SearchText.h diff --git a/editor/src/UI/SplitterChrome.h b/mvs/editor/src/UI/SplitterChrome.h similarity index 100% rename from editor/src/UI/SplitterChrome.h rename to mvs/editor/src/UI/SplitterChrome.h diff --git a/editor/src/UI/StyleTokens.h b/mvs/editor/src/UI/StyleTokens.h similarity index 100% rename from editor/src/UI/StyleTokens.h rename to mvs/editor/src/UI/StyleTokens.h diff --git a/editor/src/UI/TreeView.h b/mvs/editor/src/UI/TreeView.h similarity index 100% rename from editor/src/UI/TreeView.h rename to mvs/editor/src/UI/TreeView.h diff --git a/editor/src/UI/UI.h b/mvs/editor/src/UI/UI.h similarity index 100% rename from editor/src/UI/UI.h rename to mvs/editor/src/UI/UI.h diff --git a/editor/src/UI/VectorControls.h b/mvs/editor/src/UI/VectorControls.h similarity index 100% rename from editor/src/UI/VectorControls.h rename to mvs/editor/src/UI/VectorControls.h diff --git a/editor/src/UI/Widgets.h b/mvs/editor/src/UI/Widgets.h similarity index 100% rename from editor/src/UI/Widgets.h rename to mvs/editor/src/UI/Widgets.h diff --git a/editor/src/Utils/FileDialogUtils.h b/mvs/editor/src/Utils/FileDialogUtils.h similarity index 100% rename from editor/src/Utils/FileDialogUtils.h rename to mvs/editor/src/Utils/FileDialogUtils.h diff --git a/editor/src/Utils/ProjectFileUtils.h b/mvs/editor/src/Utils/ProjectFileUtils.h similarity index 100% rename from editor/src/Utils/ProjectFileUtils.h rename to mvs/editor/src/Utils/ProjectFileUtils.h diff --git a/editor/src/Utils/ProjectGraphicsSettings.h b/mvs/editor/src/Utils/ProjectGraphicsSettings.h similarity index 100% rename from editor/src/Utils/ProjectGraphicsSettings.h rename to mvs/editor/src/Utils/ProjectGraphicsSettings.h diff --git a/editor/src/Utils/SceneEditorUtils.h b/mvs/editor/src/Utils/SceneEditorUtils.h similarity index 100% rename from editor/src/Utils/SceneEditorUtils.h rename to mvs/editor/src/Utils/SceneEditorUtils.h diff --git a/editor/src/Utils/UndoUtils.h b/mvs/editor/src/Utils/UndoUtils.h similarity index 100% rename from editor/src/Utils/UndoUtils.h rename to mvs/editor/src/Utils/UndoUtils.h diff --git a/editor/src/Viewport/IViewportHostService.h b/mvs/editor/src/Viewport/IViewportHostService.h similarity index 100% rename from editor/src/Viewport/IViewportHostService.h rename to mvs/editor/src/Viewport/IViewportHostService.h diff --git a/editor/src/Viewport/Passes/SceneViewportEditorOverlayPass.cpp b/mvs/editor/src/Viewport/Passes/SceneViewportEditorOverlayPass.cpp similarity index 100% rename from editor/src/Viewport/Passes/SceneViewportEditorOverlayPass.cpp rename to mvs/editor/src/Viewport/Passes/SceneViewportEditorOverlayPass.cpp diff --git a/editor/src/Viewport/Passes/SceneViewportEditorOverlayPass.h b/mvs/editor/src/Viewport/Passes/SceneViewportEditorOverlayPass.h similarity index 100% rename from editor/src/Viewport/Passes/SceneViewportEditorOverlayPass.h rename to mvs/editor/src/Viewport/Passes/SceneViewportEditorOverlayPass.h diff --git a/editor/src/Viewport/Passes/SceneViewportGridPass.cpp b/mvs/editor/src/Viewport/Passes/SceneViewportGridPass.cpp similarity index 100% rename from editor/src/Viewport/Passes/SceneViewportGridPass.cpp rename to mvs/editor/src/Viewport/Passes/SceneViewportGridPass.cpp diff --git a/editor/src/Viewport/Passes/SceneViewportGridPass.h b/mvs/editor/src/Viewport/Passes/SceneViewportGridPass.h similarity index 100% rename from editor/src/Viewport/Passes/SceneViewportGridPass.h rename to mvs/editor/src/Viewport/Passes/SceneViewportGridPass.h diff --git a/editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.cpp b/mvs/editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.cpp similarity index 100% rename from editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.cpp rename to mvs/editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.cpp diff --git a/editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.h b/mvs/editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.h similarity index 100% rename from editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.h rename to mvs/editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.h diff --git a/editor/src/Viewport/SceneViewportCameraController.h b/mvs/editor/src/Viewport/SceneViewportCameraController.h similarity index 100% rename from editor/src/Viewport/SceneViewportCameraController.h rename to mvs/editor/src/Viewport/SceneViewportCameraController.h diff --git a/editor/src/Viewport/SceneViewportChrome.cpp b/mvs/editor/src/Viewport/SceneViewportChrome.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportChrome.cpp rename to mvs/editor/src/Viewport/SceneViewportChrome.cpp diff --git a/editor/src/Viewport/SceneViewportChrome.h b/mvs/editor/src/Viewport/SceneViewportChrome.h similarity index 100% rename from editor/src/Viewport/SceneViewportChrome.h rename to mvs/editor/src/Viewport/SceneViewportChrome.h diff --git a/editor/src/Viewport/SceneViewportEditorModes.h b/mvs/editor/src/Viewport/SceneViewportEditorModes.h similarity index 100% rename from editor/src/Viewport/SceneViewportEditorModes.h rename to mvs/editor/src/Viewport/SceneViewportEditorModes.h diff --git a/editor/src/Viewport/SceneViewportEditorOverlayData.h b/mvs/editor/src/Viewport/SceneViewportEditorOverlayData.h similarity index 100% rename from editor/src/Viewport/SceneViewportEditorOverlayData.h rename to mvs/editor/src/Viewport/SceneViewportEditorOverlayData.h diff --git a/editor/src/Viewport/SceneViewportHudOverlay.cpp b/mvs/editor/src/Viewport/SceneViewportHudOverlay.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportHudOverlay.cpp rename to mvs/editor/src/Viewport/SceneViewportHudOverlay.cpp diff --git a/editor/src/Viewport/SceneViewportHudOverlay.h b/mvs/editor/src/Viewport/SceneViewportHudOverlay.h similarity index 100% rename from editor/src/Viewport/SceneViewportHudOverlay.h rename to mvs/editor/src/Viewport/SceneViewportHudOverlay.h diff --git a/editor/src/Viewport/SceneViewportInteractionActions.cpp b/mvs/editor/src/Viewport/SceneViewportInteractionActions.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportInteractionActions.cpp rename to mvs/editor/src/Viewport/SceneViewportInteractionActions.cpp diff --git a/editor/src/Viewport/SceneViewportInteractionActions.h b/mvs/editor/src/Viewport/SceneViewportInteractionActions.h similarity index 100% rename from editor/src/Viewport/SceneViewportInteractionActions.h rename to mvs/editor/src/Viewport/SceneViewportInteractionActions.h diff --git a/editor/src/Viewport/SceneViewportInteractionFrame.h b/mvs/editor/src/Viewport/SceneViewportInteractionFrame.h similarity index 100% rename from editor/src/Viewport/SceneViewportInteractionFrame.h rename to mvs/editor/src/Viewport/SceneViewportInteractionFrame.h diff --git a/editor/src/Viewport/SceneViewportInteractionResolver.cpp b/mvs/editor/src/Viewport/SceneViewportInteractionResolver.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportInteractionResolver.cpp rename to mvs/editor/src/Viewport/SceneViewportInteractionResolver.cpp diff --git a/editor/src/Viewport/SceneViewportInteractionResolver.h b/mvs/editor/src/Viewport/SceneViewportInteractionResolver.h similarity index 100% rename from editor/src/Viewport/SceneViewportInteractionResolver.h rename to mvs/editor/src/Viewport/SceneViewportInteractionResolver.h diff --git a/editor/src/Viewport/SceneViewportMath.h b/mvs/editor/src/Viewport/SceneViewportMath.h similarity index 100% rename from editor/src/Viewport/SceneViewportMath.h rename to mvs/editor/src/Viewport/SceneViewportMath.h diff --git a/editor/src/Viewport/SceneViewportMoveGizmo.cpp b/mvs/editor/src/Viewport/SceneViewportMoveGizmo.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportMoveGizmo.cpp rename to mvs/editor/src/Viewport/SceneViewportMoveGizmo.cpp diff --git a/editor/src/Viewport/SceneViewportMoveGizmo.h b/mvs/editor/src/Viewport/SceneViewportMoveGizmo.h similarity index 100% rename from editor/src/Viewport/SceneViewportMoveGizmo.h rename to mvs/editor/src/Viewport/SceneViewportMoveGizmo.h diff --git a/editor/src/Viewport/SceneViewportNavigation.h b/mvs/editor/src/Viewport/SceneViewportNavigation.h similarity index 100% rename from editor/src/Viewport/SceneViewportNavigation.h rename to mvs/editor/src/Viewport/SceneViewportNavigation.h diff --git a/editor/src/Viewport/SceneViewportOrientationGizmo.cpp b/mvs/editor/src/Viewport/SceneViewportOrientationGizmo.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportOrientationGizmo.cpp rename to mvs/editor/src/Viewport/SceneViewportOrientationGizmo.cpp diff --git a/editor/src/Viewport/SceneViewportOrientationGizmo.h b/mvs/editor/src/Viewport/SceneViewportOrientationGizmo.h similarity index 100% rename from editor/src/Viewport/SceneViewportOrientationGizmo.h rename to mvs/editor/src/Viewport/SceneViewportOrientationGizmo.h diff --git a/editor/src/Viewport/SceneViewportOverlayBuilder.cpp b/mvs/editor/src/Viewport/SceneViewportOverlayBuilder.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportOverlayBuilder.cpp rename to mvs/editor/src/Viewport/SceneViewportOverlayBuilder.cpp diff --git a/editor/src/Viewport/SceneViewportOverlayBuilder.h b/mvs/editor/src/Viewport/SceneViewportOverlayBuilder.h similarity index 100% rename from editor/src/Viewport/SceneViewportOverlayBuilder.h rename to mvs/editor/src/Viewport/SceneViewportOverlayBuilder.h diff --git a/editor/src/Viewport/SceneViewportOverlayFrameCache.cpp b/mvs/editor/src/Viewport/SceneViewportOverlayFrameCache.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportOverlayFrameCache.cpp rename to mvs/editor/src/Viewport/SceneViewportOverlayFrameCache.cpp diff --git a/editor/src/Viewport/SceneViewportOverlayFrameCache.h b/mvs/editor/src/Viewport/SceneViewportOverlayFrameCache.h similarity index 100% rename from editor/src/Viewport/SceneViewportOverlayFrameCache.h rename to mvs/editor/src/Viewport/SceneViewportOverlayFrameCache.h diff --git a/editor/src/Viewport/SceneViewportOverlayHandleBuilder.h b/mvs/editor/src/Viewport/SceneViewportOverlayHandleBuilder.h similarity index 100% rename from editor/src/Viewport/SceneViewportOverlayHandleBuilder.h rename to mvs/editor/src/Viewport/SceneViewportOverlayHandleBuilder.h diff --git a/editor/src/Viewport/SceneViewportOverlayHitTester.h b/mvs/editor/src/Viewport/SceneViewportOverlayHitTester.h similarity index 100% rename from editor/src/Viewport/SceneViewportOverlayHitTester.h rename to mvs/editor/src/Viewport/SceneViewportOverlayHitTester.h diff --git a/editor/src/Viewport/SceneViewportOverlayProviders.cpp b/mvs/editor/src/Viewport/SceneViewportOverlayProviders.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportOverlayProviders.cpp rename to mvs/editor/src/Viewport/SceneViewportOverlayProviders.cpp diff --git a/editor/src/Viewport/SceneViewportOverlayProviders.h b/mvs/editor/src/Viewport/SceneViewportOverlayProviders.h similarity index 100% rename from editor/src/Viewport/SceneViewportOverlayProviders.h rename to mvs/editor/src/Viewport/SceneViewportOverlayProviders.h diff --git a/editor/src/Viewport/SceneViewportOverlaySpriteResources.cpp b/mvs/editor/src/Viewport/SceneViewportOverlaySpriteResources.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportOverlaySpriteResources.cpp rename to mvs/editor/src/Viewport/SceneViewportOverlaySpriteResources.cpp diff --git a/editor/src/Viewport/SceneViewportOverlaySpriteResources.h b/mvs/editor/src/Viewport/SceneViewportOverlaySpriteResources.h similarity index 100% rename from editor/src/Viewport/SceneViewportOverlaySpriteResources.h rename to mvs/editor/src/Viewport/SceneViewportOverlaySpriteResources.h diff --git a/editor/src/Viewport/SceneViewportPassSpecs.h b/mvs/editor/src/Viewport/SceneViewportPassSpecs.h similarity index 100% rename from editor/src/Viewport/SceneViewportPassSpecs.h rename to mvs/editor/src/Viewport/SceneViewportPassSpecs.h diff --git a/editor/src/Viewport/SceneViewportPicker.cpp b/mvs/editor/src/Viewport/SceneViewportPicker.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportPicker.cpp rename to mvs/editor/src/Viewport/SceneViewportPicker.cpp diff --git a/editor/src/Viewport/SceneViewportPicker.h b/mvs/editor/src/Viewport/SceneViewportPicker.h similarity index 100% rename from editor/src/Viewport/SceneViewportPicker.h rename to mvs/editor/src/Viewport/SceneViewportPicker.h diff --git a/editor/src/Viewport/SceneViewportRenderPassBundle.cpp b/mvs/editor/src/Viewport/SceneViewportRenderPassBundle.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportRenderPassBundle.cpp rename to mvs/editor/src/Viewport/SceneViewportRenderPassBundle.cpp diff --git a/editor/src/Viewport/SceneViewportRenderPassBundle.h b/mvs/editor/src/Viewport/SceneViewportRenderPassBundle.h similarity index 100% rename from editor/src/Viewport/SceneViewportRenderPassBundle.h rename to mvs/editor/src/Viewport/SceneViewportRenderPassBundle.h diff --git a/editor/src/Viewport/SceneViewportRenderPlan.h b/mvs/editor/src/Viewport/SceneViewportRenderPlan.h similarity index 100% rename from editor/src/Viewport/SceneViewportRenderPlan.h rename to mvs/editor/src/Viewport/SceneViewportRenderPlan.h diff --git a/editor/src/Viewport/SceneViewportResourcePaths.h b/mvs/editor/src/Viewport/SceneViewportResourcePaths.h similarity index 100% rename from editor/src/Viewport/SceneViewportResourcePaths.h rename to mvs/editor/src/Viewport/SceneViewportResourcePaths.h diff --git a/editor/src/Viewport/SceneViewportRotateGizmo.cpp b/mvs/editor/src/Viewport/SceneViewportRotateGizmo.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportRotateGizmo.cpp rename to mvs/editor/src/Viewport/SceneViewportRotateGizmo.cpp diff --git a/editor/src/Viewport/SceneViewportRotateGizmo.h b/mvs/editor/src/Viewport/SceneViewportRotateGizmo.h similarity index 100% rename from editor/src/Viewport/SceneViewportRotateGizmo.h rename to mvs/editor/src/Viewport/SceneViewportRotateGizmo.h diff --git a/editor/src/Viewport/SceneViewportScaleGizmo.cpp b/mvs/editor/src/Viewport/SceneViewportScaleGizmo.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportScaleGizmo.cpp rename to mvs/editor/src/Viewport/SceneViewportScaleGizmo.cpp diff --git a/editor/src/Viewport/SceneViewportScaleGizmo.h b/mvs/editor/src/Viewport/SceneViewportScaleGizmo.h similarity index 100% rename from editor/src/Viewport/SceneViewportScaleGizmo.h rename to mvs/editor/src/Viewport/SceneViewportScaleGizmo.h diff --git a/editor/src/Viewport/SceneViewportShaderPaths.h b/mvs/editor/src/Viewport/SceneViewportShaderPaths.h similarity index 100% rename from editor/src/Viewport/SceneViewportShaderPaths.h rename to mvs/editor/src/Viewport/SceneViewportShaderPaths.h diff --git a/editor/src/Viewport/SceneViewportTransformGizmoCoordinator.cpp b/mvs/editor/src/Viewport/SceneViewportTransformGizmoCoordinator.cpp similarity index 100% rename from editor/src/Viewport/SceneViewportTransformGizmoCoordinator.cpp rename to mvs/editor/src/Viewport/SceneViewportTransformGizmoCoordinator.cpp diff --git a/editor/src/Viewport/SceneViewportTransformGizmoCoordinator.h b/mvs/editor/src/Viewport/SceneViewportTransformGizmoCoordinator.h similarity index 100% rename from editor/src/Viewport/SceneViewportTransformGizmoCoordinator.h rename to mvs/editor/src/Viewport/SceneViewportTransformGizmoCoordinator.h diff --git a/editor/src/Viewport/SceneViewportTransformGizmoFrameBuilder.h b/mvs/editor/src/Viewport/SceneViewportTransformGizmoFrameBuilder.h similarity index 100% rename from editor/src/Viewport/SceneViewportTransformGizmoFrameBuilder.h rename to mvs/editor/src/Viewport/SceneViewportTransformGizmoFrameBuilder.h diff --git a/editor/src/Viewport/ViewportHostRenderFlowUtils.h b/mvs/editor/src/Viewport/ViewportHostRenderFlowUtils.h similarity index 100% rename from editor/src/Viewport/ViewportHostRenderFlowUtils.h rename to mvs/editor/src/Viewport/ViewportHostRenderFlowUtils.h diff --git a/editor/src/Viewport/ViewportHostRenderTargets.h b/mvs/editor/src/Viewport/ViewportHostRenderTargets.h similarity index 100% rename from editor/src/Viewport/ViewportHostRenderTargets.h rename to mvs/editor/src/Viewport/ViewportHostRenderTargets.h diff --git a/editor/src/Viewport/ViewportHostService.h b/mvs/editor/src/Viewport/ViewportHostService.h similarity index 100% rename from editor/src/Viewport/ViewportHostService.h rename to mvs/editor/src/Viewport/ViewportHostService.h diff --git a/editor/src/Viewport/ViewportHostSurfaceUtils.h b/mvs/editor/src/Viewport/ViewportHostSurfaceUtils.h similarity index 100% rename from editor/src/Viewport/ViewportHostSurfaceUtils.h rename to mvs/editor/src/Viewport/ViewportHostSurfaceUtils.h diff --git a/editor/src/Viewport/ViewportObjectIdPicker.h b/mvs/editor/src/Viewport/ViewportObjectIdPicker.h similarity index 100% rename from editor/src/Viewport/ViewportObjectIdPicker.h rename to mvs/editor/src/Viewport/ViewportObjectIdPicker.h diff --git a/editor/src/XCUIBackend/ImGuiTransitionBackend.h b/mvs/editor/src/XCUIBackend/ImGuiTransitionBackend.h similarity index 100% rename from editor/src/XCUIBackend/ImGuiTransitionBackend.h rename to mvs/editor/src/XCUIBackend/ImGuiTransitionBackend.h diff --git a/editor/src/XCUIBackend/XCUIDemoRuntime.h b/mvs/editor/src/XCUIBackend/XCUIDemoRuntime.h similarity index 100% rename from editor/src/XCUIBackend/XCUIDemoRuntime.h rename to mvs/editor/src/XCUIBackend/XCUIDemoRuntime.h diff --git a/editor/src/main.cpp b/mvs/editor/src/main.cpp similarity index 100% rename from editor/src/main.cpp rename to mvs/editor/src/main.cpp diff --git a/editor/src/panels/ConsolePanel.cpp b/mvs/editor/src/panels/ConsolePanel.cpp similarity index 100% rename from editor/src/panels/ConsolePanel.cpp rename to mvs/editor/src/panels/ConsolePanel.cpp diff --git a/editor/src/panels/ConsolePanel.h b/mvs/editor/src/panels/ConsolePanel.h similarity index 100% rename from editor/src/panels/ConsolePanel.h rename to mvs/editor/src/panels/ConsolePanel.h diff --git a/editor/src/panels/GameViewPanel.cpp b/mvs/editor/src/panels/GameViewPanel.cpp similarity index 100% rename from editor/src/panels/GameViewPanel.cpp rename to mvs/editor/src/panels/GameViewPanel.cpp diff --git a/editor/src/panels/GameViewPanel.h b/mvs/editor/src/panels/GameViewPanel.h similarity index 100% rename from editor/src/panels/GameViewPanel.h rename to mvs/editor/src/panels/GameViewPanel.h diff --git a/editor/src/panels/HierarchyPanel.cpp b/mvs/editor/src/panels/HierarchyPanel.cpp similarity index 100% rename from editor/src/panels/HierarchyPanel.cpp rename to mvs/editor/src/panels/HierarchyPanel.cpp diff --git a/editor/src/panels/HierarchyPanel.h b/mvs/editor/src/panels/HierarchyPanel.h similarity index 100% rename from editor/src/panels/HierarchyPanel.h rename to mvs/editor/src/panels/HierarchyPanel.h diff --git a/editor/src/panels/InspectorPanel.cpp b/mvs/editor/src/panels/InspectorPanel.cpp similarity index 100% rename from editor/src/panels/InspectorPanel.cpp rename to mvs/editor/src/panels/InspectorPanel.cpp diff --git a/editor/src/panels/InspectorPanel.h b/mvs/editor/src/panels/InspectorPanel.h similarity index 100% rename from editor/src/panels/InspectorPanel.h rename to mvs/editor/src/panels/InspectorPanel.h diff --git a/editor/src/panels/MaterialInspectorMaterialState.h b/mvs/editor/src/panels/MaterialInspectorMaterialState.h similarity index 100% rename from editor/src/panels/MaterialInspectorMaterialState.h rename to mvs/editor/src/panels/MaterialInspectorMaterialState.h diff --git a/editor/src/panels/MaterialInspectorMaterialStateIO.cpp b/mvs/editor/src/panels/MaterialInspectorMaterialStateIO.cpp similarity index 100% rename from editor/src/panels/MaterialInspectorMaterialStateIO.cpp rename to mvs/editor/src/panels/MaterialInspectorMaterialStateIO.cpp diff --git a/editor/src/panels/MaterialInspectorMaterialStateIO.h b/mvs/editor/src/panels/MaterialInspectorMaterialStateIO.h similarity index 100% rename from editor/src/panels/MaterialInspectorMaterialStateIO.h rename to mvs/editor/src/panels/MaterialInspectorMaterialStateIO.h diff --git a/editor/src/panels/MenuBar.cpp b/mvs/editor/src/panels/MenuBar.cpp similarity index 100% rename from editor/src/panels/MenuBar.cpp rename to mvs/editor/src/panels/MenuBar.cpp diff --git a/editor/src/panels/MenuBar.h b/mvs/editor/src/panels/MenuBar.h similarity index 100% rename from editor/src/panels/MenuBar.h rename to mvs/editor/src/panels/MenuBar.h diff --git a/editor/src/panels/Panel.cpp b/mvs/editor/src/panels/Panel.cpp similarity index 100% rename from editor/src/panels/Panel.cpp rename to mvs/editor/src/panels/Panel.cpp diff --git a/editor/src/panels/Panel.h b/mvs/editor/src/panels/Panel.h similarity index 100% rename from editor/src/panels/Panel.h rename to mvs/editor/src/panels/Panel.h diff --git a/editor/src/panels/PanelCollection.h b/mvs/editor/src/panels/PanelCollection.h similarity index 100% rename from editor/src/panels/PanelCollection.h rename to mvs/editor/src/panels/PanelCollection.h diff --git a/editor/src/panels/ProjectPanel.cpp b/mvs/editor/src/panels/ProjectPanel.cpp similarity index 100% rename from editor/src/panels/ProjectPanel.cpp rename to mvs/editor/src/panels/ProjectPanel.cpp diff --git a/editor/src/panels/ProjectPanel.h b/mvs/editor/src/panels/ProjectPanel.h similarity index 100% rename from editor/src/panels/ProjectPanel.h rename to mvs/editor/src/panels/ProjectPanel.h diff --git a/editor/src/panels/SceneViewPanel.cpp b/mvs/editor/src/panels/SceneViewPanel.cpp similarity index 100% rename from editor/src/panels/SceneViewPanel.cpp rename to mvs/editor/src/panels/SceneViewPanel.cpp diff --git a/editor/src/panels/SceneViewPanel.h b/mvs/editor/src/panels/SceneViewPanel.h similarity index 100% rename from editor/src/panels/SceneViewPanel.h rename to mvs/editor/src/panels/SceneViewPanel.h diff --git a/editor/src/panels/ViewportPanelContent.h b/mvs/editor/src/panels/ViewportPanelContent.h similarity index 100% rename from editor/src/panels/ViewportPanelContent.h rename to mvs/editor/src/panels/ViewportPanelContent.h diff --git a/new_editor/app/Platform/Win32/WindowManager/EditorWindowWorkspaceCoordinator.cpp b/new_editor/app/Platform/Win32/WindowManager/EditorWindowWorkspaceCoordinator.cpp index 9e7b32db..ac5d61df 100644 --- a/new_editor/app/Platform/Win32/WindowManager/EditorWindowWorkspaceCoordinator.cpp +++ b/new_editor/app/Platform/Win32/WindowManager/EditorWindowWorkspaceCoordinator.cpp @@ -80,6 +80,39 @@ std::string DescribeWindowSetState(const UIEditorWindowWorkspaceSet& windowSet) return stream.str(); } +UIEditorWindowWorkspaceSet BuildLiveWindowWorkspaceSet( + const EditorWindowHostRuntime& hostRuntime) { + UIEditorWindowWorkspaceSet windowSet = {}; + + for (const std::unique_ptr& window : hostRuntime.GetWindows()) { + if (window == nullptr || + window->GetHwnd() == nullptr || + window->IsClosing()) { + continue; + } + + UIEditorWindowWorkspaceState state = {}; + state.windowId = std::string(window->GetWindowId()); + state.workspace = window->GetWorkspaceController().GetWorkspace(); + state.session = window->GetWorkspaceController().GetSession(); + if (window->IsPrimary()) { + windowSet.primaryWindowId = state.windowId; + } + windowSet.windows.push_back(std::move(state)); + } + + if (windowSet.activeWindowId.empty()) { + if (!windowSet.primaryWindowId.empty() && + FindUIEditorWindowWorkspaceState(windowSet, windowSet.primaryWindowId) != nullptr) { + windowSet.activeWindowId = windowSet.primaryWindowId; + } else if (!windowSet.windows.empty()) { + windowSet.activeWindowId = windowSet.windows.front().windowId; + } + } + + return windowSet; +} + } // namespace EditorWindowWorkspaceCoordinator::EditorWindowWorkspaceCoordinator( @@ -161,7 +194,9 @@ void EditorWindowWorkspaceCoordinator::RemoveWindowProjection( UIEditorWindowWorkspaceController EditorWindowWorkspaceCoordinator::BuildWorkspaceMutationController() const { - return m_workspaceStore.BuildMutationController(); + return UIEditorWindowWorkspaceController( + m_workspaceStore.GetPanelRegistry(), + BuildLiveWindowWorkspaceSet(m_hostRuntime)); } UIEditorWorkspaceController EditorWindowWorkspaceCoordinator::BuildWorkspaceControllerForWindow(