| 1754 | } |
| 1755 | |
| 1756 | bool |
| 1757 | TrackSchedulerPrivate::trackStepFunctor(int trackIndex, |
| 1758 | const TrackArgs& args, |
| 1759 | int time) |
| 1760 | { |
| 1761 | assert( trackIndex >= 0 && trackIndex < args.getNumTracks() ); |
| 1762 | const std::vector<TrackMarkerAndOptionsPtr>& tracks = args.getTracks(); |
| 1763 | const TrackMarkerAndOptionsPtr& track = tracks[trackIndex]; |
| 1764 | |
| 1765 | if ( !track->natronMarker->isEnabled(time) ) { |
| 1766 | return false; |
| 1767 | } |
| 1768 | |
| 1769 | TrackMarkerPM* isTrackerPM = dynamic_cast<TrackMarkerPM*>( track->natronMarker.get() ); |
| 1770 | bool ret; |
| 1771 | if (isTrackerPM) { |
| 1772 | ret = TrackerContextPrivate::trackStepTrackerPM(isTrackerPM, args, time); |
| 1773 | } else { |
| 1774 | ret = TrackerContextPrivate::trackStepLibMV(trackIndex, args, time); |
| 1775 | } |
| 1776 | |
| 1777 | // Disable the marker since it failed to track |
| 1778 | if (!ret && args.isAutoKeyingEnabledParamEnabled()) { |
| 1779 | track->natronMarker->setEnabledAtTime(time, false); |
| 1780 | } |
| 1781 | |
| 1782 | appPTR->getAppTLS()->cleanupTLSForThread(); |
| 1783 | |
| 1784 | return ret; |
| 1785 | } |
| 1786 | |
| 1787 | NATRON_NAMESPACE_ANONYMOUS_ENTER |
| 1788 |
nothing calls this directly
no test coverage detected