Unify editor scene edit history
This commit is contained in:
@@ -2196,6 +2196,32 @@ public:
|
||||
return ResolvePrimaryScene(m_sceneManager);
|
||||
}
|
||||
|
||||
std::string CaptureActiveSceneSnapshot() const override {
|
||||
Scene* scene = ResolvePrimaryScene(m_sceneManager);
|
||||
return scene != nullptr
|
||||
? scene->SerializeToString()
|
||||
: std::string();
|
||||
}
|
||||
|
||||
bool RestoreActiveSceneSnapshot(const std::string& snapshot) override {
|
||||
if (snapshot.empty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Scene* scene = ResolvePrimaryScene(m_sceneManager);
|
||||
if (scene == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
{
|
||||
ResourceManager::ScopedDeferredSceneLoad deferredSceneLoad(
|
||||
m_resourceManager);
|
||||
scene->DeserializeFromString(snapshot);
|
||||
}
|
||||
m_sceneManager.SetActiveScene(scene);
|
||||
return true;
|
||||
}
|
||||
|
||||
std::unique_ptr<EditorScenePlaySession> BeginPlaySession() override {
|
||||
Scene* editScene = ResolvePrimaryScene(m_sceneManager);
|
||||
if (editScene == nullptr) {
|
||||
|
||||
Reference in New Issue
Block a user