Merge with e190c52ab7861c68762aaa552f3dc0f59fe2e225 from default

This revision compiles and runs on Win7x64- but further evaluation is necessary.
There may be an issue with cmake step -After cmake I had to copy rtgui/version.h & config.h into out of source build /rtgui folder.
Additional notes:
- ImProcFunctions::hsv2rgb01   -> this likely need to be added to color.h & color.cc
- Use of array2D should be verified in NR code
- compilation warning for rtengine::RawImageSource::isWBProviderReady()
This commit is contained in:
michael
2012-07-03 23:15:07 -04:00
parent 78d4f80875
commit 3a4100e710
374 changed files with 47381 additions and 39387 deletions

View File

@@ -270,12 +270,23 @@ void Imagefloat::calcCroppedHistogram(const ProcParams &params, float scale, LUT
}
// Parallized transformation; create transform with cmsFLAGS_NOCACHE!
void Imagefloat::ExecCMSTransform(cmsHTRANSFORM hTransform, bool safe) {
if (safe) {
cmsDoTransform(hTransform, data, data, planestride);
} else {
void Imagefloat::ExecCMSTransform(cmsHTRANSFORM hTransform) {
// LittleCMS cannot parallize planar setups
// so build temporary buffers to allow multi processor execution
#pragma omp parallel for
for (int i=0; i<height; i++)
cmsDoTransform(hTransform, data + 3*i*rowstride, data + 3*i*rowstride, rowstride);
for (int y=0; y<height; y++) {
float buffer[width*3];
float *p=buffer, *pR=r[y], *pG=g[y], *pB=b[y];
for (int x=0; x<width; x++) {
*(p++) = *(pR++); *(p++) = *(pG++); *(p++) = *(pB++);
}
cmsDoTransform (hTransform, buffer, buffer, width);
p=buffer; pR=r[y]; pG=g[y]; pB=b[y];
for (int x=0; x<width; x++) {
*(pR++) = *(p++); *(pG++) = *(p++); *(pB++) = *(p++);
}
}
}