merge with dev - I hope no error
This commit is contained in:
@@ -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 (¶ms, true), monitorIntent (RI_RELATIVE),
|
||||
ncie (nullptr), imgsrc (nullptr), shmap (nullptr), lastAwbEqual (0.), lastAwbTempBias(0.0), ipf (¶ms, 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(¶ms, 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));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user