Better use of cache with inpaint opposed highight reconstruction (#6822)
* Speed up preview when inpaint opposed enabled Only reprocess from raw if the white balance is changed. Otherwise, a cache from later in the pipeline can be used. * Remove unused code * Fix refresh map bit positions * Make WB & inpaint opposed refresh less brittle Co-authored-by: Hombre57 <natureh.510@gmail.com> --------- Co-authored-by: Hombre57 <natureh.510@gmail.com>
This commit is contained in:
parent
9ae8c79c3a
commit
ac48cc55d8
@ -57,7 +57,7 @@ bool loadFile(
|
||||
rtengine::procparams::ColorManagementParams icm;
|
||||
icm.workingProfile = working_color_space;
|
||||
|
||||
img_src.getImage(curr_wb, TR_NONE, img_float.get(), pp, rtengine::procparams::ToneCurveParams(), rtengine::procparams::RAWParams(), 0);
|
||||
img_src.getImage(curr_wb, TR_NONE, img_float.get(), pp, rtengine::procparams::ToneCurveParams(), rtengine::procparams::RAWParams());
|
||||
|
||||
if (!working_color_space.empty()) {
|
||||
img_src.convertColorSpace(img_float.get(), icm, curr_wb);
|
||||
|
@ -231,18 +231,18 @@ void Crop::update(int todo)
|
||||
if (settings->leveldnautsimpl == 1) {
|
||||
if (params.dirpyrDenoise.Cmethod == "MAN" || params.dirpyrDenoise.Cmethod == "PON") {
|
||||
PreviewProps pp(trafx, trafy, trafw * skip, trafh * skip, skip);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCrop, pp, params.toneCurve, params.raw, 0);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCrop, pp, params.toneCurve, params.raw);
|
||||
}
|
||||
} else {
|
||||
if (params.dirpyrDenoise.C2method == "MANU") {
|
||||
PreviewProps pp(trafx, trafy, trafw * skip, trafh * skip, skip);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCrop, pp, params.toneCurve, params.raw, 0);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCrop, pp, params.toneCurve, params.raw);
|
||||
}
|
||||
}
|
||||
|
||||
if ((settings->leveldnautsimpl == 1 && params.dirpyrDenoise.Cmethod == "PRE") || (settings->leveldnautsimpl == 0 && params.dirpyrDenoise.C2method == "PREV")) {
|
||||
PreviewProps pp(trafx, trafy, trafw * skip, trafh * skip, skip);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCrop, pp, params.toneCurve, params.raw, 0);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCrop, pp, params.toneCurve, params.raw);
|
||||
|
||||
if ((!isDetailWindow) && parent->adnListener && skip == 1 && params.dirpyrDenoise.enabled) {
|
||||
float lowdenoise = 1.f;
|
||||
@ -454,7 +454,7 @@ void Crop::update(int todo)
|
||||
for (int wcr = 0; wcr <= 2; wcr++) {
|
||||
for (int hcr = 0; hcr <= 2; hcr++) {
|
||||
PreviewProps ppP(coordW[wcr], coordH[hcr], crW, crH, 1);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCropPart, ppP, params.toneCurve, params.raw, 0);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCropPart, ppP, params.toneCurve, params.raw);
|
||||
|
||||
// we only need image reduced to 1/4 here
|
||||
for (int ii = 0; ii < crH; ii += 2) {
|
||||
@ -615,7 +615,7 @@ void Crop::update(int todo)
|
||||
// if (params.dirpyrDenoise.Cmethod=="AUT" || params.dirpyrDenoise.Cmethod=="PON") {//reinit origCrop after Auto
|
||||
if ((settings->leveldnautsimpl == 1 && params.dirpyrDenoise.Cmethod == "AUT") || (settings->leveldnautsimpl == 0 && params.dirpyrDenoise.C2method == "AUTO")) { //reinit origCrop after Auto
|
||||
PreviewProps pp(trafx, trafy, trafw * skip, trafh * skip, skip);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCrop, pp, params.toneCurve, params.raw, 0);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, origCrop, pp, params.toneCurve, params.raw);
|
||||
}
|
||||
|
||||
if ((todo & M_SPOT) && params.spot.enabled && !params.spot.entries.empty()) {
|
||||
@ -751,7 +751,7 @@ void Crop::update(int todo)
|
||||
fattalCrop.reset(f);
|
||||
PreviewProps pp(0, 0, parent->fw, parent->fh, skip);
|
||||
int tr = getCoarseBitMask(params.coarse);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, f, pp, params.toneCurve, params.raw, 0);
|
||||
parent->imgsrc->getImage(parent->currWB, tr, f, pp, params.toneCurve, params.raw);
|
||||
parent->imgsrc->convertColorSpace(f, params.icm, parent->currWB);
|
||||
|
||||
if (params.dirpyrDenoise.enabled || params.filmNegative.enabled || params.spot.enabled) {
|
||||
|
@ -84,7 +84,7 @@ void getSpotAvgMax(ImageSource *imgsrc, ColorTemp currWB, const std::unique_ptr<
|
||||
}
|
||||
|
||||
rtengine::Imagefloat spotImg(spotSize, spotSize);
|
||||
imgsrc->getImage(currWB, tr, &spotImg, pp, params->toneCurve, params->raw, 0);
|
||||
imgsrc->getImage(currWB, tr, &spotImg, pp, params->toneCurve, params->raw);
|
||||
|
||||
auto avgMax = [spotSize, &spotImg](RGB & avg, RGB & max) -> void {
|
||||
avg = {};
|
||||
|
@ -109,7 +109,7 @@ public:
|
||||
virtual void getWBMults (const ColorTemp &ctemp, const procparams::RAWParams &raw, std::array<float, 4>& scale_mul, float &autoGainComp, float &rm, float &gm, float &bm) const = 0;
|
||||
|
||||
// use right after demosaicing image, add coarse transformation and put the result in the provided Imagefloat*
|
||||
virtual void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hlp, const procparams::RAWParams &raw, int opposed) = 0;
|
||||
virtual void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hlp, const procparams::RAWParams &raw) = 0;
|
||||
virtual eSensorType getSensorType () const = 0;
|
||||
virtual bool isMono () const = 0;
|
||||
// true is ready to provide the AutoWB, i.e. when the image has been demosaiced for RawImageSource
|
||||
|
@ -407,6 +407,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
Color HLR alters rgb output of demosaic, so re-demosaic is needed when Color HLR is being turned off;
|
||||
if HLR is enabled and changing method *from* Color to any other method
|
||||
OR HLR gets disabled when Color method was selected
|
||||
If white balance changed with inpaint opposed, because inpaint opposed depends on the white balance
|
||||
*/
|
||||
// If high detail (=100%) is newly selected, do a demosaic update, since the last was just with FAST
|
||||
|
||||
@ -414,7 +415,10 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
imageTypeListener->imageTypeChanged(imgsrc->isRAW(), imgsrc->getSensorType() == ST_BAYER, imgsrc->getSensorType() == ST_FUJI_XTRANS, imgsrc->isMono(), imgsrc->isGainMapSupported());
|
||||
}
|
||||
|
||||
bool iscolor = (params->toneCurve.method == "Color");// || params->toneCurve.method == "Coloropp");
|
||||
bool iscolor = (params->toneCurve.method == "Color" || params->toneCurve.method == "Coloropp");
|
||||
if ((todo & M_WB) && params->toneCurve.hrenabled && params->toneCurve.method == "Coloropp") {
|
||||
todo |= DEMOSAIC;
|
||||
}
|
||||
|
||||
if ((todo & M_RAW)
|
||||
|| (!highDetailRawComputed && highDetailNeeded)
|
||||
@ -872,8 +876,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
PreviewProps pp(0, 0, fw, fh, scale);
|
||||
// Tells to the ImProcFunctions' tools what is the preview scale, which may lead to some simplifications
|
||||
ipf.setScale(scale);
|
||||
int inpaintopposed = 1;//force getimage to use inpaint-opposed if enable, only once
|
||||
imgsrc->getImage(currWB, tr, orig_prev, pp, params->toneCurve, params->raw, inpaintopposed);
|
||||
imgsrc->getImage(currWB, tr, orig_prev, pp, params->toneCurve, params->raw);
|
||||
|
||||
if ((todo & M_SPOT) && params->spot.enabled && !params->spot.entries.empty()) {
|
||||
spotsDone = true;
|
||||
@ -2967,7 +2970,7 @@ void ImProcCoordinator::saveInputICCReference(const Glib::ustring& fname, bool a
|
||||
currWB = ColorTemp(); // = no white balance
|
||||
}
|
||||
|
||||
imgsrc->getImage(currWB, tr, im, pp, ppar.toneCurve, ppar.raw, 0);
|
||||
imgsrc->getImage(currWB, tr, im, pp, ppar.toneCurve, ppar.raw);
|
||||
ImProcFunctions ipf(&ppar, true);
|
||||
|
||||
if (ipf.needsTransform(fW, fH, imgsrc->getRotateDegree(), imgsrc->getMetaData())) {
|
||||
@ -3144,7 +3147,7 @@ void ImProcCoordinator::process()
|
||||
paramsUpdateMutex.unlock();
|
||||
|
||||
// M_VOID means no update, and is a bit higher that the rest
|
||||
if (change & (M_VOID - 1)) {
|
||||
if (change & (~M_VOID)) {
|
||||
updatePreviewImage(change, panningRelatedChange);
|
||||
}
|
||||
|
||||
|
@ -2130,7 +2130,7 @@ void ImProcFunctions::getAutoLogloc(int sp, ImageSource *imgsrc, float *sourceg,
|
||||
Imagefloat img(int(fw / SCALE + 0.5), int(fh / SCALE + 0.5));
|
||||
const ProcParams neutral;
|
||||
|
||||
imgsrc->getImage(imgsrc->getWB(), TR_NONE, &img, pp, params->toneCurve, neutral.raw, 0);
|
||||
imgsrc->getImage(imgsrc->getWB(), TR_NONE, &img, pp, params->toneCurve, neutral.raw);
|
||||
imgsrc->convertColorSpace(&img, params->icm, imgsrc->getWB());
|
||||
float minVal = RT_INFINITY;
|
||||
float maxVal = -RT_INFINITY;
|
||||
|
@ -297,7 +297,7 @@ PerspectiveCorrection::Params PerspectiveCorrection::autocompute(ImageSource *sr
|
||||
neutral.raw.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST);
|
||||
neutral.raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST);
|
||||
neutral.icm.outputProfile = ColorManagementParams::NoICMString;
|
||||
src->getImage(src->getWB(), tr, img.get(), pp, neutral.toneCurve, neutral.raw, 0);
|
||||
src->getImage(src->getWB(), tr, img.get(), pp, neutral.toneCurve, neutral.raw);
|
||||
src->convertColorSpace(img.get(), pparams->icm, src->getWB());
|
||||
|
||||
neutral.commonTrans.autofill = false; // Ensures crop factor is correct.
|
||||
|
@ -120,7 +120,7 @@ PreviewImage::PreviewImage (const Glib::ustring &fname, const Glib::ustring &ext
|
||||
double contrastThresholdDummy = 0.0;
|
||||
rawImage.demosaic(params.raw, false, contrastThresholdDummy);
|
||||
Imagefloat image(fw, fh);
|
||||
rawImage.getImage (wb, TR_NONE, &image, pp, params.toneCurve, params.raw, 0);
|
||||
rawImage.getImage (wb, TR_NONE, &image, pp, params.toneCurve, params.raw);
|
||||
rtengine::Image8 output(fw, fh);
|
||||
rawImage.convertColorSpace(&image, params.icm, wb);
|
||||
#ifdef _OPENMP
|
||||
|
@ -741,9 +741,8 @@ void RawImageSource::getWBMults(const ColorTemp &ctemp, const RAWParams &raw, st
|
||||
autoGainComp = camInitialGain / initialGain;
|
||||
}
|
||||
|
||||
void RawImageSource::getImage(const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw, int opposed)
|
||||
void RawImageSource::getImage(const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw)
|
||||
{
|
||||
// added int opposed to force getimage to use inpaint-opposed if enable, only once
|
||||
MyMutex::MyLock lock(getImageMutex);
|
||||
|
||||
tran = defTransform(ri, tran);
|
||||
@ -850,10 +849,6 @@ void RawImageSource::getImage(const ColorTemp &ctemp, int tran, Imagefloat* imag
|
||||
bool doHr = (hrp.hrenabled && !iscolor);
|
||||
|
||||
if (hrp.hrenabled && iscolor) {
|
||||
if(hrp.method == "Coloropp" && opposed == 1) {//force Inpaint opposed if WB change, and opposed limited the number to 1
|
||||
rgbSourceModified = false;
|
||||
}
|
||||
|
||||
if (!rgbSourceModified) {
|
||||
if (hrp.method == "Color") {
|
||||
if (settings->verbose) {
|
||||
|
@ -146,7 +146,7 @@ public:
|
||||
void getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, const procparams::WBParams & wbpar) override;
|
||||
|
||||
void getWBMults (const ColorTemp &ctemp, const procparams::RAWParams &raw, std::array<float, 4>& scale_mul, float &autoGainComp, float &rm, float &gm, float &bm) const override;
|
||||
void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw, int opposed) override;
|
||||
void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override;
|
||||
eSensorType getSensorType () const override;
|
||||
bool isMono () const override;
|
||||
ColorTemp getWB () const override
|
||||
|
@ -64,9 +64,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
DARKFRAME, // EvLCPUseVign,
|
||||
HDR, // EvLCPUseCA,
|
||||
M_VOID, // EvFixedExp
|
||||
ALLNORAW, // EvWBMethod,
|
||||
ALLNORAW, // EvWBTemp,
|
||||
ALLNORAW, // EvWBGreen,
|
||||
WB, // EvWBMethod,
|
||||
WB, // EvWBTemp,
|
||||
WB, // EvWBGreen,
|
||||
AUTOEXP, // EvToneCurveMode1,
|
||||
AUTOEXP, // EvToneCurve2,
|
||||
AUTOEXP, // EvToneCurveMode2,
|
||||
@ -234,7 +234,7 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
LUMINANCECURVE, // EvCATbadpix
|
||||
LUMINANCECURVE, // EvCATAutoadap
|
||||
DEFRINGE, // EvPFCurve
|
||||
ALLNORAW, // EvWBequal
|
||||
WB, // EvWBequal
|
||||
0, // EvWBequalbo : obsolete
|
||||
HDR, // EvGradientDegree
|
||||
HDR, // EvGradientEnabled
|
||||
@ -470,7 +470,7 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
RETINEX, // EvRetinexgaintransmission
|
||||
RETINEX, // EvLskal
|
||||
OUTPUTPROFILE, // EvOBPCompens
|
||||
ALLNORAW, // EvWBtempBias
|
||||
WB, // EvWBtempBias
|
||||
DARKFRAME, // EvRawImageNum
|
||||
0, // unused
|
||||
0, // unused
|
||||
@ -517,7 +517,7 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
ALLNORAW, // EvTMFattalEnabled
|
||||
HDR, // EvTMFattalThreshold
|
||||
HDR, // EvTMFattalAmount
|
||||
ALLNORAW, // EvWBEnabled
|
||||
WB, // EvWBEnabled
|
||||
AUTOEXP, // EvRGBEnabled
|
||||
LUMINANCECURVE, // EvLEnabled
|
||||
DEMOSAIC, // EvPdShrEnabled
|
||||
|
@ -23,17 +23,18 @@
|
||||
#include "procevents.h"
|
||||
|
||||
// Use M_VOID if you wish to update the proc params without updating the preview at all !
|
||||
#define M_VOID (1<<17)
|
||||
#define M_VOID (1<<20)
|
||||
// Use M_MINUPDATE if you wish to update the preview without modifying the image (think about it like a "refreshPreview")
|
||||
// Must NOT be used with other event (i.e. will be used for MINUPDATE only)
|
||||
#define M_MINUPDATE (1<<16)
|
||||
#define M_MINUPDATE (1<<19)
|
||||
// Force high quality
|
||||
#define M_HIGHQUAL (1<<15)
|
||||
#define M_HIGHQUAL (1<<18)
|
||||
|
||||
// Elementary functions that can be done to
|
||||
// the preview image when an event occurs
|
||||
#define M_SPOT (1<<19)
|
||||
#define M_CSHARP (1<<18)
|
||||
#define M_WB (1<<17)
|
||||
#define M_SPOT (1<<16)
|
||||
#define M_CSHARP (1<<15)
|
||||
#define M_MONITOR (1<<14)
|
||||
#define M_RETINEX (1<<13)
|
||||
#define M_CROP (1<<12)
|
||||
@ -57,6 +58,7 @@
|
||||
#define DARKFRAME (M_PREPROC|M_RAW|M_INIT|M_SPOT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define FLATFIELD (M_PREPROC|M_RAW|M_INIT|M_SPOT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define DEMOSAIC (M_RAW|M_INIT|M_SPOT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define WB (M_WB|M_INIT|M_SPOT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define ALLNORAW (M_INIT|M_SPOT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define CAPTURESHARPEN (M_INIT|M_SPOT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR|M_CSHARP)
|
||||
#define HDR (M_SPOT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
|
@ -350,7 +350,7 @@ Image8 *load_inspector_mode(const Glib::ustring &fname, eSensorType &sensorType,
|
||||
PreviewProps pp(0, 0, w, h, 1);
|
||||
|
||||
Imagefloat tmp(w, h);
|
||||
src.getImage(src.getWB(), TR_NONE, &tmp, pp, neutral.toneCurve, neutral.raw, 0);
|
||||
src.getImage(src.getWB(), TR_NONE, &tmp, pp, neutral.toneCurve, neutral.raw);
|
||||
src.convertColorSpace(&tmp, neutral.icm, src.getWB());
|
||||
|
||||
Image8 *img = new Image8(w, h);
|
||||
|
@ -373,7 +373,7 @@ private:
|
||||
int beg_tileW = wcr * tileWskip + tileWskip / 2.f - crW / 2.f;
|
||||
int beg_tileH = hcr * tileHskip + tileHskip / 2.f - crH / 2.f;
|
||||
PreviewProps ppP(beg_tileW, beg_tileH, crW, crH, skipP);
|
||||
imgsrc->getImage(currWB, tr, origCropPart, ppP, params.toneCurve, params.raw, 0);
|
||||
imgsrc->getImage(currWB, tr, origCropPart, ppP, params.toneCurve, params.raw);
|
||||
//baseImg->getStdImage(currWB, tr, origCropPart, ppP, true, params.toneCurve);
|
||||
|
||||
// we only need image reduced to 1/4 here
|
||||
@ -597,7 +597,7 @@ private:
|
||||
for (int wcr = 0; wcr <= 2; wcr++) {
|
||||
for (int hcr = 0; hcr <= 2; hcr++) {
|
||||
PreviewProps ppP(coordW[wcr], coordH[hcr], crW, crH, 1);
|
||||
imgsrc->getImage(currWB, tr, origCropPart, ppP, params.toneCurve, params.raw, 0);
|
||||
imgsrc->getImage(currWB, tr, origCropPart, ppP, params.toneCurve, params.raw);
|
||||
//baseImg->getStdImage(currWB, tr, origCropPart, ppP, true, params.toneCurve);
|
||||
|
||||
|
||||
@ -757,7 +757,7 @@ private:
|
||||
}
|
||||
|
||||
baseImg = new Imagefloat(fw, fh);
|
||||
imgsrc->getImage(currWB, tr, baseImg, pp, params.toneCurve, params.raw, 1);
|
||||
imgsrc->getImage(currWB, tr, baseImg, pp, params.toneCurve, params.raw);
|
||||
|
||||
if (pl) {
|
||||
pl->setProgress(0.50);
|
||||
|
@ -459,7 +459,7 @@ void ImProcFunctions::removeSpots (Imagefloat* img, ImageSource* imgsrc, const s
|
||||
}
|
||||
}
|
||||
|
||||
imgsrc->getImage(currWB, tr, srcSpotBox->getImage(), spp, params->toneCurve, params->raw, 0);
|
||||
imgsrc->getImage(currWB, tr, srcSpotBox->getImage(), spp, params->toneCurve, params->raw);
|
||||
if (cmp) {
|
||||
imgsrc->convertColorSpace(srcImage, *cmp, currWB);
|
||||
}
|
||||
@ -479,7 +479,7 @@ void ImProcFunctions::removeSpots (Imagefloat* img, ImageSource* imgsrc, const s
|
||||
dstImage->b(y, x) = 60000.f;
|
||||
}
|
||||
}
|
||||
imgsrc->getImage(currWB, tr, dstSpotBox->getImage(), spp, params->toneCurve, params->raw, 0);
|
||||
imgsrc->getImage(currWB, tr, dstSpotBox->getImage(), spp, params->toneCurve, params->raw);
|
||||
if (cmp) {
|
||||
imgsrc->convertColorSpace(dstImage, *cmp, currWB);
|
||||
}
|
||||
|
@ -193,7 +193,7 @@ int StdImageSource::load (const Glib::ustring &fname)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void StdImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw, int opposed)
|
||||
void StdImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw)
|
||||
{
|
||||
|
||||
// the code will use OpenMP as of now.
|
||||
|
@ -58,7 +58,7 @@ public:
|
||||
|
||||
int load (const Glib::ustring &fname) override;
|
||||
void getWBMults (const ColorTemp &ctemp, const procparams::RAWParams &raw, std::array<float, 4>& scale_mul, float &autoGainComp, float &rm, float &gm, float &bm) const override {};
|
||||
void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw, int opposed) override;
|
||||
void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override;
|
||||
void getrgbloc (int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, const procparams::WBParams & wbpar) override {};
|
||||
ColorTemp getWB () const override
|
||||
{
|
||||
|
@ -246,10 +246,10 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, TOOL_NAME, M("TP_WBALANC
|
||||
}
|
||||
|
||||
auto m = ProcEventMapper::getInstance();
|
||||
EvWBObserver10 = m->newEvent(ALLNORAW, "HISTORY_MSG_WBALANCE_OBSERVER10");
|
||||
EvWBitcwbprim = m->newEvent(ALLNORAW, "HISTORY_MSG_WBITC_PRIM");
|
||||
EvWBitcwbalg = m->newEvent(ALLNORAW, "HISTORY_MSG_WBITC_OBS");
|
||||
EvWBitcwgreen = m->newEvent(ALLNORAW, "HISTORY_MSG_WBITC_GREEN");
|
||||
EvWBObserver10 = m->newEvent(WB, "HISTORY_MSG_WBALANCE_OBSERVER10");
|
||||
EvWBitcwbprim = m->newEvent(WB, "HISTORY_MSG_WBITC_PRIM");
|
||||
EvWBitcwbalg = m->newEvent(WB, "HISTORY_MSG_WBITC_OBS");
|
||||
EvWBitcwgreen = m->newEvent(WB, "HISTORY_MSG_WBITC_GREEN");
|
||||
|
||||
|
||||
//Add the model columns to the Combo (which is a kind of view),
|
||||
|
Loading…
x
Reference in New Issue
Block a user