![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include <assert.h>
#include <glib/gprintf.h>
#include <math.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <unistd.h>
#include "common/atomic.h"
#include "common/debug.h"
#include "common/history.h"
#include "common/image_cache.h"
#include "common/imageio.h"
#include "common/mipmap_cache.h"
#include "common/opencl.h"
#include "common/tags.h"
#include "control/conf.h"
#include "control/control.h"
#include "control/jobs.h"
#include "develop/blend.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "develop/lightroom.h"
#include "develop/masks.h"
#include "develop/pixelpipe_cache.h"
#include "gui/gtk.h"
#include "gui/presets.h"
Macros | |
#define | DT_DEV_AVERAGE_DELAY_START 250 |
#define | DT_DEV_PREVIEW_AVERAGE_DELAY_START 50 |
#define | DT_DEV_AVERAGE_DELAY_COUNT 5 |
#define | DT_IOP_ORDER_INFO (darktable.unmuted & DT_DEBUG_IOPORDER) |
#define DT_DEV_AVERAGE_DELAY_COUNT 5 |
#define DT_DEV_AVERAGE_DELAY_START 250 |
#define DT_DEV_PREVIEW_AVERAGE_DELAY_START 50 |
#define DT_IOP_ORDER_INFO (darktable.unmuted & DT_DEBUG_IOPORDER) |
void _dev_module_update_multishow | ( | dt_develop_t * | dev, |
struct dt_iop_module_t * | module | ||
) |
void _dev_pixelpipe_set_dirty | ( | dt_dev_pixelpipe_t * | pipe | ) |
|
inlinestatic |
References dt_mipmap_buffer_t::buf, darktable, dt_get_times(), dt_image_cache_get(), dt_image_cache_read_release(), DT_MIPMAP_BLOCKING, dt_mipmap_cache_get, dt_mipmap_cache_release, DT_MIPMAP_FULL, dt_show_times_f(), dt_mipmap_buffer_t::height, darktable_t::image_cache, dt_develop_t::image_storage, darktable_t::mipmap_cache, and dt_mipmap_buffer_t::width.
Referenced by dt_dev_load_image().
|
static |
gboolean _update_darkroom_roi | ( | dt_develop_t * | dev, |
dt_dev_pixelpipe_t * | pipe, | ||
int * | x, | ||
int * | y, | ||
int * | wd, | ||
int * | ht, | ||
float * | scale, | ||
float * | zoom_x, | ||
float * | zoom_y | ||
) |
References darktable, dt_control_get_dev_closeup(), dt_control_get_dev_zoom(), dt_control_get_dev_zoom_x(), dt_control_get_dev_zoom_y(), dt_dev_get_zoom_scale(), darktable_t::gui, dt_develop_t::height, MAX, MIN, dt_gui_gtk_t::ppd, dt_dev_pixelpipe_t::processed_height, dt_dev_pixelpipe_t::processed_width, and dt_develop_t::width.
Referenced by dt_dev_process_image_job().
|
static |
References dt_dev_pixelpipe_t::backbuf, dt_dev_pixelpipe_t::backbuf_height, dt_dev_pixelpipe_t::backbuf_mutex, dt_dev_pixelpipe_t::backbuf_width, darktable, dt_dev_pixelpipe_cache_get_entry_from_data(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_remove(), DT_DEV_PIXELPIPE_VALID, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, dt_image_t::id, dt_dev_pixelpipe_t::image, dt_dev_pixelpipe_t::output_backbuf, dt_dev_pixelpipe_t::output_backbuf_height, dt_dev_pixelpipe_t::output_backbuf_width, dt_dev_pixelpipe_t::output_imgid, darktable_t::pixelpipe_cache, and dt_dev_pixelpipe_t::status.
Referenced by dt_dev_process_image_job(), and dt_dev_process_preview_job().
void dt_dev_append_changed_tag | ( | const int32_t | imgid | ) |
void dt_dev_average_delay_update | ( | const dt_times_t * | start, |
uint32_t * | average_delay | ||
) |
update gliding average for pixelpipe delay
References dt_times_t::clock, DT_DEV_AVERAGE_DELAY_COUNT, and dt_get_times().
Referenced by dt_dev_process_image_job(), and dt_dev_process_preview_job().
void dt_dev_check_zoom_bounds | ( | dt_develop_t * | dev, |
float * | zoom_x, | ||
float * | zoom_y, | ||
dt_dev_zoom_t | zoom, | ||
int | closeup, | ||
float * | boxww, | ||
float * | boxhh | ||
) |
void dt_dev_cleanup | ( | dt_develop_t * | dev | ) |
References dt_develop_t::allforms, dt_develop_t::alliop, dt_develop_t::allprofile_info, dt_develop_t::auto_save_timeout, dt_backbuf_t::buffer, dt_develop_t::chroma_adaptation, dt_develop_t::colorscheme, dt_develop_t::display_histogram, dt_develop_t::drawing_timeout, dt_conf_set_float(), dt_conf_set_int(), dt_dev_free_history_item(), dt_dev_pixelpipe_cleanup(), dt_free_align, dt_iop_cleanup_module(), dt_ioppr_cleanup_profile_info(), dt_masks_free_form(), dt_pthread_mutex_destroy(), dt_develop_t::forms, dt_develop_t::histogram_pre_levels, dt_develop_t::histogram_pre_tonecurve, dt_develop_t::history, dt_develop_t::history_mutex, dt_develop_t::iop, dt_develop_t::iop_order_list, dt_develop_t::lower, dt_develop_t::mode, dt_develop_t::output_histogram, dt_develop_t::overexposed, dt_develop_t::pipe, dt_develop_t::preview_pipe, dt_develop_t::proxy, dt_develop_t::raw_histogram, dt_develop_t::rawoverexposed, dt_develop_t::threshold, dt_develop_t::upper, void(), and dt_develop_t::wb_coeffs.
Referenced by _history_copy_and_paste_on_image_merge(), cleanup(), dt_dev_get_final_size(), dt_focus_draw_clusters(), dt_imageio_export_with_flags(), and dt_styles_apply_to_image().
void dt_dev_configure_real | ( | dt_develop_t * | dev, |
int | wd, | ||
int | ht | ||
) |
References darktable, dt_control_queue_redraw_center(), DT_DEBUG_DEV, dt_dev_invalidate_zoom, dt_dev_refresh_ui_images, dt_print(), dt_develop_t::height, dt_image_t::id, dt_develop_t::image_storage, darktable_t::mipmap_cache, dt_dev_pixelpipe_t::output_backbuf, dt_develop_t::pipe, and dt_develop_t::width.
int dt_dev_distort_backtransform | ( | dt_develop_t * | dev, |
float * | points, | ||
size_t | points_count | ||
) |
reverse apply all transforms to the specified points (in preview pipe space)
References dt_dev_distort_backtransform_plus(), DT_DEV_TRANSFORM_DIR_ALL, and dt_develop_t::preview_pipe.
Referenced by _add_point_to_segment(), _brush_events_button_released(), _brush_events_mouse_moved(), _circle_events_button_pressed(), _circle_events_button_released(), _circle_events_mouse_moved(), _circle_events_post_expose(), _ellipse_events_button_pressed(), _ellipse_events_button_released(), _ellipse_events_mouse_moved(), _ellipse_events_post_expose(), _gradient_events_button_released(), _gradient_events_mouse_moved(), _gradient_init_values(), _path_events_button_pressed(), _path_events_button_released(), _path_events_mouse_moved(), button_released(), and dt_masks_set_source_pos_initial_value().
int dt_dev_distort_backtransform_locked | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe, | ||
const double | iop_order, | ||
const int | transf_direction, | ||
float * | points, | ||
size_t | points_count | ||
) |
same fct, but can only be called from a distort_backtransform function called by dt_dev_distort_backtransform_plus
References dt_dev_pixelpipe_activemodule_disables_currentmodule(), DT_DEV_TRANSFORM_DIR_ALL, DT_DEV_TRANSFORM_DIR_BACK_EXCL, DT_DEV_TRANSFORM_DIR_BACK_INCL, DT_DEV_TRANSFORM_DIR_FORW_EXCL, DT_DEV_TRANSFORM_DIR_FORW_INCL, dt_dev_pixelpipe_t::iop, and dt_dev_pixelpipe_t::nodes.
Referenced by dt_dev_distort_backtransform_plus().
int dt_dev_distort_backtransform_plus | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe, | ||
const double | iop_order, | ||
const int | transf_direction, | ||
float * | points, | ||
size_t | points_count | ||
) |
same fct as dt_dev_distort_backtransform, but we can specify iop with priority between pmin and pmax
References dt_dev_distort_backtransform_locked(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), and dt_develop_t::history_mutex.
Referenced by _circle_get_mask(), _circle_get_mask_roi(), _commit_box(), _do_get_structure_quad(), _draw_save_lines_to_params(), _ellipse_get_mask(), _ellipse_get_mask_roi(), _gradient_get_mask(), _gradient_get_mask_roi(), button_pressed(), button_released(), commit_box(), dt_dev_distort_backtransform(), get_point_scale(), mouse_moved(), pixelpipe_picker_helper(), process(), process(), and set_grad_from_points().
dt_dev_pixelpipe_iop_t * dt_dev_distort_get_iop_pipe | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe, | ||
struct dt_iop_module_t * | module | ||
) |
get the iop_pixelpipe instance corresponding to the iop in the given pipe
References dt_dev_pixelpipe_t::nodes.
Referenced by _aspect_ratio_get(), _commit_box(), _do_get_structure_lines(), _do_get_structure_quad(), _draw_retrieve_lines_from_params(), _iop_clipping_set_max_clip(), _ratio_get_aspect(), _set_max_clip(), button_pressed(), call_distort_transform(), commit_box(), gui_post_expose(), mouse_moved(), set_grad_from_points(), and set_points_from_grad().
int dt_dev_distort_transform | ( | dt_develop_t * | dev, |
float * | points, | ||
size_t | points_count | ||
) |
apply all transforms to the specified points (in preview pipe space)
References dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_ALL, and dt_develop_t::preview_pipe.
Referenced by _circle_get_points(), _ellipse_get_points(), and _gradient_get_points().
int dt_dev_distort_transform_locked | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe, | ||
const double | iop_order, | ||
const int | transf_direction, | ||
float * | points, | ||
size_t | points_count | ||
) |
same fct, but can only be called from a distort_transform function called by dt_dev_distort_transform_plus
References dt_dev_pixelpipe_activemodule_disables_currentmodule(), DT_DEV_TRANSFORM_DIR_ALL, DT_DEV_TRANSFORM_DIR_BACK_EXCL, DT_DEV_TRANSFORM_DIR_BACK_INCL, DT_DEV_TRANSFORM_DIR_FORW_EXCL, DT_DEV_TRANSFORM_DIR_FORW_INCL, dt_dev_pixelpipe_t::iop, and dt_dev_pixelpipe_t::nodes.
Referenced by _distort_paths(), and dt_dev_distort_transform_plus().
int dt_dev_distort_transform_plus | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe, | ||
const double | iop_order, | ||
const int | transf_direction, | ||
float * | points, | ||
size_t | points_count | ||
) |
same fct, but we can specify iop with priority between pmin and pmax
References dt_dev_distort_transform_locked(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), and dt_develop_t::history_mutex.
Referenced by _brush_get_pts_border(), _circle_get_area(), _circle_get_mask_roi(), _circle_get_points_source(), _circle_get_source_area(), _distort_paths(), _draw_retrieve_lines_from_params(), _ellipse_get_area(), _ellipse_get_mask_roi(), _ellipse_get_points_source(), _ellipse_get_source_area(), _get_selected_area(), _get_selected_area(), _gradient_get_area(), _iop_clipping_set_max_clip(), _path_get_pts_border(), _process(), _set_max_clip(), button_pressed(), dt_dev_distort_transform(), dt_focus_draw_clusters(), get_points(), gui_post_expose(), masks_point_calc_delta(), rt_masks_point_calc_delta(), and set_points_from_grad().
float dt_dev_exposure_get_black | ( | dt_develop_t * | dev | ) |
get exposure black level
References find_last_exposure_instance(), and dt_dev_proxy_exposure_t::get_black.
Referenced by _extract_patches().
float dt_dev_exposure_get_exposure | ( | dt_develop_t * | dev | ) |
get exposure
References find_last_exposure_instance(), and dt_dev_proxy_exposure_t::get_exposure.
Referenced by _extract_patches().
void dt_dev_get_final_size | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe, | ||
const int32_t | imgid, | ||
const int | input_width, | ||
const int | input_height, | ||
int * | processed_width, | ||
int * | processed_height | ||
) |
Compute the theoritical final size of a pipeline taking the full-resolution image at input.
Note: this creates a dummy pipeline and develop but doesn't trigger file I/O.
dev | An inited develop object, with dev->iop and dev->history already populated. Can be NULL, in which case a temporary develop is created from scratch (slower). |
pipe | An inited pipeline object, with pipe->iwidth and pipe->iheight already set and pipeline pieces params already synchronized. Can be NULL, in which case a temporary pipeline is created from scratch (slower). |
imgid | |
input_width | Not used if pipe is not NULL, will use pipe->iwidth |
input_height | Not used if pipe is not NULL, will use pipe->iheight |
processed_width | returned computed value |
processed_height | returned computed value |
References darktable, dt_dev_cleanup(), dt_dev_init(), dt_dev_pixelpipe_cleanup(), dt_dev_pixelpipe_create_nodes(), dt_dev_pixelpipe_get_roi_out(), dt_dev_pixelpipe_init_dummy(), dt_dev_pixelpipe_set_input(), dt_dev_pixelpipe_synch_all, dt_dev_read_history_ext(), dt_get_times(), dt_image_cache_get(), dt_image_cache_read_release(), dt_iop_load_modules(), DT_MIPMAP_NONE, dt_show_times(), FALSE, darktable_t::image_cache, dt_develop_t::image_storage, dt_develop_t::iop, and TRUE.
Referenced by dt_imageio_export_with_flags().
int32_t dt_dev_get_history_end | ( | dt_develop_t * | dev | ) |
References dt_develop_t::history, and dt_develop_t::history_end.
Referenced by _gui_delete_callback(), _lib_history_change_callback(), _lib_snapshots_add_button_clicked_callback(), _remove_history_leaks(), dt_dev_add_history_item_real(), dt_dev_history_get_hash(), dt_dev_module_remove(), dt_dev_pixelpipe_synch_all_real(), dt_dev_pixelpipe_synch_top(), dt_dev_pop_history_items_ext(), dt_dev_undo_start_record(), dt_dev_write_history_ext(), dt_masks_cleanup_unused(), dt_masks_read_masks_history(), and dt_styles_apply_to_image().
void dt_dev_get_pointer_zoom_pos | ( | dt_develop_t * | dev, |
const float | px, | ||
const float | py, | ||
float * | zoom_x, | ||
float * | zoom_y | ||
) |
References dt_control_get_dev_closeup(), dt_control_get_dev_zoom(), dt_control_get_dev_zoom_x(), dt_control_get_dev_zoom_y(), dt_dev_get_processed_size(), dt_dev_get_zoom_scale(), dt_develop_t::height, and dt_develop_t::width.
Referenced by button_pressed(), button_pressed(), button_released(), dt_masks_events_button_pressed(), dt_masks_events_button_released(), dt_masks_events_mouse_moved(), dt_masks_events_mouse_scrolled(), dt_masks_events_post_expose(), get_point_scale(), gui_post_expose(), gui_post_expose(), mouse_moved(), mouse_moved(), and scrolled().
void dt_dev_get_processed_size | ( | const dt_develop_t * | dev, |
int * | procw, | ||
int * | proch | ||
) |
References dt_dev_pixelpipe_t::iscale, dt_develop_t::pipe, dt_develop_t::preview_pipe, dt_dev_pixelpipe_t::processed_height, and dt_dev_pixelpipe_t::processed_width.
Referenced by _aspect_apply(), _aspect_ratio_get(), _lib_navigation_set_position(), _ratio_get_aspect(), _zoom_preset_change(), apply_box_aspect(), button_released(), dt_dev_check_zoom_bounds(), dt_dev_get_pointer_zoom_pos(), gui_post_expose(), mouse_moved(), and scrolled().
float dt_dev_get_zoom_scale | ( | dt_develop_t * | dev, |
dt_dev_zoom_t | zoom, | ||
int | closeup_factor, | ||
int | preview | ||
) |
References dt_dev_pixelpipe_t::backbuf_width, dt_control_get_dev_zoom_scale(), DT_ZOOM_1, DT_ZOOM_FILL, DT_ZOOM_FIT, dt_develop_t::height, dt_dev_pixelpipe_t::iscale, dt_develop_t::pipe, dt_develop_t::preview_pipe, dt_dev_pixelpipe_t::processed_height, dt_dev_pixelpipe_t::processed_width, and dt_develop_t::width.
Referenced by _circle_events_mouse_moved(), _darkroom_pickers_draw(), _draw_near_point(), _ellipse_events_mouse_moved(), _get_filtering_level(), _gradient_events_button_released(), _gradient_events_mouse_moved(), _lib_navigation_draw_callback(), _path_events_mouse_moved(), _update_darkroom_roi(), _zoom_preset_change(), button_pressed(), button_pressed(), button_released(), dt_dev_check_zoom_bounds(), dt_dev_get_pointer_zoom_pos(), dt_masks_events_post_expose(), expose(), get_zoom_scale(), gui_post_expose(), gui_post_expose(), mouse_moved(), mouse_moved(), process(), and scrolled().
uint64_t dt_dev_hash | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe | ||
) |
Get the global hash of the last module in pipe
References dt_dev_pixelpipe_iop_t::global_hash, dt_pixel_cache_entry_t::hash, and dt_dev_pixelpipe_t::nodes.
Referenced by commit_params_late(), dt_dev_wait_hash(), gui_post_expose(), process(), and process_drago().
void dt_dev_init | ( | dt_develop_t * | dev, |
int32_t | gui_attached | ||
) |
References dt_develop_t::allforms, dt_develop_t::alliop, dt_develop_t::allprofile_info, dt_develop_t::auto_save_timeout, dt_develop_t::average_delay, dt_backbuf_t::bpp, dt_backbuf_t::buffer, dt_develop_t::chroma_adaptation, dt_develop_t::colorscheme, dt_develop_t::darkroom_skip_mouse_events, dt_develop_t::display_histogram, dt_develop_t::drawing_timeout, dt_conf_get_float(), dt_conf_get_int(), DT_DEV_AVERAGE_DELAY_START, dt_dev_pixelpipe_init(), dt_dev_pixelpipe_init_preview(), DT_DEV_PREVIEW_AVERAGE_DELAY_START, dt_image_init(), dt_pthread_mutex_init(), dt_develop_t::enabled, dt_develop_t::exit, dt_develop_t::exposure, FALSE, dt_develop_t::form_gui, dt_develop_t::form_visible, dt_develop_t::forms, dt_develop_t::forms_changed, dt_develop_t::forms_hash, dt_develop_t::gui_attached, dt_develop_t::gui_module, dt_backbuf_t::hash, dt_backbuf_t::height, dt_develop_t::height, dt_develop_t::histogram_pre_levels, dt_develop_t::histogram_pre_levels_max, dt_develop_t::histogram_pre_tonecurve, dt_develop_t::histogram_pre_tonecurve_max, dt_develop_t::history, dt_develop_t::history_end, dt_develop_t::history_hash, dt_develop_t::history_mutex, dt_develop_t::image_invalid_cnt, dt_develop_t::image_storage, dt_develop_t::iop, dt_develop_t::iop_instance, dt_develop_t::iop_order_list, dt_develop_t::iop_order_version, dt_develop_t::iso_12646, dt_develop_t::lower, dt_develop_t::mask_lock, dt_develop_t::mode, dt_backbuf_t::op, dt_develop_t::output_histogram, dt_develop_t::overexposed, dt_develop_t::pipe, dt_develop_t::preview_average_delay, dt_develop_t::preview_pipe, dt_develop_t::proxy, dt_develop_t::raw_histogram, dt_develop_t::rawoverexposed, dt_develop_t::threshold, TRUE, dt_develop_t::upper, dt_develop_t::wb_coeffs, dt_develop_t::wb_is_D65, dt_backbuf_t::width, and dt_develop_t::width.
Referenced by _history_copy_and_paste_on_image_merge(), dt_dev_get_final_size(), dt_focus_draw_clusters(), dt_imageio_export_with_flags(), dt_styles_apply_to_image(), and init().
void dt_dev_invalidate_all_real | ( | dt_develop_t * | dev | ) |
void dt_dev_invalidate_preview_real | ( | dt_develop_t * | dev | ) |
void dt_dev_invalidate_real | ( | dt_develop_t * | dev | ) |
void dt_dev_invalidate_zoom_real | ( | dt_develop_t * | dev | ) |
int dt_dev_is_current_image | ( | dt_develop_t * | dev, |
int32_t | imgid | ||
) |
checks if provided imgid is the image currently in develop
References dt_image_t::id, and dt_develop_t::image_storage.
Referenced by dt_styles_apply_to_image().
int dt_dev_load_image | ( | dt_develop_t * | dev, |
const int32_t | imgid | ||
) |
References _dt_dev_load_raw(), dt_dev_pixelpipe_rebuild(), dt_dev_read_history_ext(), dt_iop_load_modules(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, dt_develop_t::history_mutex, dt_image_t::id, dt_develop_t::image_storage, dt_develop_t::iop, dt_develop_t::pipe, dt_develop_t::preview_pipe, dt_dev_pixelpipe_t::processed_height, and dt_dev_pixelpipe_t::processed_width.
Referenced by dt_focus_draw_clusters(), dt_imageio_export_with_flags(), and try_enter().
void dt_dev_masks_list_change | ( | dt_develop_t * | dev | ) |
References dt_develop_t::list_change, dt_develop_t::masks, and dt_develop_t::proxy.
Referenced by dt_dev_read_history_ext().
void dt_dev_masks_list_remove | ( | dt_develop_t * | dev, |
int | formid, | ||
int | parentid | ||
) |
References dt_develop_t::list_remove, dt_develop_t::masks, and dt_develop_t::proxy.
Referenced by _path_events_button_pressed().
void dt_dev_masks_list_update | ( | dt_develop_t * | dev | ) |
References dt_develop_t::list_update, dt_develop_t::masks, and dt_develop_t::proxy.
Referenced by dt_dev_add_history_item_real().
void dt_dev_masks_selection_change | ( | dt_develop_t * | dev, |
struct dt_iop_module_t * | module, | ||
const int | selectid, | ||
const int | throw_event | ||
) |
References dt_develop_t::masks, dt_develop_t::proxy, and dt_develop_t::selection_change.
Referenced by _brush_events_button_released(), _circle_events_button_pressed(), _ellipse_events_button_pressed(), _gradient_events_button_released(), _path_events_button_pressed(), _tree_add_exist(), _tree_duplicate_shape(), dt_masks_events_button_released(), and dt_masks_set_edit_mode().
void dt_dev_masks_update_hash | ( | dt_develop_t * | dev | ) |
integrity hash of the forms/shapes stack
References dt_get_times(), dt_masks_group_get_hash(), dt_show_times(), dt_develop_t::forms, dt_develop_t::forms_changed, dt_develop_t::forms_hash, and dt_pixel_cache_entry_t::hash.
Referenced by _delayed_history_commit(), and dt_dev_read_history_ext().
dt_iop_module_t * dt_dev_module_duplicate | ( | dt_develop_t * | dev, |
dt_iop_module_t * | base | ||
) |
duplicate a existent module
References dt_iop_module_t::dev, dt_iop_load_module(), dt_iop_update_multi_priority(), dt_ioppr_insert_module_instance(), dt_ioppr_move_iop_after(), dt_sort_iop_by_order(), FALSE, dt_iop_module_t::instance, dt_develop_t::iop, dt_iop_module_t::multi_name, dt_iop_module_t::multi_priority, dt_iop_module_t::so, and TRUE.
void dt_dev_module_remove | ( | dt_develop_t * | dev, |
struct dt_iop_module_t * | module | ||
) |
remove an existent module
References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_DEBUG_HISTORY, dt_dev_free_history_item(), dt_dev_get_history_end(), dt_dev_set_history_end(), dt_dev_undo_end_record(), dt_dev_undo_start_record(), dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), DT_SIGNAL_DEVELOP_MODULE_REMOVE, dt_develop_t::gui_attached, dt_develop_t::history, dt_develop_t::history_mutex, dt_develop_t::iop, dt_dev_history_item_t::multi_name, and darktable_t::signals.
Referenced by _gui_delete_callback().
uint32_t dt_dev_modulegroups_get | ( | dt_develop_t * | dev | ) |
get the active modulegroup
References dt_develop_t::get, dt_develop_t::modulegroups, and dt_develop_t::proxy.
Referenced by _find_first_visible_module(), _find_last_visible_module(), _lib_history_button_clicked_callback(), _lib_modulegroups_scroll(), _modulegroups_switch_tab_next(), _modulegroups_switch_tab_previous(), _pop_undo(), default_iop_focus(), gui_reset(), and leave().
void dt_dev_modulegroups_set | ( | dt_develop_t * | dev, |
uint32_t | group | ||
) |
set the active modulegroup
References dt_develop_t::modulegroups, dt_develop_t::proxy, and dt_develop_t::set.
Referenced by _lib_history_button_clicked_callback(), _lib_modulegroups_scroll(), _modulegroups_switch_tab_next(), _modulegroups_switch_tab_previous(), _pop_undo(), enter(), and gui_reset().
void dt_dev_modulegroups_switch | ( | dt_develop_t * | dev, |
struct dt_iop_module_t * | module | ||
) |
switch to modulegroup of module
References dt_develop_t::modulegroups, dt_develop_t::proxy, and dt_develop_t::switch_group.
Referenced by _lib_history_button_clicked_callback(), and default_iop_focus().
void dt_dev_modulegroups_update_visibility | ( | dt_develop_t * | dev | ) |
update modulegroup visibility
References dt_develop_t::modulegroups, dt_develop_t::proxy, dt_develop_t::switch_group, and dt_develop_t::update_visibility.
Referenced by _gui_off_callback(), and dt_iop_gui_duplicate().
void dt_dev_modules_update_multishow | ( | dt_develop_t * | dev | ) |
same, but for all modules
References _dev_module_update_multishow(), dt_ioppr_check_iop_order(), dt_iop_module_t::expander, and dt_develop_t::iop.
Referenced by _gui_delete_callback(), _gui_movedown_callback(), _gui_moveup_callback(), _lib_modulegroups_update_iop_visibility(), _on_drag_data_received(), and dt_iop_gui_duplicate().
void dt_dev_pixelpipe_rebuild | ( | dt_develop_t * | dev | ) |
References _dev_pixelpipe_set_dirty(), dt_dev_pixelpipe_t::changed, dt_atomic_set_int(), DT_DEV_PIPE_REMOVE, dt_get_times(), dt_show_times(), dt_develop_t::gui_attached, dt_develop_t::pipe, dt_develop_t::preview_pipe, dt_dev_pixelpipe_t::shutdown, and TRUE.
Referenced by _gui_delete_callback(), _gui_movedown_callback(), _gui_moveup_callback(), _on_drag_data_received(), _pop_undo(), dt_dev_load_image(), dt_dev_reprocess_all(), dt_iop_gui_duplicate(), gui_reset(), set_params(), and workicc_changed().
void dt_dev_pixelpipe_resync_all | ( | dt_develop_t * | dev | ) |
void dt_dev_pixelpipe_resync_main | ( | dt_develop_t * | dev | ) |
References _dev_pixelpipe_set_dirty(), dt_dev_pixelpipe_t::changed, dt_atomic_set_int(), DT_DEV_PIPE_SYNCH, dt_develop_t::gui_attached, dt_develop_t::pipe, dt_dev_pixelpipe_t::shutdown, and TRUE.
Referenced by _gamut_quickbutton_clicked(), _overexposed_quickbutton_clicked(), _rawoverexposed_quickbutton_clicked(), _softproof_quickbutton_clicked(), colorscheme_callback(), dt_dev_pixelpipe_resync_all(), lower_callback(), rawoverexposed_colorscheme_callback(), rawoverexposed_mode_callback(), rawoverexposed_threshold_callback(), softproof_profile_callback(), and upper_callback().
void dt_dev_pixelpipe_resync_preview | ( | dt_develop_t * | dev | ) |
References _dev_pixelpipe_set_dirty(), dt_dev_pixelpipe_t::changed, dt_atomic_set_int(), DT_DEV_PIPE_SYNCH, dt_develop_t::gui_attached, dt_develop_t::preview_pipe, dt_dev_pixelpipe_t::shutdown, and TRUE.
Referenced by dt_dev_pixelpipe_resync_all(), run_profile_callback(), and run_validation_callback().
void dt_dev_process_image | ( | dt_develop_t * | dev | ) |
void dt_dev_process_image_job | ( | dt_develop_t * | dev | ) |
References _flag_pipe(), _update_darkroom_roi(), _update_gui_backbuf(), dt_develop_t::average_delay, dt_dev_pixelpipe_t::backbuf_scale, dt_dev_pixelpipe_t::backbuf_zoom_x, dt_dev_pixelpipe_t::backbuf_zoom_y, dt_mipmap_buffer_t::buf, dt_dev_pixelpipe_t::busy_mutex, dt_dev_pixelpipe_t::changed, darktable, dt_atomic_set_int(), dt_control_log_busy_enter(), dt_control_log_busy_leave(), dt_control_queue_redraw_center(), dt_control_toast_busy_enter(), dt_control_toast_busy_leave(), DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_DEBUG_DEV, dt_dev_average_delay_update(), DT_DEV_PIPE_REMOVE, dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_change(), DT_DEV_PIXELPIPE_DIRTY, dt_dev_pixelpipe_has_reentry(), dt_dev_pixelpipe_process(), dt_dev_pixelpipe_reset_reentry(), dt_dev_pixelpipe_set_input(), DT_DEV_PIXELPIPE_UNDEF, DT_DEV_PIXELPIPE_VALID, dt_get_times(), dt_iop_nap(), DT_MIPMAP_BLOCKING, dt_mipmap_cache_get, dt_mipmap_cache_release, DT_MIPMAP_FULL, dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_show_times(), DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED, dt_develop_t::exit, FALSE, dt_mipmap_buffer_t::height, dt_develop_t::height, dt_image_t::id, dt_develop_t::image_invalid_cnt, dt_develop_t::image_storage, darktable_t::mipmap_cache, dt_develop_t::pipe, darktable_t::pixelpipe_cache, dt_dev_pixelpipe_t::processing, dt_dev_pixelpipe_t::running, dt_dev_pixelpipe_t::shutdown, darktable_t::signals, dt_dev_pixelpipe_t::status, dt_dev_pixelpipe_t::type, dt_mipmap_buffer_t::width, and dt_develop_t::width.
Referenced by dt_dev_process_image_job_run().
void dt_dev_process_preview | ( | dt_develop_t * | dev | ) |
void dt_dev_process_preview_job | ( | dt_develop_t * | dev | ) |
References _flag_pipe(), _update_gui_backbuf(), dt_mipmap_buffer_t::buf, dt_dev_pixelpipe_t::busy_mutex, dt_dev_pixelpipe_t::changed, darktable, dt_atomic_set_int(), dt_control_log_busy_enter(), dt_control_log_busy_leave(), dt_control_queue_redraw(), dt_control_toast_busy_enter(), dt_control_toast_busy_leave(), DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_DEBUG_DEV, dt_dev_average_delay_update(), DT_DEV_PIPE_REMOVE, dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_change(), DT_DEV_PIXELPIPE_DIRTY, dt_dev_pixelpipe_has_reentry(), dt_dev_pixelpipe_process(), dt_dev_pixelpipe_set_input(), DT_DEV_PIXELPIPE_UNDEF, DT_DEV_PIXELPIPE_VALID, dt_get_times(), dt_iop_nap(), DT_MIPMAP_BLOCKING, dt_mipmap_cache_get, dt_mipmap_cache_release, DT_MIPMAP_F, dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_show_times(), DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, dt_develop_t::exit, FALSE, dt_mipmap_buffer_t::height, dt_image_t::id, dt_develop_t::image_storage, dt_mipmap_buffer_t::iscale, darktable_t::mipmap_cache, darktable_t::pixelpipe_cache, dt_develop_t::preview_average_delay, dt_develop_t::preview_pipe, dt_dev_pixelpipe_t::processed_height, dt_dev_pixelpipe_t::processed_width, dt_dev_pixelpipe_t::processing, dt_dev_pixelpipe_t::running, dt_dev_pixelpipe_t::shutdown, darktable_t::signals, dt_dev_pixelpipe_t::status, dt_dev_pixelpipe_t::type, and dt_mipmap_buffer_t::width.
Referenced by dt_dev_process_preview_job_run().
void dt_dev_refresh_ui_images_real | ( | dt_develop_t * | dev | ) |
void dt_dev_reorder_gui_module_list | ( | dt_develop_t * | dev | ) |
reorder the module list
References darktable, DT_UI_CONTAINER_PANEL_RIGHT_CENTER, dt_ui_get_container(), darktable_t::gui, dt_develop_t::iop, and dt_gui_gtk_t::ui.
Referenced by _lib_history_button_clicked_callback().
void dt_dev_reprocess_all | ( | dt_develop_t * | dev | ) |
References darktable, dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_rebuild(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), darktable_t::gui, dt_develop_t::gui_attached, darktable_t::pipeline_threadsafe, darktable_t::pixelpipe_cache, and dt_gui_gtk_t::reset.
Referenced by clear_caches_callback().
void dt_dev_set_history_end | ( | dt_develop_t * | dev, |
const uint32_t | index | ||
) |
void dt_dev_snapshot_request | ( | dt_develop_t * | dev, |
const char * | filename | ||
) |
request snapshot
References dt_control_queue_redraw_center(), dt_develop_t::filename, dt_develop_t::proxy, dt_develop_t::request, dt_develop_t::snapshot, and TRUE.
Referenced by _lib_snapshots_add_button_clicked_callback().
int dt_dev_sync_pixelpipe_hash | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe, | ||
const double | iop_order, | ||
const int | transf_direction, | ||
dt_pthread_mutex_t * | lock, | ||
const volatile uint64_t *const | hash | ||
) |
synchronize pixelpipe by means hash values by waiting with timeout and potential reprocessing FIXME: modules that need to resync internal data with pipeline should listen to the PREVIEW_PIPE_RECOMPUTED signal. This function relies on timeouts, waiting for the pipe to finish, and the exception is not caught if the timeout expires with no result.
References dt_dev_pixelpipe_t::changed, dt_dev_invalidate, DT_DEV_PIPE_REMOVE, DT_DEV_PIPE_SYNCH, DT_DEV_PIPE_TOP_CHANGED, dt_dev_wait_hash(), FALSE, dt_pixel_cache_entry_t::hash, dt_pixel_cache_entry_t::lock, and TRUE.
Referenced by commit_params_late(), process(), and process_drago().
void dt_dev_undo_end_record | ( | dt_develop_t * | dev | ) |
References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_SIGNAL_DEVELOP_HISTORY_CHANGE, DT_VIEW_DARKROOM, dt_view_manager_get_current_view(), dt_develop_t::gui_attached, darktable_t::signals, and darktable_t::view_manager.
Referenced by _darkroom_ui_apply_style_activate_callback(), _lib_history_button_clicked_callback(), _lib_history_truncate(), compress_history_callback(), delete_history_callback(), dt_dev_add_history_item_real(), dt_dev_module_remove(), enter(), gui_reset(), paste_all_callback(), and paste_parts_callback().
void dt_dev_undo_start_record | ( | dt_develop_t * | dev | ) |
References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_dev_get_history_end(), dt_history_duplicate(), dt_ioppr_iop_order_copy_deep(), DT_SIGNAL_DEVELOP_HISTORY_WILL_CHANGE, DT_VIEW_DARKROOM, dt_view_manager_get_current_view(), dt_develop_t::gui_attached, dt_develop_t::history, dt_develop_t::iop_order_list, darktable_t::signals, and darktable_t::view_manager.
Referenced by _darkroom_ui_apply_style_activate_callback(), _lib_history_button_clicked_callback(), _lib_history_truncate(), compress_history_callback(), delete_history_callback(), dt_dev_add_history_item_real(), dt_dev_module_remove(), enter(), gui_reset(), paste_all_callback(), and paste_parts_callback().
int dt_dev_wait_hash | ( | dt_develop_t * | dev, |
struct dt_dev_pixelpipe_t * | pipe, | ||
const double | iop_order, | ||
const int | transf_direction, | ||
dt_pthread_mutex_t * | lock, | ||
const volatile uint64_t *const | hash | ||
) |
wait until hash value found in hash matches hash value defined by dev/pipe/pmin/pmax with timeout
References darktable, dt_dev_pixelpipe_t::devid, dt_atomic_get_int(), dt_conf_get_int(), dt_dev_hash(), dt_iop_nap(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, dt_pixel_cache_entry_t::hash, dt_pixel_cache_entry_t::lock, darktable_t::opencl, dt_dev_pixelpipe_t::shutdown, and TRUE.
Referenced by dt_dev_sync_pixelpipe_hash().
gchar * dt_history_item_get_label | ( | const struct dt_iop_module_t * | module | ) |
generate item multi-instance name with mnemonics, for Gtk labels
References dt_iop_module_t::multi_name.
Referenced by _iop_panel_label().
gchar * dt_history_item_get_name | ( | const struct dt_iop_module_t * | module | ) |
generates item multi-instance name without mnemonics
References delete_underscore(), and dt_iop_module_t::multi_name.
Referenced by _gui_off_callback(), _mask_indicator_tooltip(), _print_nan_debug(), _print_perf_debug(), _set_group_name_from_module(), _tree_button_pressed(), dt_iop_set_mask_mode(), and dt_masks_iop_combo_populate().
gchar * dt_history_item_get_name_html | ( | const struct dt_iop_module_t * | module | ) |
References delete_underscore(), and dt_iop_module_t::multi_name.
gboolean dt_masks_get_lock_mode | ( | dt_develop_t * | dev | ) |
References darktable, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, darktable_t::gui, dt_develop_t::gui_attached, dt_develop_t::mask_lock, and dt_gui_gtk_t::mutex.
Referenced by mask_lock_callback().
void dt_masks_set_lock_mode | ( | dt_develop_t * | dev, |
gboolean | mode | ||
) |
References darktable, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), darktable_t::gui, dt_develop_t::gui_attached, dt_develop_t::mask_lock, and dt_gui_gtk_t::mutex.
Referenced by mask_lock_callback().
|
static |
References dt_develop_t::exposure, and dt_develop_t::proxy.
Referenced by dt_dev_exposure_get_black(), and dt_dev_exposure_get_exposure().