mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 04:44:11 +02:00
Clean up transition naming
This commit is contained in:
parent
5587193640
commit
833946ceb3
7 changed files with 46 additions and 58 deletions
|
@ -597,7 +597,7 @@ void AvatarManager::handleRemovedAvatar(const AvatarSharedPointer& removedAvatar
|
|||
avatar->fadeOut(transaction, removalReason);
|
||||
|
||||
workload::SpacePointer space = _space;
|
||||
transaction.transitionFinishedOperator(avatar->getRenderItemID(), [space, avatar]() {
|
||||
transaction.setTransitionFinishedOperator(avatar->getRenderItemID(), [space, avatar]() {
|
||||
if (avatar->getLastFadeRequested() != render::Transition::Type::USER_LEAVE_DOMAIN) {
|
||||
// The avatar is using another transition besides the fade-out transition, which means it is still in use.
|
||||
// Deleting the avatar now could cause state issues, so abort deletion and show message.
|
||||
|
|
|
@ -684,10 +684,10 @@ void Avatar::fadeOut(render::Transaction& transaction, KillAvatarReason reason)
|
|||
}
|
||||
|
||||
void Avatar::fade(render::Transaction& transaction, render::Transition::Type type) {
|
||||
transaction.addTransitionToItem(_renderItemID, type);
|
||||
transaction.resetTransitionOnItem(_renderItemID, type);
|
||||
for (auto& attachmentModel : _attachmentModels) {
|
||||
for (auto itemId : attachmentModel->fetchRenderItemIDs()) {
|
||||
transaction.addTransitionToItem(itemId, type, _renderItemID);
|
||||
transaction.resetTransitionOnItem(itemId, type, _renderItemID);
|
||||
}
|
||||
}
|
||||
_lastFadeRequested = type;
|
||||
|
|
|
@ -1056,7 +1056,7 @@ void EntityTreeRenderer::fadeOutRenderable(const EntityRendererPointer& renderab
|
|||
render::Transaction transaction;
|
||||
auto scene = _viewState->getMain3DScene();
|
||||
|
||||
transaction.transitionFinishedOperator(renderable->getRenderItemID(), [scene, renderable]() {
|
||||
transaction.setTransitionFinishedOperator(renderable->getRenderItemID(), [scene, renderable]() {
|
||||
render::Transaction transaction;
|
||||
renderable->removeFromScene(scene, transaction);
|
||||
scene->enqueueTransaction(transaction);
|
||||
|
|
|
@ -1653,7 +1653,7 @@ void PolyVoxEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& s
|
|||
|
||||
#ifdef POLYVOX_ENTITY_USE_FADE_EFFECT
|
||||
if (!_hasTransitioned) {
|
||||
transaction.addTransitionToItem(_renderItemID, render::Transition::ELEMENT_ENTER_DOMAIN);
|
||||
transaction.resetTransitionOnItem(_renderItemID, render::Transition::ELEMENT_ENTER_DOMAIN);
|
||||
_hasTransitioned = true;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -69,7 +69,7 @@ void FadeEditJob::run(const render::RenderContextPointer& renderContext, const F
|
|||
if (transition == nullptr || transition->isFinished || transition->eventType != transitionType) {
|
||||
// Relaunch transition
|
||||
render::Transaction transaction;
|
||||
transaction.addTransitionToItem(id, transitionType);
|
||||
transaction.resetTransitionOnItem(id, transitionType);
|
||||
scene->enqueueTransaction(transaction);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -31,23 +31,19 @@ void Transaction::removeItem(ItemID id) {
|
|||
_removedItems.emplace_back(id);
|
||||
}
|
||||
|
||||
void Transaction::addTransitionToItem(ItemID id, Transition::Type transition, ItemID boundId) {
|
||||
_addedTransitions.emplace_back(id, transition, boundId);
|
||||
void Transaction::resetTransitionOnItem(ItemID id, Transition::Type transition, ItemID boundId) {
|
||||
_resetTransitions.emplace_back(id, transition, boundId);
|
||||
}
|
||||
|
||||
void Transaction::removeTransitionFromItem(ItemID id) {
|
||||
_addedTransitions.emplace_back(id, Transition::NONE, render::Item::INVALID_ITEM_ID);
|
||||
}
|
||||
|
||||
void Transaction::reApplyTransitionToItem(ItemID id) {
|
||||
_reAppliedTransitions.emplace_back(id);
|
||||
_resetTransitions.emplace_back(id, Transition::NONE, render::Item::INVALID_ITEM_ID);
|
||||
}
|
||||
|
||||
void Transaction::queryTransitionOnItem(ItemID id, TransitionQueryFunc func) {
|
||||
_queriedTransitions.emplace_back(id, func);
|
||||
}
|
||||
|
||||
void Transaction::transitionFinishedOperator(ItemID id, TransitionFinishedFunc func) {
|
||||
void Transaction::setTransitionFinishedOperator(ItemID id, TransitionFinishedFunc func) {
|
||||
_transitionFinishedOperators.emplace_back(id, func);
|
||||
}
|
||||
|
||||
|
@ -76,9 +72,8 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
|
|||
size_t removedItemsCount = 0;
|
||||
size_t updatedItemsCount = 0;
|
||||
size_t resetSelectionsCount = 0;
|
||||
size_t addedTransitionsCount = 0;
|
||||
size_t resetTransitionsCount = 0;
|
||||
size_t queriedTransitionsCount = 0;
|
||||
size_t reAppliedTransitionsCount = 0;
|
||||
size_t transitionFinishedOperatorsCount = 0;
|
||||
size_t highlightResetsCount = 0;
|
||||
size_t highlightRemovesCount = 0;
|
||||
|
@ -89,10 +84,9 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
|
|||
removedItemsCount += transaction._removedItems.size();
|
||||
updatedItemsCount += transaction._updatedItems.size();
|
||||
resetSelectionsCount += transaction._resetSelections.size();
|
||||
addedTransitionsCount += transaction._addedTransitions.size();
|
||||
transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size();
|
||||
resetTransitionsCount += transaction._resetTransitions.size();
|
||||
queriedTransitionsCount += transaction._queriedTransitions.size();
|
||||
reAppliedTransitionsCount += transaction._reAppliedTransitions.size();
|
||||
transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size();
|
||||
highlightResetsCount += transaction._highlightResets.size();
|
||||
highlightRemovesCount += transaction._highlightRemoves.size();
|
||||
highlightQueriesCount += transaction._highlightQueries.size();
|
||||
|
@ -102,9 +96,8 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
|
|||
_removedItems.reserve(removedItemsCount);
|
||||
_updatedItems.reserve(updatedItemsCount);
|
||||
_resetSelections.reserve(resetSelectionsCount);
|
||||
_addedTransitions.reserve(addedTransitionsCount);
|
||||
_resetTransitions.reserve(resetTransitionsCount);
|
||||
_queriedTransitions.reserve(queriedTransitionsCount);
|
||||
_reAppliedTransitions.reserve(reAppliedTransitionsCount);
|
||||
_transitionFinishedOperators.reserve(transitionFinishedOperatorsCount);
|
||||
_highlightResets.reserve(highlightResetsCount);
|
||||
_highlightRemoves.reserve(highlightRemovesCount);
|
||||
|
@ -147,10 +140,9 @@ void Transaction::merge(Transaction&& transaction) {
|
|||
moveElements(_removedItems, transaction._removedItems);
|
||||
moveElements(_updatedItems, transaction._updatedItems);
|
||||
moveElements(_resetSelections, transaction._resetSelections);
|
||||
moveElements(_addedTransitions, transaction._addedTransitions);
|
||||
moveElements(_resetTransitions, transaction._resetTransitions);
|
||||
moveElements(_queriedTransitions, transaction._queriedTransitions);
|
||||
moveElements(_transitionFinishedOperators, transaction._transitionFinishedOperators);
|
||||
moveElements(_reAppliedTransitions, transaction._reAppliedTransitions);
|
||||
moveElements(_highlightResets, transaction._highlightResets);
|
||||
moveElements(_highlightRemoves, transaction._highlightRemoves);
|
||||
moveElements(_highlightQueries, transaction._highlightQueries);
|
||||
|
@ -161,9 +153,8 @@ void Transaction::merge(const Transaction& transaction) {
|
|||
copyElements(_removedItems, transaction._removedItems);
|
||||
copyElements(_updatedItems, transaction._updatedItems);
|
||||
copyElements(_resetSelections, transaction._resetSelections);
|
||||
copyElements(_addedTransitions, transaction._addedTransitions);
|
||||
copyElements(_resetTransitions, transaction._resetTransitions);
|
||||
copyElements(_queriedTransitions, transaction._queriedTransitions);
|
||||
copyElements(_reAppliedTransitions, transaction._reAppliedTransitions);
|
||||
copyElements(_transitionFinishedOperators, transaction._transitionFinishedOperators);
|
||||
copyElements(_highlightResets, transaction._highlightResets);
|
||||
copyElements(_highlightRemoves, transaction._highlightRemoves);
|
||||
|
@ -175,10 +166,9 @@ void Transaction::clear() {
|
|||
_removedItems.clear();
|
||||
_updatedItems.clear();
|
||||
_resetSelections.clear();
|
||||
_addedTransitions.clear();
|
||||
_resetTransitions.clear();
|
||||
_queriedTransitions.clear();
|
||||
_transitionFinishedOperators.clear();
|
||||
_reAppliedTransitions.clear();
|
||||
_highlightResets.clear();
|
||||
_highlightRemoves.clear();
|
||||
_highlightQueries.clear();
|
||||
|
@ -278,8 +268,7 @@ void Scene::processTransactionFrame(const Transaction& transaction) {
|
|||
removeItems(transaction._removedItems);
|
||||
|
||||
// add transitions
|
||||
transitionItems(transaction._addedTransitions);
|
||||
reApplyTransitions(transaction._reAppliedTransitions);
|
||||
resetTransitionItems(transaction._resetTransitions);
|
||||
queryTransitionItems(transaction._queriedTransitions);
|
||||
resetTransitionFinishedOperator(transaction._transitionFinishedOperators);
|
||||
|
||||
|
@ -384,7 +373,7 @@ void Scene::updateItems(const Transaction::Updates& transactions) {
|
|||
}
|
||||
}
|
||||
|
||||
void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
|
||||
void Scene::resetTransitionItems(const Transaction::TransitionResets& transactions) {
|
||||
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
|
||||
|
||||
if (!transitionStage) {
|
||||
|
@ -420,15 +409,6 @@ void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
|
|||
}
|
||||
}
|
||||
|
||||
void Scene::reApplyTransitions(const Transaction::TransitionReApplies& transactions) {
|
||||
for (auto itemId : transactions) {
|
||||
// Access the true item
|
||||
const auto& item = _items[itemId];
|
||||
auto transitionId = item.getTransitionId();
|
||||
setItemTransition(itemId, transitionId);
|
||||
}
|
||||
}
|
||||
|
||||
void Scene::queryTransitionItems(const Transaction::TransitionQueries& transactions) {
|
||||
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
|
||||
|
||||
|
|
|
@ -50,20 +50,18 @@ public:
|
|||
void resetItem(ItemID id, const PayloadPointer& payload);
|
||||
void removeItem(ItemID id);
|
||||
bool hasRemovedItems() const { return !_removedItems.empty(); }
|
||||
|
||||
void addTransitionToItem(ItemID id, Transition::Type transition, ItemID boundId = render::Item::INVALID_ITEM_ID);
|
||||
void removeTransitionFromItem(ItemID id);
|
||||
void reApplyTransitionToItem(ItemID id);
|
||||
void queryTransitionOnItem(ItemID id, TransitionQueryFunc func);
|
||||
void transitionFinishedOperator(ItemID id, TransitionFinishedFunc func);
|
||||
|
||||
template <class T> void updateItem(ItemID id, std::function<void(T&)> func) {
|
||||
updateItem(id, std::make_shared<UpdateFunctor<T>>(func));
|
||||
}
|
||||
|
||||
void updateItem(ItemID id, const UpdateFunctorPointer& functor);
|
||||
void updateItem(ItemID id) { updateItem(id, nullptr); }
|
||||
|
||||
// Transition (applied to an item) transactions
|
||||
void resetTransitionOnItem(ItemID id, Transition::Type transition, ItemID boundId = render::Item::INVALID_ITEM_ID);
|
||||
void removeTransitionFromItem(ItemID id);
|
||||
void setTransitionFinishedOperator(ItemID id, TransitionFinishedFunc func);
|
||||
void queryTransitionOnItem(ItemID id, TransitionQueryFunc func);
|
||||
|
||||
// Selection transactions
|
||||
void resetSelection(const Selection& selection);
|
||||
|
||||
|
@ -83,11 +81,14 @@ protected:
|
|||
using Reset = std::tuple<ItemID, PayloadPointer>;
|
||||
using Remove = ItemID;
|
||||
using Update = std::tuple<ItemID, UpdateFunctorPointer>;
|
||||
using TransitionAdd = std::tuple<ItemID, Transition::Type, ItemID>;
|
||||
using TransitionQuery = std::tuple<ItemID, TransitionQueryFunc>;
|
||||
|
||||
using TransitionReset = std::tuple<ItemID, Transition::Type, ItemID>;
|
||||
using TransitionRemove = ItemID;
|
||||
using TransitionFinishedOperator = std::tuple<ItemID, TransitionFinishedFunc>;
|
||||
using TransitionReApply = ItemID;
|
||||
using TransitionQuery = std::tuple<ItemID, TransitionQueryFunc>;
|
||||
|
||||
using SelectionReset = Selection;
|
||||
|
||||
using HighlightReset = std::tuple<std::string, HighlightStyle>;
|
||||
using HighlightRemove = std::string;
|
||||
using HighlightQuery = std::tuple<std::string, SelectionHighlightQueryFunc>;
|
||||
|
@ -95,11 +96,14 @@ protected:
|
|||
using Resets = std::vector<Reset>;
|
||||
using Removes = std::vector<Remove>;
|
||||
using Updates = std::vector<Update>;
|
||||
using TransitionAdds = std::vector<TransitionAdd>;
|
||||
using TransitionQueries = std::vector<TransitionQuery>;
|
||||
|
||||
using TransitionResets = std::vector<TransitionReset>;
|
||||
using TransitionRemoves = std::vector<TransitionRemove>;
|
||||
using TransitionFinishedOperators = std::vector<TransitionFinishedOperator>;
|
||||
using TransitionReApplies = std::vector<TransitionReApply>;
|
||||
using TransitionQueries = std::vector<TransitionQuery>;
|
||||
|
||||
using SelectionResets = std::vector<SelectionReset>;
|
||||
|
||||
using HighlightResets = std::vector<HighlightReset>;
|
||||
using HighlightRemoves = std::vector<HighlightRemove>;
|
||||
using HighlightQueries = std::vector<HighlightQuery>;
|
||||
|
@ -107,11 +111,14 @@ protected:
|
|||
Resets _resetItems;
|
||||
Removes _removedItems;
|
||||
Updates _updatedItems;
|
||||
TransitionAdds _addedTransitions;
|
||||
TransitionQueries _queriedTransitions;
|
||||
TransitionReApplies _reAppliedTransitions;
|
||||
|
||||
TransitionResets _resetTransitions;
|
||||
TransitionRemoves _removeTransitions;
|
||||
TransitionFinishedOperators _transitionFinishedOperators;
|
||||
TransitionQueries _queriedTransitions;
|
||||
|
||||
SelectionResets _resetSelections;
|
||||
|
||||
HighlightResets _highlightResets;
|
||||
HighlightRemoves _highlightRemoves;
|
||||
HighlightQueries _highlightQueries;
|
||||
|
@ -215,9 +222,10 @@ protected:
|
|||
void resetTransitionFinishedOperator(const Transaction::TransitionFinishedOperators& transactions);
|
||||
void removeItems(const Transaction::Removes& transactions);
|
||||
void updateItems(const Transaction::Updates& transactions);
|
||||
void transitionItems(const Transaction::TransitionAdds& transactions);
|
||||
void reApplyTransitions(const Transaction::TransitionReApplies& transactions);
|
||||
|
||||
void resetTransitionItems(const Transaction::TransitionResets& transactions);
|
||||
void queryTransitionItems(const Transaction::TransitionQueries& transactions);
|
||||
|
||||
void resetHighlights(const Transaction::HighlightResets& transactions);
|
||||
void removeHighlights(const Transaction::HighlightRemoves& transactions);
|
||||
void queryHighlights(const Transaction::HighlightQueries& transactions);
|
||||
|
|
Loading…
Reference in a new issue