mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 19:03:07 +02:00
Merge pull request #15706 from sabrina-shanman/bug_avatar_res-state
(BUGZ-429) Fix stuck transition due to removing sub render items before parent
This commit is contained in:
commit
96a9092847
1 changed files with 12 additions and 6 deletions
|
@ -558,6 +558,10 @@ void Scene::removeItemTransition(ItemID itemId) {
|
||||||
auto& item = _items[itemId];
|
auto& item = _items[itemId];
|
||||||
TransitionStage::Index transitionId = item.getTransitionId();
|
TransitionStage::Index transitionId = item.getTransitionId();
|
||||||
if (!render::TransitionStage::isIndexInvalid(transitionId)) {
|
if (!render::TransitionStage::isIndexInvalid(transitionId)) {
|
||||||
|
const auto& transition = transitionStage->getTransition(transitionId);
|
||||||
|
const auto transitionOwner = transition.itemId;
|
||||||
|
if (transitionOwner == itemId) {
|
||||||
|
// No more items will be using this transition. Clean it up.
|
||||||
auto finishedOperators = _transitionFinishedOperatorMap[transitionId];
|
auto finishedOperators = _transitionFinishedOperatorMap[transitionId];
|
||||||
for (auto finishedOperator : finishedOperators) {
|
for (auto finishedOperator : finishedOperators) {
|
||||||
if (finishedOperator) {
|
if (finishedOperator) {
|
||||||
|
@ -566,6 +570,8 @@ void Scene::removeItemTransition(ItemID itemId) {
|
||||||
}
|
}
|
||||||
_transitionFinishedOperatorMap.erase(transitionId);
|
_transitionFinishedOperatorMap.erase(transitionId);
|
||||||
transitionStage->removeTransition(transitionId);
|
transitionStage->removeTransition(transitionId);
|
||||||
|
}
|
||||||
|
|
||||||
setItemTransition(itemId, render::TransitionStage::INVALID_INDEX);
|
setItemTransition(itemId, render::TransitionStage::INVALID_INDEX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue