int FrameViewRequest::markDependencyAsRendered(const TreeRenderExecutionDataPtr& request, const FrameViewRequestPtr& deps) { FrameViewRequestStatusEnum status = getStatus(); QMutexLocker k(&_imp->lock); PerLaunchRequestData& data = _imp->requestData[request]; // If this FrameViewRequest is pass-through, copy results from the pass-through dependency if (status == eFrameViewRequestStatusPassThrough) { assert(deps && data.dependencies.size() == 1 && *data.dependencies.begin() == deps); _imp->requestedScaleImage = deps->getRequestedScaleImagePlane(); _imp->fullScaleImage = _imp->requestedScaleImage; _imp->finalRoi = deps->getCurrentRoI(); } std::set<FrameViewRequestPtr>::iterator foundDep = data.dependencies.find(deps); if (foundDep != data.dependencies.end()) { // The dependency might not exist if we did not call addDependency. // This may happen if we were aborted data.dependencies.erase(foundDep); data.renderedDependencies.insert(deps); } return data.dependencies.size(); }