mirror of
https://github.com/lubosz/overte.git
synced 2025-04-14 03:06:20 +02:00
fix fade out
This commit is contained in:
parent
1d1510e18e
commit
df1a848811
2 changed files with 16 additions and 14 deletions
|
@ -763,8 +763,7 @@ void Avatar::fadeOut(render::ScenePointer scene, KillAvatarReason reason) {
|
|||
|
||||
if (reason == KillAvatarReason::YourAvatarEnteredTheirBubble) {
|
||||
transitionType = render::Transition::BUBBLE_ISECT_TRESPASSER;
|
||||
}
|
||||
else if (reason == KillAvatarReason::TheirAvatarEnteredYourBubble) {
|
||||
} else if (reason == KillAvatarReason::TheirAvatarEnteredYourBubble) {
|
||||
transitionType = render::Transition::BUBBLE_ISECT_OWNER;
|
||||
}
|
||||
fade(transaction, transitionType);
|
||||
|
@ -782,14 +781,15 @@ void Avatar::fade(render::Transaction& transaction, render::Transition::Type typ
|
|||
}
|
||||
|
||||
void Avatar::updateFadingStatus() {
|
||||
render::Transaction transaction;
|
||||
transaction.queryTransitionOnItem(_renderItemID, [this](render::ItemID id, const render::Transition* transition) {
|
||||
if (!transition || transition->isFinished) {
|
||||
AbstractViewStateInterface::instance()->getMain3DScene()->resetItemTransition(id);
|
||||
_isFading = false;
|
||||
}
|
||||
});
|
||||
AbstractViewStateInterface::instance()->getMain3DScene()->enqueueTransaction(transaction);
|
||||
if (_isFading) {
|
||||
render::Transaction transaction;
|
||||
transaction.queryTransitionOnItem(_renderItemID, [this](render::ItemID id, const render::Transition* transition) {
|
||||
if (!transition || transition->isFinished) {
|
||||
_isFading = false;
|
||||
}
|
||||
});
|
||||
AbstractViewStateInterface::instance()->getMain3DScene()->enqueueTransaction(transaction);
|
||||
}
|
||||
}
|
||||
|
||||
void Avatar::removeFromScene(AvatarSharedPointer self, const render::ScenePointer& scene, render::Transaction& transaction) {
|
||||
|
|
|
@ -391,15 +391,17 @@ void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
|
|||
|
||||
// Remove pre-existing transition, if need be
|
||||
if (!TransitionStage::isIndexInvalid(transitionId)) {
|
||||
transitionStage->removeTransition(transitionId);
|
||||
transitionId = TransitionStage::INVALID_INDEX;
|
||||
resetItemTransition(itemId);
|
||||
}
|
||||
|
||||
// Add a new one.
|
||||
if (transitionType != Transition::NONE) {
|
||||
transitionId = transitionStage->addTransition(itemId, transitionType, boundId);
|
||||
}
|
||||
|
||||
setItemTransition(itemId, transitionId);
|
||||
if (!TransitionStage::isIndexInvalid(transitionId)) {
|
||||
setItemTransition(itemId, transitionId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue