merge with dev - I hope no error

This commit is contained in:
Desmis
2017-02-21 18:02:48 +01:00
74 changed files with 886 additions and 695 deletions

View File

@@ -40,10 +40,19 @@ extern const Settings* settings;
ImProcCoordinator::ImProcCoordinator ()
: orig_prev (nullptr), oprevi (nullptr), oprevl (nullptr), nprevl (nullptr), previmg (nullptr), workimg (nullptr),
ncie (nullptr), imgsrc (nullptr), shmap (nullptr), lastAwbEqual (0.), ipf (&params, true), monitorIntent (RI_RELATIVE),
ncie (nullptr), imgsrc (nullptr), shmap (nullptr), lastAwbEqual (0.), lastAwbTempBias(0.0), ipf (&params, true), monitorIntent (RI_RELATIVE),
softProof (false), gamutCheck (false), scale (10), highDetailPreprocessComputed (false), highDetailRawComputed (false),
allocated (false), bwAutoR (-9000.f), bwAutoG (-9000.f), bwAutoB (-9000.f), CAMMean (NAN), coordX (0), coordY (0), localX (0), localY (0),
dataspot (nullptr), retistr (nullptr), retistrsav (nullptr), llstr (nullptr), lhstr (nullptr), ccstr (nullptr),
/*
=======
: orig_prev(nullptr), oprevi(nullptr), oprevl(nullptr), nprevl(nullptr), previmg(nullptr), workimg(nullptr),
ncie(nullptr), imgsrc(nullptr), shmap(nullptr), lastAwbEqual(0.), lastAwbTempBias(0.0), ipf(&params, true), monitorIntent(RI_RELATIVE),
softProof(false), gamutCheck(false), scale(10), highDetailPreprocessComputed(false), highDetailRawComputed(false),
allocated(false), bwAutoR(-9000.f), bwAutoG(-9000.f), bwAutoB(-9000.f), CAMMean(NAN),
>>>>>>> dev
*/
ctColorCurve(),
// localcurve(65536, 0),
hltonecurve (65536),
@@ -168,7 +177,7 @@ ImProcCoordinator::ImProcCoordinator ()
fw (0), fh (0), tr (0),
fullw (1), fullh (1),
pW (-1), pH (-1),
plistener (nullptr), imageListener (nullptr), aeListener (nullptr), acListener (nullptr), abwListener (nullptr), aloListener (nullptr), actListener (nullptr), adnListener (nullptr), awavListener (nullptr), dehaListener (nullptr), hListener (nullptr),
plistener (nullptr), imageListener (nullptr), aeListener (nullptr), acListener (nullptr), abwListener (nullptr), awbListener(nullptr), aloListener (nullptr), actListener (nullptr), adnListener (nullptr), awavListener (nullptr), dehaListener (nullptr), hListener (nullptr),
resultValid (false), lastOutputProfile ("BADFOOD"), lastOutputIntent (RI__COUNT), lastOutputBPC (false), thread (nullptr), changeSinceLast (0), updaterRunning (false), destroying (false), utili (false), autili (false), wavcontlutili (false),
butili (false), ccutili (false), cclutili (false), clcutili (false), opautili (false), conversionBuffer (1, 1), colourToningSatLimit (0.f), colourToningSatLimitOpacity (0.f)
@@ -367,16 +376,18 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall)
if (params.wb.method == "Camera") {
currWB = imgsrc->getWB ();
} else if (params.wb.method == "Auto") {
if (lastAwbEqual != params.wb.equal) {
if (lastAwbEqual != params.wb.equal || lastAwbTempBias != params.wb.tempBias) {
double rm, gm, bm;
imgsrc->getAutoWBMultipliers (rm, gm, bm);
if (rm != -1.) {
autoWB.update (rm, gm, bm, params.wb.equal);
autoWB.update(rm, gm, bm, params.wb.equal, params.wb.tempBias);
lastAwbEqual = params.wb.equal;
lastAwbTempBias = params.wb.tempBias;
} else {
lastAwbEqual = -1.;
autoWB.useDefaults (params.wb.equal);
lastAwbTempBias = 0.0;
autoWB.useDefaults(params.wb.equal);
}
//double rr,gg,bb;
@@ -388,6 +399,9 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall)
params.wb.temperature = currWB.getTemp ();
params.wb.green = currWB.getGreen ();
if(params.wb.method == "Auto" && awbListener) {
awbListener->WBChanged(params.wb.temperature, params.wb.green);
}
int tr = getCoarseBitMask (params.coarse);
@@ -2884,21 +2898,23 @@ void ImProcCoordinator::progress (Glib::ustring str, int pr)
}*/
}
bool ImProcCoordinator::getAutoWB (double & temp, double & green, double equal)
bool ImProcCoordinator::getAutoWB (double& temp, double& green, double equal, double tempBias)
{
if (imgsrc) {
if (lastAwbEqual != equal) {
if (lastAwbEqual != equal || lastAwbTempBias != tempBias) {
// Issue 2500 MyMutex::MyLock lock(minit); // Also used in crop window
double rm, gm, bm;
imgsrc->getAutoWBMultipliers (rm, gm, bm);
if (rm != -1) {
autoWB.update (rm, gm, bm, equal);
autoWB.update(rm, gm, bm, equal, tempBias);
lastAwbEqual = equal;
lastAwbTempBias = tempBias;
} else {
lastAwbEqual = -1.;
autoWB.useDefaults (equal);
autoWB.useDefaults(equal);
lastAwbTempBias = 0.0;
}
}
@@ -3035,16 +3051,18 @@ void ImProcCoordinator::saveInputICCReference (const Glib::ustring & fname, bool
if (params.wb.method == "Camera") {
currWB = imgsrc->getWB ();
} else if (params.wb.method == "Auto") {
if (lastAwbEqual != params.wb.equal) {
if (lastAwbEqual != params.wb.equal || lastAwbTempBias != params.wb.tempBias) {
double rm, gm, bm;
imgsrc->getAutoWBMultipliers (rm, gm, bm);
if (rm != -1.) {
autoWB.update (rm, gm, bm, params.wb.equal);
autoWB.update(rm, gm, bm, params.wb.equal, params.wb.tempBias);
lastAwbEqual = params.wb.equal;
lastAwbTempBias = params.wb.tempBias;
} else {
lastAwbEqual = -1.;
autoWB.useDefaults (params.wb.equal);
lastAwbTempBias = 0.0;
autoWB.useDefaults(params.wb.equal);
}
}
@@ -3089,11 +3107,11 @@ void ImProcCoordinator::saveInputICCReference (const Glib::ustring & fname, bool
// image may contain out of range samples, clip them to avoid wrap-arounds
#pragma omp parallel for
for (int i = 0; i < im->height; i++) {
for (int j = 0; j < im->width; j++) {
im->r (i, j) = CLIP (im->r (i, j));
im->g (i, j) = CLIP (im->g (i, j));
im->b (i, j) = CLIP (im->b (i, j));
for(int i = 0; i < im->getHeight(); i++) {
for(int j = 0; j < im->getWidth(); j++) {
im->r(i, j) = CLIP(im->r(i, j));
im->g(i, j) = CLIP(im->g(i, j));
im->b(i, j) = CLIP(im->b(i, j));
}
}