new_editor: isolate project panel state and harden runtime reset

This commit is contained in:
2026-04-22 00:19:35 +08:00
parent fff33185b9
commit 8bfca5e8f2
11 changed files with 144 additions and 61 deletions

View File

@@ -170,15 +170,22 @@ std::string_view GetSceneToolInteractionLockName(SceneToolInteractionLock lock)
}
}
bool EditorSceneRuntime::Initialize(const std::filesystem::path& projectRoot) {
m_projectRoot = projectRoot;
m_ownedSelectionService = {};
void EditorSceneRuntime::Reset() {
m_projectRoot.clear();
m_startupSceneResult = {};
m_ownedSelectionService.ClearSelection();
m_selectionService = &m_ownedSelectionService;
m_sceneViewCamera = {};
m_toolState = {};
ResetTransformEditHistory();
m_inspectorRevision = 0u;
}
bool EditorSceneRuntime::Initialize(const std::filesystem::path& projectRoot) {
Reset();
m_projectRoot = projectRoot;
m_startupSceneResult = EnsureEditorStartupScene(projectRoot);
EnsureSceneViewCamera();
ResetTransformEditHistory();
m_toolState = {};
RefreshScene();
return m_startupSceneResult.ready;
}