Add deferred async scene asset loading
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include "Core/EventBus.h"
|
||||
#include "Core/EditorEvents.h"
|
||||
#include "Utils/ProjectFileUtils.h"
|
||||
#include <XCEngine/Core/Asset/ResourceManager.h>
|
||||
#include <XCEngine/Components/ComponentFactoryRegistry.h>
|
||||
#include <XCEngine/Components/CameraComponent.h>
|
||||
#include <XCEngine/Components/LightComponent.h>
|
||||
@@ -192,7 +193,10 @@ bool SceneManager::RestoreSceneSnapshot(const SceneSnapshot& snapshot) {
|
||||
}
|
||||
|
||||
auto scene = std::make_unique<::XCEngine::Components::Scene>();
|
||||
scene->DeserializeFromString(snapshot.sceneData);
|
||||
{
|
||||
::XCEngine::Resources::ResourceManager::ScopedDeferredSceneLoad deferredLoadScope;
|
||||
scene->DeserializeFromString(snapshot.sceneData);
|
||||
}
|
||||
|
||||
m_scene = std::move(scene);
|
||||
m_clipboard.reset();
|
||||
@@ -245,7 +249,10 @@ bool SceneManager::LoadScene(const std::string& filePath) {
|
||||
}
|
||||
|
||||
auto scene = std::make_unique<::XCEngine::Components::Scene>();
|
||||
scene->Load(filePath);
|
||||
{
|
||||
::XCEngine::Resources::ResourceManager::ScopedDeferredSceneLoad deferredLoadScope;
|
||||
scene->Load(filePath);
|
||||
}
|
||||
|
||||
m_scene = std::move(scene);
|
||||
m_clipboard.reset();
|
||||
|
||||
Reference in New Issue
Block a user