Refactor scene viewport state into local sessions

This commit is contained in:
2026-04-29 14:13:47 +08:00
parent da6f37dafe
commit 212d4016e0
16 changed files with 353 additions and 380 deletions

View File

@@ -9,6 +9,7 @@ void SceneViewportFeature::Initialize(
const EditorIconService* iconService,
EditorSceneViewportRuntime& sceneViewportRuntime) {
m_sceneViewportRuntime = &sceneViewportRuntime;
m_session.Reset();
m_controller.Initialize(iconService);
}
@@ -29,7 +30,7 @@ void SceneViewportFeature::SetCommandFocusService(
void SceneViewportFeature::SyncRenderRequest(EditorSceneRuntime& sceneRuntime) {
if (m_sceneViewportRuntime != nullptr) {
m_sceneViewportRuntime->SetRenderRequest(
sceneRuntime.BuildSceneViewportRenderRequest());
m_session.BuildRenderRequest(sceneRuntime));
}
}
@@ -43,6 +44,7 @@ void SceneViewportFeature::Update(
m_controller.Update(
sceneRuntime,
m_session,
m_sceneViewportRuntime->GetObjectPicker(),
composeState,
composeFrame);