From 200cf7aacb95b2eaee0efa0aca5953f3d8d501ea Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Thu, 2 May 2019 14:31:40 -0700 Subject: [PATCH] try to fix transition crash --- libraries/render/src/render/Scene.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libraries/render/src/render/Scene.cpp b/libraries/render/src/render/Scene.cpp index 16d1d49d9f..4f6fe3e36a 100644 --- a/libraries/render/src/render/Scene.cpp +++ b/libraries/render/src/render/Scene.cpp @@ -392,6 +392,10 @@ void Scene::updateItems(const Transaction::Updates& transactions) { void Scene::transitionItems(const Transaction::TransitionAdds& transactions) { auto transitionStage = getStage(TransitionStage::getName()); + if (!transitionStage) { + return; + } + for (auto& add : transactions) { auto itemId = std::get<0>(add); // Access the true item @@ -433,6 +437,10 @@ void Scene::reApplyTransitions(const Transaction::TransitionReApplies& transacti void Scene::queryTransitionItems(const Transaction::TransitionQueries& transactions) { auto transitionStage = getStage(TransitionStage::getName()); + if (!transitionStage) { + return; + } + for (auto& query : transactions) { auto itemId = std::get<0>(query); // Access the true item @@ -553,11 +561,14 @@ void Scene::setItemTransition(ItemID itemId, Index transitionId) { } void Scene::resetItemTransition(ItemID itemId) { + auto transitionStage = getStage(TransitionStage::getName()); + if (!transitionStage) { + return; + } + auto& item = _items[itemId]; TransitionStage::Index transitionId = item.getTransitionId(); if (!render::TransitionStage::isIndexInvalid(transitionId)) { - auto transitionStage = getStage(TransitionStage::getName()); - auto finishedOperators = _transitionFinishedOperatorMap[transitionId]; for (auto finishedOperator : finishedOperators) { if (finishedOperator) {