use radio buttons to select between normal and custom pipeline for Fast Export
as suggested by @michaelezra
This commit is contained in:
parent
7a69ff84a4
commit
f99da0c1ef
@ -89,7 +89,10 @@ EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening
|
||||
EXPORT_BYPASS_SHARPENING;Bypass Sharpening
|
||||
EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast
|
||||
EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights
|
||||
EXPORT_USE_FAST_PIPELINE;Enable Special "Fast-Export" Processing Pipeline
|
||||
EXPORT_PIPELINE;Processing pipeline
|
||||
EXPORT_BYPASS;Processing steps to bypass
|
||||
EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end)
|
||||
EXPORT_USE_FAST_PIPELINE;Dedicated (full processing on resized image)
|
||||
EXPORT_USE_FAST_PIPELINE_TIP;Use a dedicated processing pipeline for images in Fast Export mode, that trades speed for quality. Resizing of the image is done as early as possible, instead of doing it at the end like in the normal pipeline. The speedup can be significant, but be prepared to see artifacts and a general degradation of output quality.
|
||||
EXPORT_FASTEXPORTOPTIONS;<b>Fast Export Options</b>
|
||||
EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters.
|
||||
|
@ -38,8 +38,11 @@ ExportPanel::ExportPanel () : listener (nullptr)
|
||||
labExportTitle->set_alignment(Gtk::ALIGN_START);
|
||||
pack_start(*labExportTitle, Gtk::PACK_SHRINK, 4);
|
||||
|
||||
Gtk::RadioButton::Group pipeline_group;
|
||||
use_fast_pipeline = Gtk::manage ( new Gtk::RadioButton (pipeline_group, M("EXPORT_USE_FAST_PIPELINE")));
|
||||
use_normal_pipeline = Gtk::manage ( new Gtk::RadioButton (pipeline_group, M("EXPORT_USE_NORMAL_PIPELINE")));
|
||||
bypass_box = Gtk::manage(new Gtk::VBox());
|
||||
bypass_ALL = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_BYPASS_ALL")));
|
||||
use_fast_pipeline = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_USE_FAST_PIPELINE")));
|
||||
use_fast_pipeline->set_tooltip_text(M("EXPORT_USE_FAST_PIPELINE_TIP"));
|
||||
bypass_sharpening = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_BYPASS_SHARPENING")));
|
||||
bypass_sharpenEdge = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_BYPASS_SHARPENEDGE")));
|
||||
@ -98,19 +101,28 @@ ExportPanel::ExportPanel () : listener (nullptr)
|
||||
// ----------------------------------------------------------------
|
||||
|
||||
// start global packing
|
||||
Gtk::HBox* lblbox = Gtk::manage (new Gtk::HBox ());
|
||||
lblbox->pack_start (*Gtk::manage (new Gtk::Label (M("EXPORT_PIPELINE"))), Gtk::PACK_SHRINK, 4);
|
||||
pack_start (*lblbox, Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*use_fast_pipeline , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_ALL , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*Gtk::manage(new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_sharpening , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_sharpenEdge , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_sharpenMicro , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*use_normal_pipeline , Gtk::PACK_SHRINK, 4);
|
||||
|
||||
bypass_box->pack_start(*Gtk::manage(new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 4);
|
||||
lblbox = Gtk::manage (new Gtk::HBox ());
|
||||
lblbox->pack_start (*Gtk::manage (new Gtk::Label (M("EXPORT_BYPASS"))), Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start (*lblbox, Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_ALL , Gtk::PACK_SHRINK, 4);
|
||||
// bypass_box->pack_start(*Gtk::manage(new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_sharpening , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_sharpenEdge , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_sharpenMicro , Gtk::PACK_SHRINK, 4);
|
||||
//pack_start(*bypass_lumaDenoise , Gtk::PACK_SHRINK, 4);
|
||||
//pack_start(*bypass_colorDenoise , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_defringe , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_dirpyrDenoise, Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_sh_hq , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_dirpyrequalizer , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_wavelet , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_defringe , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_dirpyrDenoise, Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_sh_hq , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_dirpyrequalizer , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_wavelet , Gtk::PACK_SHRINK, 4);
|
||||
|
||||
bayerFrameVBox->pack_start(*hb_raw_bayer_method, Gtk::PACK_SHRINK, 4);
|
||||
//bayerFrameVBox->pack_start(*bypass_raw_all_enhance , Gtk::PACK_SHRINK, 4);
|
||||
@ -124,12 +136,14 @@ ExportPanel::ExportPanel () : listener (nullptr)
|
||||
xtransFrameVBox->pack_start(*hb_raw_xtrans_method, Gtk::PACK_SHRINK, 4);
|
||||
xtransFrame->add(*xtransFrameVBox);
|
||||
|
||||
pack_start(*bypass_raw_ccSteps , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_raw_ca , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_raw_ccSteps , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_raw_ca , Gtk::PACK_SHRINK, 4);
|
||||
|
||||
pack_start(*bypass_raw_df , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_raw_ff , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_raw_df , Gtk::PACK_SHRINK, 4);
|
||||
bypass_box->pack_start(*bypass_raw_ff , Gtk::PACK_SHRINK, 4);
|
||||
|
||||
pack_start(*bypass_box, Gtk::PACK_SHRINK);
|
||||
|
||||
pack_start (*Gtk::manage(new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 2);
|
||||
|
||||
// Resize options
|
||||
@ -179,6 +193,7 @@ ExportPanel::ExportPanel () : listener (nullptr)
|
||||
pack_start(*vboxpe, Gtk::PACK_SHRINK, 0);
|
||||
|
||||
|
||||
use_fast_pipeline->signal_toggled().connect(sigc::mem_fun(*this, &ExportPanel::use_fast_pipeline_toggled));
|
||||
btnFastExport->signal_clicked().connect( sigc::mem_fun(*this, &ExportPanel::FastExportPressed) );
|
||||
//btnExportLoadSettings->signal_clicked().connect( sigc::mem_fun(*this, &ExportPanel::LoadSettings) );
|
||||
//btnExportSaveSettings->signal_clicked().connect( sigc::mem_fun(*this, &ExportPanel::SaveSettings) );
|
||||
@ -347,6 +362,7 @@ void ExportPanel::LoadDefaultSettings()
|
||||
MaxHeight->set_value(options.fastexport_resize_height);
|
||||
|
||||
use_fast_pipeline->set_active(options.fastexport_use_fast_pipeline);
|
||||
bypass_box->set_sensitive(!options.fastexport_use_fast_pipeline);
|
||||
}
|
||||
|
||||
void ExportPanel::LoadSettings()
|
||||
@ -428,6 +444,11 @@ void ExportPanel::bypassALL_Toggled()
|
||||
bypass_raw_ffConn.block (false);
|
||||
}
|
||||
|
||||
void ExportPanel::use_fast_pipeline_toggled()
|
||||
{
|
||||
bypass_box->set_sensitive(!use_fast_pipeline->get_active());
|
||||
}
|
||||
|
||||
/*
|
||||
fastexport_bypass_sharpening
|
||||
fastexport_bypass_sharpenEdge
|
||||
|
@ -36,9 +36,11 @@ class ExportPanel : public Gtk::VBox
|
||||
|
||||
protected:
|
||||
|
||||
Gtk::VBox *bypass_box;
|
||||
//Gtk::CheckButton* enabled;
|
||||
Gtk::RadioButton* use_fast_pipeline;
|
||||
Gtk::RadioButton* use_normal_pipeline;
|
||||
Gtk::CheckButton* bypass_ALL;
|
||||
Gtk::CheckButton* use_fast_pipeline;
|
||||
Gtk::CheckButton* bypass_sharpenEdge;
|
||||
Gtk::CheckButton* bypass_sharpenMicro;
|
||||
Gtk::CheckButton* bypass_sharpening;
|
||||
@ -106,6 +108,7 @@ protected:
|
||||
ExportPanelListener* listener;
|
||||
|
||||
void bypassALL_Toggled();
|
||||
void use_fast_pipeline_toggled();
|
||||
void SaveSettingsAsDefault();
|
||||
void LoadDefaultSettings();
|
||||
void LoadSettings();
|
||||
|
@ -1095,41 +1095,41 @@ void FileCatalog::developRequested (std::vector<FileBrowserEntry*> tbe, bool fas
|
||||
// and also those which effect is not pronounced after reducing the image size
|
||||
// TODO!!! could expose selections below via preferences
|
||||
if (fastmode) {
|
||||
if (options.fastexport_bypass_sharpening ) {
|
||||
params.sharpening.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_sharpenEdge ) {
|
||||
params.sharpenEdge.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_sharpenMicro ) {
|
||||
params.sharpenMicro.enabled = false;
|
||||
}
|
||||
|
||||
//if (options.fastexport_bypass_lumaDenoise ) params.lumaDenoise.enabled = false;
|
||||
//if (options.fastexport_bypass_colorDenoise ) params.colorDenoise.enabled = false;
|
||||
if (options.fastexport_bypass_defringe ) {
|
||||
params.defringe.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_dirpyrDenoise ) {
|
||||
params.dirpyrDenoise.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_sh_hq ) {
|
||||
params.sh.hq = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_dirpyrequalizer ) {
|
||||
params.dirpyrequalizer.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_wavelet ) {
|
||||
params.wavelet.enabled = false;
|
||||
}
|
||||
|
||||
if (!options.fastexport_use_fast_pipeline) {
|
||||
if (options.fastexport_bypass_sharpening ) {
|
||||
params.sharpening.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_sharpenEdge ) {
|
||||
params.sharpenEdge.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_sharpenMicro ) {
|
||||
params.sharpenMicro.enabled = false;
|
||||
}
|
||||
|
||||
//if (options.fastexport_bypass_lumaDenoise ) params.lumaDenoise.enabled = false;
|
||||
//if (options.fastexport_bypass_colorDenoise ) params.colorDenoise.enabled = false;
|
||||
if (options.fastexport_bypass_defringe ) {
|
||||
params.defringe.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_dirpyrDenoise ) {
|
||||
params.dirpyrDenoise.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_sh_hq ) {
|
||||
params.sh.hq = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_dirpyrequalizer ) {
|
||||
params.dirpyrequalizer.enabled = false;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_wavelet ) {
|
||||
params.wavelet.enabled = false;
|
||||
}
|
||||
|
||||
//if (options.fastexport_bypass_raw_bayer_all_enhance ) params.raw.bayersensor.all_enhance = false;
|
||||
if (options.fastexport_bypass_raw_bayer_dcb_iterations ) {
|
||||
params.raw.bayersensor.dcb_iterations = 0;
|
||||
@ -1150,30 +1150,28 @@ void FileCatalog::developRequested (std::vector<FileBrowserEntry*> tbe, bool fas
|
||||
if (options.fastexport_bypass_raw_bayer_greenthresh ) {
|
||||
params.raw.bayersensor.greenthresh = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_raw_ccSteps ) {
|
||||
params.raw.bayersensor.ccSteps = params.raw.xtranssensor.ccSteps = 0;
|
||||
}
|
||||
if (options.fastexport_bypass_raw_ccSteps ) {
|
||||
params.raw.bayersensor.ccSteps = params.raw.xtranssensor.ccSteps = 0;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_raw_ca ) {
|
||||
params.raw.ca_autocorrect = false;
|
||||
params.raw.cared = 0;
|
||||
params.raw.cablue = 0;
|
||||
}
|
||||
if (options.fastexport_bypass_raw_ca ) {
|
||||
params.raw.ca_autocorrect = false;
|
||||
params.raw.cared = 0;
|
||||
params.raw.cablue = 0;
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_raw_df ) {
|
||||
params.raw.df_autoselect = false;
|
||||
params.raw.dark_frame = "";
|
||||
}
|
||||
if (options.fastexport_bypass_raw_df ) {
|
||||
params.raw.df_autoselect = false;
|
||||
params.raw.dark_frame = "";
|
||||
}
|
||||
|
||||
if (options.fastexport_bypass_raw_ff ) {
|
||||
params.raw.ff_AutoSelect = false;
|
||||
params.raw.ff_file = "";
|
||||
}
|
||||
if (options.fastexport_bypass_raw_ff ) {
|
||||
params.raw.ff_AutoSelect = false;
|
||||
params.raw.ff_file = "";
|
||||
}
|
||||
|
||||
|
||||
if (!options.fastexport_use_fast_pipeline) {
|
||||
params.raw.bayersensor.method = options.fastexport_raw_bayer_method ;
|
||||
params.raw.xtranssensor.method = options.fastexport_raw_xtrans_method;
|
||||
params.icm.input = options.fastexport_icm_input ;
|
||||
|
Loading…
x
Reference in New Issue
Block a user