void PathNativeRenderThread::RenderThreadImpl(PathNativeRenderThread *renderThread) { cerr << "[PathNativeRenderThread::" << renderThread->threadIndex << "] Rendering thread started" << endl; try { RayBuffer *rayBuffer = renderThread->rayBuffer; PathIntegrator *pathIntegrator = renderThread->pathIntegrator; NativeThreadIntersectionDevice *intersectionDevice = renderThread->intersectionDevice; while (!boost::this_thread::interruption_requested()) { rayBuffer->Reset(); pathIntegrator->FillRayBuffer(rayBuffer); intersectionDevice->Intersect(rayBuffer); pathIntegrator->AdvancePaths(rayBuffer); } cerr << "[PathNativeRenderThread::" << renderThread->threadIndex << "] Rendering thread halted" << endl; } catch (boost::thread_interrupted) { cerr << "[PathNativeRenderThread::" << renderThread->threadIndex << "] Rendering thread halted" << endl; } #if !defined(LUXRAYS_DISABLE_OPENCL) catch (cl::Error err) { cerr << "[PathNativeRenderThread::" << renderThread->threadIndex << "] Rendering thread ERROR: " << err.what() << "(" << err.err() << ")" << endl; } #endif }
void NativeRenderThread::RenderThreadImpl(NativeRenderThread *renderThread) { cerr << "[NativeRenderThread::" << renderThread->threadIndex << "] Rendering thread started" << endl; try { RayBuffer *rayBuffer = renderThread->rayBuffer; PathIntegrator *pathIntegrator = renderThread->pathIntegrator; NativeIntersectionDevice *intersectionDevice = renderThread->intersectionDevice; while (!boost::this_thread::interruption_requested()) { rayBuffer->Reset(); pathIntegrator->FillRayBuffer(rayBuffer); intersectionDevice->TraceRays(rayBuffer); pathIntegrator->AdvancePaths(rayBuffer); } cerr << "[NativeRenderThread::" << renderThread->threadIndex << "] Rendering thread halted" << endl; } catch (boost::thread_interrupted) { cerr << "[NativeRenderThread::" << renderThread->threadIndex << "] Rendering thread halted" << endl; } catch (cl::Error err) { cerr << "[NativeRenderThread::" << renderThread->threadIndex << "] RenderingERROR: " << err.what() << "(" << err.err() << ")" << endl; } }