| 2602 | } |
| 2603 | |
| 2604 | void |
| 2605 | Node::quitAnyProcessing_non_blocking() |
| 2606 | { |
| 2607 | //If this effect has a RenderEngine, make sure it is finished |
| 2608 | OutputEffectInstance* isOutput = dynamic_cast<OutputEffectInstance*>( _imp->effect.get() ); |
| 2609 | |
| 2610 | if (isOutput) { |
| 2611 | isOutput->getRenderEngine()->quitEngine(true); |
| 2612 | } |
| 2613 | |
| 2614 | //Returns when the preview is done computign |
| 2615 | _imp->abortPreview_non_blocking(); |
| 2616 | |
| 2617 | boost::shared_ptr<TrackerContext> trackerContext = getTrackerContext(); |
| 2618 | if (trackerContext) { |
| 2619 | trackerContext->quitTrackerThread_non_blocking(); |
| 2620 | } |
| 2621 | |
| 2622 | if ( isRotoPaintingNode() ) { |
| 2623 | NodesList rotopaintNodes; |
| 2624 | getRotoContext()->getRotoPaintTreeNodes(&rotopaintNodes); |
| 2625 | for (NodesList::iterator it = rotopaintNodes.begin(); it != rotopaintNodes.end(); ++it) { |
| 2626 | (*it)->quitAnyProcessing_non_blocking(); |
| 2627 | } |
| 2628 | } |
| 2629 | } |
| 2630 | |
| 2631 | void |
| 2632 | Node::quitAnyProcessing_blocking(bool allowThreadsToRestart) |
no test coverage detected