nicer error handling in the tonemapper when given the -t parameter

metadata
Wenzel Jakob 2013-12-18 14:48:36 +01:00
parent f24b51666a
commit 31761b3afd
1 changed files with 59 additions and 49 deletions

View File

@ -283,6 +283,7 @@ public:
if (runParallel) {
ref<Logger> logger = Thread::getThread()->getLogger();
std::vector<std::string> messages;
#if defined(MTS_OPENMP)
#pragma omp parallel for schedule(static)
@ -293,7 +294,7 @@ public:
thread = Thread::registerUnmanagedThread("omp");
thread->setLogger(logger);
}
try {
fs::path inputFile = fileResolver->resolve(argv[i]);
Log(EInfo, "Loading image \"%s\" ..", inputFile.string().c_str());
ref<FileStream> is = new FileStream(inputFile, FileStream::EReadOnly);
@ -349,6 +350,15 @@ public:
ref<FileStream> os = new FileStream(outputFile, FileStream::ETruncReadWrite);
output->write(format, os);
} catch (const std::exception &e) {
#pragma omp critical
messages.push_back(e.what());
}
}
if (!messages.empty()) {
Log(EWarn, "The tonemapping worker threads encountered several issues:");
for (size_t i=0; i<messages.size(); ++i)
Log(EWarn, "Exception %i: %s", (int) i, messages[i].c_str());
}
} else {
ref<Bitmap> bloomFilter;