| 5649 | } |
| 5650 | |
| 5651 | bool |
| 5652 | EffectInstance::refreshMetadata_recursive(std::list<Node*> & markedNodes) |
| 5653 | { |
| 5654 | NodePtr node = getNode(); |
| 5655 | std::list<Node*>::iterator found = std::find( markedNodes.begin(), markedNodes.end(), node.get() ); |
| 5656 | |
| 5657 | if ( found != markedNodes.end() ) { |
| 5658 | return false; |
| 5659 | } |
| 5660 | |
| 5661 | if (_imp->runningClipPreferences) { |
| 5662 | return false; |
| 5663 | } |
| 5664 | |
| 5665 | ClipPreferencesRunning_RAII runningflag_(this); |
| 5666 | bool ret = refreshMetadata_public(false); |
| 5667 | node->refreshIdentityState(); |
| 5668 | |
| 5669 | if ( !node->duringInputChangedAction() ) { |
| 5670 | ///The channels selector refreshing is already taken care of in the inputChanged action |
| 5671 | node->refreshChannelSelectors(); |
| 5672 | } |
| 5673 | |
| 5674 | markedNodes.push_back( node.get() ); |
| 5675 | |
| 5676 | NodesList outputs; |
| 5677 | node->getOutputsWithGroupRedirection(outputs); |
| 5678 | for (NodesList::const_iterator it = outputs.begin(); it != outputs.end(); ++it) { |
| 5679 | (*it)->getEffectInstance()->refreshMetadata_recursive(markedNodes); |
| 5680 | } |
| 5681 | |
| 5682 | return ret; |
| 5683 | } |
| 5684 | |
| 5685 | void |
| 5686 | EffectInstance::setDefaultMetadata() |
nothing calls this directly
no test coverage detected