| 2139 | } |
| 2140 | |
| 2141 | EffectInstance::RenderingFunctorRetEnum |
| 2142 | EffectInstance::Implementation::tiledRenderingFunctor(EffectInstance::Implementation::TiledRenderingFunctorArgs & args, |
| 2143 | const RectToRender & specificData, |
| 2144 | QThread* callingThread) |
| 2145 | { |
| 2146 | ///Make the thread-storage live as long as the render action is called if we're in a newly launched thread in eRenderSafetyFullySafeFrame mode |
| 2147 | QThread* curThread = QThread::currentThread(); |
| 2148 | |
| 2149 | if (callingThread != curThread) { |
| 2150 | ///We are in the case of host frame threading, see kOfxImageEffectPluginPropHostFrameThreading |
| 2151 | ///We know that in the renderAction, TLS will be needed, so we do a deep copy of the TLS from the caller thread |
| 2152 | ///to this thread |
| 2153 | appPTR->getAppTLS()->copyTLS(callingThread, curThread); |
| 2154 | } |
| 2155 | |
| 2156 | |
| 2157 | EffectInstance::RenderingFunctorRetEnum ret = tiledRenderingFunctor(specificData, |
| 2158 | args.renderFullScaleThenDownscale, |
| 2159 | args.isSequentialRender, |
| 2160 | args.isRenderResponseToUserInteraction, |
| 2161 | args.firstFrame, |
| 2162 | args.lastFrame, |
| 2163 | args.preferredInput, |
| 2164 | args.mipMapLevel, |
| 2165 | args.renderMappedMipMapLevel, |
| 2166 | args.rod, |
| 2167 | args.time, |
| 2168 | args.view, |
| 2169 | args.par, |
| 2170 | args.byPassCache, |
| 2171 | args.outputClipPrefDepth, |
| 2172 | args.outputClipPrefsComps, |
| 2173 | args.compsNeeded, |
| 2174 | args.processChannels, |
| 2175 | args.planes); |
| 2176 | |
| 2177 | //Exit of the host frame threading thread |
| 2178 | appPTR->getAppTLS()->cleanupTLSForThread(); |
| 2179 | |
| 2180 | return ret; |
| 2181 | } |
| 2182 | |
| 2183 | EffectInstance::RenderingFunctorRetEnum |
| 2184 | EffectInstance::Implementation::tiledRenderingFunctor(const RectToRender & rectToRender, |
no test coverage detected