| 599 | } // PrecompNodePrivate::createReadNode |
| 600 | |
| 601 | void |
| 602 | PrecompNodePrivate::refreshOutputNode() |
| 603 | { |
| 604 | bool usePreRender = enablePreRenderKnob.lock()->getValue(); |
| 605 | NodePtr outputnode; |
| 606 | |
| 607 | if (!usePreRender) { |
| 608 | KnobStringPtr outputNodeKnob = outputNodeNameKnob.lock(); |
| 609 | std::string outputNodeName = outputNodeKnob->getValue(); |
| 610 | |
| 611 | outputnode = app.lock()->getProject()->getNodeByFullySpecifiedName(outputNodeName); |
| 612 | } |
| 613 | |
| 614 | //Clear any persistent message set |
| 615 | _publicInterface->clearPersistentMessage(false); |
| 616 | |
| 617 | { |
| 618 | QMutexLocker k(&dataMutex); |
| 619 | outputNode = outputnode; |
| 620 | } |
| 621 | |
| 622 | ///Notify outputs that the node has changed |
| 623 | std::map<NodePtr, int> outputs; |
| 624 | NodePtr thisNode = _publicInterface->getNode(); |
| 625 | thisNode->getOutputsConnectedToThisNode(&outputs); |
| 626 | |
| 627 | for (std::map<NodePtr, int>::iterator it = outputs.begin(); it != outputs.end(); ++it) { |
| 628 | it->first->onInputChanged(it->second); |
| 629 | } |
| 630 | } |
| 631 | |
| 632 | void |
| 633 | PrecompNodePrivate::setFirstAndLastFrame() |
no test coverage detected