From ee63f51e5c38969f43078cf93b162382fd2d13d9 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 25 Jun 2019 20:31:59 +0200 Subject: [PATCH] Some improvment and bug fixed --- rtengine/improccoordinator.cc | 34 ++++++++++++++++++---------------- rtengine/rawimagesource.cc | 2 +- rtgui/whitebalance.cc | 2 +- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 2ee24f750..fff5af8b8 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -49,6 +49,7 @@ ImProcCoordinator::ImProcCoordinator() : imgsrc (nullptr), lastAwbEqual (0.), lastAwbTempBias (0.0), + lastAwbauto(""), monitorIntent (RI_RELATIVE), softProof(false), gamutCheck(false), @@ -221,6 +222,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) int readyphase = 0; bool highDetailNeeded = options.prevdemo == PD_Sidecar ? true : (todo & M_HIGHQUAL); + printf("metwb=%s \n", params->wb.method.c_str()); // Check if any detail crops need high detail. If not, take a fast path short cut if (!highDetailNeeded) { @@ -242,6 +244,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) RAWParams rp = params->raw; ColorManagementParams cmp = params->icm; LCurveParams lcur = params->labCurve; + printf("metwb2=%s \n", params->wb.method.c_str()); if (!highDetailNeeded) { // if below 100% magnification, take a fast path @@ -330,21 +333,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) // if a demosaic happened we should also call getimage later, so we need to set the M_INIT flag todo |= M_INIT; - bool autowb0 = false; - // bool autoitc = false; - // autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen"); - if(autowb0) printf("autoOKOKOK\n"); - if(!autowb0) printf("NOOOOOOONNNNNN\n"); - - - // if (autowb0) { - // printf("OK rgbloc avant\n"); - imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); - // printf("OK rgbloc apres\n"); - // } - - if (highDetailNeeded) { highDetailRawComputed = true; } else { @@ -359,6 +347,19 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } } + bool autowb0 = false; + // autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); + autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen"); + printf("autowb0=%s \n", params->wb.method.c_str()); + + + + // if (autowb0) { + // printf("OK rgbloc avant\n"); + imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); + // printf("OK rgbloc apres\n"); + // } + if ((todo & (M_RETINEX | M_INIT)) && params->retinex.enabled) { bool dehacontlutili = false; bool mapcontlutili = false; @@ -379,6 +380,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) autowb = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); if(autowb) printf("AUTOAUTO\n"); if(!autowb) printf("PAS--NON\n"); + printf("auto=%s \n", params->wb.method.c_str()); if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { MyMutex::MyLock initLock(minit); // Also used in crop window @@ -399,7 +401,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) currWB = imgsrc->getWB(); // } else if (params->wb.method == "Auto") { } else if (autowb) { - if (lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias) { + if (lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias || lastAwbauto != params->wb.method) { double rm, gm, bm; double tempitc = 5000.f; double greenitc = 1.; diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index e6f50336b..72131e793 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -7907,7 +7907,7 @@ void RawImageSource::getAutoWBMultipliersloc(double & tempref, double & greenref // int bfh = bf_h + 3, bfw = bf_w + 3; int bfh = H, bfw = W; if (wbpar.method == "autold") { - + printf("OK auto OLD\n"); if (fuji) { for (int i = 32; i < H - 32; i++) { int fw = ri->get_FujiWidth(); diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index b04b1f136..86cbe2e7a 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -142,7 +142,7 @@ static double wbTemp2Slider(double temp) return sval; } -WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WBALANCE_LABEL"), false, true), wbp(nullptr), wblistener(nullptr) +WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WBALANCE_LABEL"), true, true), wbp(nullptr), wblistener(nullptr) { Gtk::Grid* methodgrid = Gtk::manage(new Gtk::Grid());