Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
history_merge.h File Reference
#include <glib.h>
#include <inttypes.h>
+ Include dependency graph for history_merge.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef enum dt_history_merge_strategy_t dt_history_merge_strategy_t
 

Enumerations

enum  dt_history_merge_strategy_t {
  DT_HISTORY_MERGE_APPEND = 0 ,
  DT_HISTORY_MERGE_APPSTART = 1 ,
  DT_HISTORY_MERGE_REPLACE = 2
}
 

Functions

int dt_history_merge (struct dt_develop_t *dev_dest, struct dt_develop_t *dev_src, const int32_t dest_imgid, const GList *mod_list, const gboolean merge_iop_order, const dt_history_merge_strategy_t strategy, const gboolean force_new_modules)
 Merge a list of modules into a destination image, solving pipeline topologies for proper insertion of source modules.
 

Typedef Documentation

◆ dt_history_merge_strategy_t

Enumeration Type Documentation

◆ dt_history_merge_strategy_t

Enumerator
DT_HISTORY_MERGE_APPEND 
DT_HISTORY_MERGE_APPSTART 
DT_HISTORY_MERGE_REPLACE 

Function Documentation

◆ dt_history_merge()

int dt_history_merge ( struct dt_develop_t dev_dest,
struct dt_develop_t dev_src,
const int32_t  dest_imgid,
const GList *  mod_list,
const gboolean  merge_iop_order,
const dt_history_merge_strategy_t  strategy,
const gboolean  force_new_modules 
)

Merge a list of modules into a destination image, solving pipeline topologies for proper insertion of source modules.

Parameters
dev_destDestination develop stack (must be initialized, history read and popped).
dev_srcSource develop stack (must be initialized, history read and popped). May be NULL if merge_iop_order is FALSE (masks won't be copied).
dest_imgidDestination image id.
mod_listList of dt_iop_module_t* to merge (usually coming from dev_src).
merge_iop_orderIf TRUE, attempt to merge the pipeline order constraints from src and dest using a topological sort. On unsatisfiable constraints, falls back to overwriting the destination iop-order list with the source list.
strategyDT_HISTORY_MERGE_APPEND or DT_HISTORY_MERGE_APPSTART.
force_new_modulesIf TRUE, always add modules from source as new instances (when possible).
Returns
0 on success, 1 on error.

References _hm_backup_cleanup(), _hm_backup_dest(), _hm_build_id_set_from_mod_list(), _hm_build_last_history_by_id(), _hm_renumber_history(), _hm_restore_dest_from_backup(), _hm_show_merge_report_popup(), _hm_truncate_dest_redo_tail(), _hm_try_merge_iop_order_topologically(), _hm_warn_missing_raster_producers(), cleanup(), DT_DEBUG_HISTORY, dt_dev_get_history_end_ext(), dt_dev_get_module_instance(), dt_dev_history_get_last_item_by_module(), dt_dev_history_item_from_source_history_item(), dt_dev_set_history_end_ext(), DT_HISTORY_MERGE_APPEND, dt_ioppr_resync_pipeline(), dt_print(), FALSE, dt_develop_t::history, dt_iop_module_t::multi_name, dt_iop_module_t::multi_priority, dt_iop_module_t::op, _hm_dest_backup_t::orig_ids, _hm_dest_backup_t::orig_labels, and _hm_dest_backup_t::orig_styles.

Referenced by dt_dev_merge_history_into_image().