From 833946ceb381319059e4a4f44d2a63697480217d Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Tue, 4 Jun 2019 17:46:07 -0700 Subject: [PATCH] Clean up transition naming --- interface/src/avatar/AvatarManager.cpp | 2 +- .../src/avatars-renderer/Avatar.cpp | 4 +- .../src/EntityTreeRenderer.cpp | 2 +- .../src/RenderablePolyVoxEntityItem.cpp | 2 +- libraries/render-utils/src/FadeEffectJobs.cpp | 2 +- libraries/render/src/render/Scene.cpp | 46 ++++++------------- libraries/render/src/render/Scene.h | 46 +++++++++++-------- 7 files changed, 46 insertions(+), 58 deletions(-) diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index f153f66799..bb8b7ba7f4 100755 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -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. diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 78481fdc2e..fb7eddd582 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -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; diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index ae8473e544..1ecbcb0c8b 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -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); diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp index 183d2881f3..adf0a2d162 100644 --- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp @@ -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 diff --git a/libraries/render-utils/src/FadeEffectJobs.cpp b/libraries/render-utils/src/FadeEffectJobs.cpp index 1e2ea2bc15..43206e77fa 100644 --- a/libraries/render-utils/src/FadeEffectJobs.cpp +++ b/libraries/render-utils/src/FadeEffectJobs.cpp @@ -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); } }); diff --git a/libraries/render/src/render/Scene.cpp b/libraries/render/src/render/Scene.cpp index 3fd52d5fa2..bb43dcd2f5 100644 --- a/libraries/render/src/render/Scene.cpp +++ b/libraries/render/src/render/Scene.cpp @@ -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& 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& 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& 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::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::getName()); diff --git a/libraries/render/src/render/Scene.h b/libraries/render/src/render/Scene.h index 5f4a209b66..3cf59bbbcc 100644 --- a/libraries/render/src/render/Scene.h +++ b/libraries/render/src/render/Scene.h @@ -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 void updateItem(ItemID id, std::function func) { updateItem(id, std::make_shared>(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; using Remove = ItemID; using Update = std::tuple; - using TransitionAdd = std::tuple; - using TransitionQuery = std::tuple; + + using TransitionReset = std::tuple; + using TransitionRemove = ItemID; using TransitionFinishedOperator = std::tuple; - using TransitionReApply = ItemID; + using TransitionQuery = std::tuple; + using SelectionReset = Selection; + using HighlightReset = std::tuple; using HighlightRemove = std::string; using HighlightQuery = std::tuple; @@ -95,11 +96,14 @@ protected: using Resets = std::vector; using Removes = std::vector; using Updates = std::vector; - using TransitionAdds = std::vector; - using TransitionQueries = std::vector; + + using TransitionResets = std::vector; + using TransitionRemoves = std::vector; using TransitionFinishedOperators = std::vector; - using TransitionReApplies = std::vector; + using TransitionQueries = std::vector; + using SelectionResets = std::vector; + using HighlightResets = std::vector; using HighlightRemoves = std::vector; using HighlightQueries = std::vector; @@ -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);