![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include <gmodule.h>#include <gtk/gtk.h>#include <sched.h>#include <stddef.h>#include <stdint.h>#include "common/darktable.h"#include "common/introspection.h"#include "common/gui_module_api.h"#include "common/opencl.h"#include "control/settings.h"#include "develop/pixelpipe.h"#include "dtgtk/togglebutton.h"#include "gui/gtk.h"#include "gui/gui_throttle.h"#include "iop/iop_api.h"
Include dependency graph for imageop.h:Go to the source code of this file.
Data Structures | |
| struct | dt_iop_roi_t |
| struct | dt_iop_gui_data_t |
| struct | dt_iop_module_so_t |
| struct | dt_iop_module_t |
Macros | |
| #define | INCLUDE_API_FROM_MODULE_H |
| #define | INCLUDE_API_FROM_MODULE_H |
| #define | IOP_GUI_ALLOC(module) (dt_iop_##module##_gui_data_t *)_iop_gui_alloc(self,sizeof(dt_iop_##module##_gui_data_t)) |
| #define | IOP_GUI_FREE |
| #define | dt_omploop_sfence() dt_sfence() |
Typedefs | |
| typedef struct dt_iop_roi_t | dt_iop_roi_t |
| typedef enum dt_iop_module_header_icons_t | dt_iop_module_header_icons_t |
| typedef enum dt_iop_group_t | dt_iop_group_t |
| typedef enum dt_iop_tags_t | dt_iop_tags_t |
| typedef enum dt_iop_flags_t | dt_iop_flags_t |
| typedef struct dt_iop_gui_data_t | dt_iop_gui_data_t |
| typedef void | dt_iop_data_t |
| typedef void | dt_iop_global_data_t |
| typedef enum dt_dev_request_colorpick_flags_t | dt_dev_request_colorpick_flags_t |
| typedef enum dt_iop_colorspace_type_t | dt_iop_colorspace_type_t |
| typedef struct dt_iop_module_so_t | dt_iop_module_so_t |
| typedef struct dt_iop_module_t | dt_iop_module_t |
| #define dt_omploop_sfence | ( | ) | dt_sfence() |
| #define INCLUDE_API_FROM_MODULE_H |
| #define INCLUDE_API_FROM_MODULE_H |
| #define IOP_GUI_ALLOC | ( | module | ) | (dt_iop_##module##_gui_data_t *)_iop_gui_alloc(self,sizeof(dt_iop_##module##_gui_data_t)) |
| #define IOP_GUI_FREE |
color picker request
| typedef enum dt_iop_colorspace_type_t dt_iop_colorspace_type_t |
colorspace enums, must be in synch with dt_iop_colorspace_type_t in color_conversion.cl
| typedef void dt_iop_data_t |
| typedef enum dt_iop_flags_t dt_iop_flags_t |
module tags
| typedef void dt_iop_global_data_t |
| typedef enum dt_iop_group_t dt_iop_group_t |
module group
| typedef struct dt_iop_gui_data_t dt_iop_gui_data_t |
| typedef enum dt_iop_module_header_icons_t dt_iop_module_header_icons_t |
| typedef struct dt_iop_module_so_t dt_iop_module_so_t |
part of the module which only contains the cached dlopen stuff.
| typedef struct dt_iop_module_t dt_iop_module_t |
| typedef struct dt_iop_roi_t dt_iop_roi_t |
region of interest
| typedef enum dt_iop_tags_t dt_iop_tags_t |
module tags
| enum dt_iop_flags_t |
module tags
| enum dt_iop_group_t |
| enum dt_iop_tags_t |
|
inlinestatic |
References dt_pthread_mutex_init(), and dt_iop_module_t::gui_lock.
| void dt_bauhaus_update_module | ( | dt_iop_module_t * | self | ) |
References DT_BAUHAUS_COMBOBOX, dt_bauhaus_combobox_set(), dt_bauhaus_combobox_set_from_value(), DT_BAUHAUS_SLIDER, dt_bauhaus_slider_set(), DT_BAUHAUS_WIDGET, DT_GUI_MODULE, DT_INTROSPECTION_TYPE_BOOL, DT_INTROSPECTION_TYPE_ENUM, DT_INTROSPECTION_TYPE_FLOAT, DT_INTROSPECTION_TYPE_INT, DT_INTROSPECTION_TYPE_UINT, DT_INTROSPECTION_TYPE_USHORT, dt_bauhaus_widget_t::field, dt_bauhaus_widget_t::field_type, m, dt_bauhaus_widget_t::type, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_update().
References b, dt_bauhaus_data_t::combobox, d, dt_bauhaus_combobox_entry_t::data, dt_bauhaus_widget_t::data, DT_BAUHAUS_COMBOBOX, DT_BAUHAUS_SLIDER, dt_bauhaus_slider_get(), DT_BAUHAUS_WIDGET, DT_INTROSPECTION_TYPE_BOOL, DT_INTROSPECTION_TYPE_ENUM, DT_INTROSPECTION_TYPE_FLOAT, DT_INTROSPECTION_TYPE_INT, DT_INTROSPECTION_TYPE_UINT, DT_INTROSPECTION_TYPE_USHORT, dt_iop_gui_changed(), f, dt_bauhaus_widget_t::field, dt_bauhaus_widget_t::field_type, i, dt_bauhaus_widget_t::label, and dt_bauhaus_widget_t::type.
Referenced by enter().
| void dt_iop_add_remove_mask_indicator | ( | dt_iop_module_t * | module | ) |
add/remove mask indicator to iop module header
References FALSE, and dt_iop_roi_t::y.
Referenced by _blendop_masks_mode_changed(), dt_iop_gui_update_blendif(), dt_iop_gui_update_blending(), dt_iop_gui_update_header(), and dt_masks_iop_update().
| gboolean dt_iop_check_modules_equal | ( | dt_iop_module_t * | mod_1, |
| dt_iop_module_t * | mod_2 | ||
| ) |
References dt_iop_roi_t::y.
Referenced by dt_dev_add_history_item_ext().
| void dt_iop_cleanup_module | ( | dt_iop_module_t * | module | ) |
calls module->cleanup and closes the dl connection.
References dt_develop_t::color_picker, darktable, darktable_t::develop, dt_free, dt_develop_t::enabled, FALSE, dt_develop_t::picker, dt_develop_t::update_pending, dt_develop_t::widget, and dt_iop_roi_t::y.
Referenced by _dt_styles_tmp_module_free(), _dt_styles_tmp_module_from_style_item(), _init_module_so(), _init_presets(), dt_dev_cleanup(), dt_develop_blend_legacy_params_from_so(), and leave().
| void dt_iop_cleanup_pipe | ( | struct dt_iop_module_t * | module, |
| struct dt_dev_pixelpipe_t * | pipe, | ||
| struct dt_dev_pixelpipe_iop_t * | piece | ||
| ) |
References dt_dev_pixelpipe_iop_t::blendop_data, dt_free_align, and dt_iop_roi_t::y.
Referenced by dt_dev_pixelpipe_cleanup_nodes().
| void dt_iop_commit_blend_params | ( | dt_iop_module_t * | module, |
| const struct dt_develop_blend_params_t * | blendop_params | ||
| ) |
| void dt_iop_commit_params | ( | dt_iop_module_t * | module, |
| dt_iop_params_t * | params, | ||
| struct dt_develop_blend_params_t * | blendop_params, | ||
| struct dt_dev_pixelpipe_t * | pipe, | ||
| struct dt_dev_pixelpipe_iop_t * | piece | ||
| ) |
commits params and updates piece hash.
References _iop_validate_params(), dt_dev_pixelpipe_iop_t::blendop_data, dt_dev_pixelpipe_iop_t::blendop_hash, darktable, dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::data_size, dt_conf_get_bool(), dt_conf_key_exists(), dt_conf_key_not_empty(), dt_conf_set_bool(), DT_DEBUG_PARAMS, dt_free, dt_hash(), dt_iop_compute_module_hash(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_pixelpipe_get_pipe_name(), dt_print(), dt_dev_pixelpipe_iop_t::enabled, dt_dev_pixelpipe_iop_t::force_opencl_cache, dt_dev_pixelpipe_iop_t::global_hash, dt_dev_pixelpipe_iop_t::global_mask_hash, dt_dev_pixelpipe_iop_t::hash, IOP_FLAGS_ALLOW_TILING, dt_dev_pixelpipe_iop_t::process_cl_ready, dt_dev_pixelpipe_iop_t::process_tiling_ready, TRUE, dt_dev_pixelpipe_t::type, darktable_t::unmuted, and dt_iop_roi_t::y.
Referenced by _commit_piece_contract().
| void dt_iop_compute_module_hash | ( | dt_iop_module_t * | module, |
| GList * | masks | ||
| ) |
Uniform way of getting the full state hash of user-defined parameters, including masks and blending. Writes the value in module->hash, also writes the module->blendop_hash for masking and blending.
WARNING: doesn't take into account parameters dynamically set at runtime.
WARNING: if computing module hash in HISTORY order, there is no guaranty that previous modules in PIPELINEÂ are also previous modules in HISTORY, so their blendops & masks may not be inited yet, meaning the blendop_hash we compute here will be garbage. In particular, (legacy) history compression algo can mess with history order, such that history entries of raster mask providers can end up after history entries of raster mask consumers. Our current history compression does a pipeline snapshot in pipeline order, for user-changed modules. (Raster masks providers and consumers will all be user-changed modules).
IFÂ COMPUTINGÂ HASHESÂ FORÂ PIPEÂ CACHEÂ INVALIDATION, that means we need to redo blendop/module hash recomputation at commit_params time, when pushing history to pipeline (but mandatorily in pipeline order).
IF COMPUTINGÂ HASHES FOR HISTORY CONSISTENCY (auto-saving when needed), since all we care is user params, it doesn't matter.
References dt_hash(), dt_iop_compute_blendop_hash(), and dt_iop_roi_t::y.
Referenced by _dt_dev_modules_reload_defaults(), _history_to_module(), _process_history_db_entry(), commit_params(), dt_dev_history_item_update_from_params(), dt_iop_commit_params(), and dt_iop_load_default_params().
| void dt_iop_default_init | ( | dt_iop_module_t * | module | ) |
allocate and load default settings from introspection.
References c, DT_INTROSPECTION_TYPE_ARRAY, DT_INTROSPECTION_TYPE_BOOL, DT_INTROSPECTION_TYPE_CHAR, DT_INTROSPECTION_TYPE_ENUM, DT_INTROSPECTION_TYPE_FLOAT, DT_INTROSPECTION_TYPE_INT, DT_INTROSPECTION_TYPE_NONE, DT_INTROSPECTION_TYPE_OPAQUE, DT_INTROSPECTION_TYPE_STRUCT, DT_INTROSPECTION_TYPE_UINT, DT_INTROSPECTION_TYPE_USHORT, i, p, and dt_iop_roi_t::y.
| gboolean dt_iop_get_cache_bypass | ( | dt_iop_module_t * | module | ) |
Set bypass to TRUE if the pipeline cache should be bypassed temporarily for this module and the next, for example doing interactive GUI operations.
Pipeline cache consistency is ensured by hashing the internal module params and comparing that hash with the previously-known one from the cache line. If something outside the module is making the cache temporarily invalid, this is the way to go. The previous module's output may be fetched from cache if available, which is faster than simply disabling cache at all.
This is designed for mask previews, which have a special handling, in pipeline, where modules between the mask preview requesting module and the gamma.c module are bypassed, so the alpha channel is passed-through to be rendered by gamma.c without processing intermediate modules. This doesn't work if cache is enabled.
The pixelpipe code will propagate the bypass state to downstream pipe->pieces, so all modules coming later than this one in the pipeline will also have their cache disabled. That's how mask preview can work, because the pipeline is called in a recursive way, starting from the end.
Only one module from dev->iop list (modules tied to GUI) is allowed to bypass the cache at a time, other modules will lose their bypass flag if set.
Referenced by _darkroom_gui_module_requests_uncropped_full_image(), and dt_dev_pixelpipe_activemodule_disables_currentmodule().
| dt_iop_module_t * dt_iop_get_colorout_module | ( | void | ) |
get module by name and colorout, works only with a dev mode
References darktable, darktable_t::develop, dt_iop_get_module_from_list(), and dt_develop_t::iop.
| const gchar * dt_iop_get_localized_aliases | ( | const gchar * | op | ) |
References darktable, darktable_t::iop, and dt_iop_roi_t::y.
| const gchar * dt_iop_get_localized_name | ( | const gchar * | op | ) |
returns the localized plugin name for a given op name. must not be freed.
References darktable, darktable_t::iop, and dt_iop_roi_t::y.
Referenced by dt_add_hist(), dt_history_get_items(), dt_history_get_items_as_string(), and dt_styles_get_item_list().
| dt_iop_module_t * dt_iop_get_module | ( | const char * | op | ) |
References darktable, darktable_t::develop, dt_iop_get_module_from_list(), and dt_develop_t::iop.
| dt_iop_module_t * dt_iop_get_module_by_instance_name | ( | GList * | modules, |
| const char * | operation, | ||
| const char * | multi_name | ||
| ) |
returns module with op + multi_name or NULL if not found on the list, if multi_name == NULL do not check for it
References m, and dt_iop_roi_t::y.
Referenced by _hm_module_from_id(), and dt_ioppr_update_for_entries().
| dt_iop_module_t * dt_iop_get_module_by_op_priority | ( | GList * | modules, |
| const char * | operation, | ||
| const int | multi_priority | ||
| ) |
returns module with op + multi_priority or NULL if not found on the list, if multi_priority == -1 do not check for it
References m, and dt_iop_roi_t::y.
Referenced by _dt_styles_tmp_module_from_style_item(), _history_merge_resolve_dest_instance(), _hm_module_from_id(), _refresh_global_histogram_backbuf(), dt_dev_create_module_instance(), and dt_ioppr_resync_iop_list().
| int dt_iop_get_module_flags | ( | const char * | op | ) |
get module flags, works in dev and lt mode
References darktable, darktable_t::iop, and dt_iop_roi_t::y.
Referenced by dt_gui_hist_dialog_new().
| dt_iop_module_t * dt_iop_get_module_from_list | ( | GList * | iop_list, |
| const char * | op | ||
| ) |
References dt_iop_roi_t::y.
Referenced by _create_deleted_modules(), dt_iop_get_colorout_module(), and dt_iop_get_module().
| void dt_iop_gui_changed | ( | dt_iop_module_t * | module, |
| GtkWidget * | widget, | ||
| gpointer | data | ||
| ) |
References darktable, darktable_t::develop, dt_dev_add_history_item, dt_iop_color_picker_reset(), dt_iop_gui_set_enable_button(), TRUE, and dt_iop_roi_t::y.
Referenced by _iop_toggle_callback(), and dt_bauhaus_value_changed_default_callback().
| void dt_iop_gui_cleanup_module | ( | dt_iop_module_t * | module | ) |
cleans up gui of module and of blendops
References dt_free, dt_iop_is_hidden(), and dt_iop_roi_t::y.
Referenced by _check_deleted_instances(), _gui_delete_callback(), _init_module_so(), and leave().
| dt_iop_module_t * dt_iop_gui_duplicate | ( | dt_iop_module_t * | base, |
| gboolean | copy_params | ||
| ) |
References dt_iop_module_t::blend_params, darktable, dt_iop_module_t::dev, darktable_t::develop, dt_dev_add_history_item, dt_dev_modulegroups_update_visibility(), dt_dev_modules_update_multishow(), dt_dev_pixelpipe_rebuild_all, dt_iop_commit_blend_params(), dt_iop_gui_init(), dt_iop_gui_set_expanded(), dt_iop_gui_set_expander(), dt_iop_gui_update(), dt_iop_gui_update_blending(), dt_iop_is_hidden(), dt_iop_reload_defaults(), dt_iop_request_focus(), dt_masks_iop_use_same_as(), DT_UI_CONTAINER_PANEL_RIGHT_CENTER, dt_ui_get_container(), dt_iop_module_t::expander, FALSE, darktable_t::gui, IOP_FLAGS_SUPPORTS_BLENDING, dt_develop_blend_params_t::mask_id, dt_iop_module_t::params, dt_gui_gtk_t::reset, dt_gui_gtk_t::scroll_to, TRUE, dt_gui_gtk_t::ui, and dt_iop_roi_t::y.
Referenced by _menuitem_button_released_preset().
|
inlinestatic |
enter a GUI critical section by acquiring gui_data->lock
References dt_pthread_mutex_lock().
Referenced by _auto_levels_callback(), _auto_levels_callback(), _auto_set_exposure(), _auto_set_illuminant(), _develop_ui_pipe_finished_callback(), _develop_ui_pipe_finished_callback(), _develop_ui_pipe_finished_callback(), _develop_ui_pipe_started_callback(), _do_get_structure_auto(), _do_get_structure_lines(), _do_get_structure_quad(), _draw(), _event_draw(), _get_structure(), _init_drawing(), _preview_pipe_finished_callback(), _process_common_setup(), _refresh_module_histogram(), _select_region_toggled_callback(), _select_region_toggled_callback(), _spot_settings_changed_callback(), _switch_cursors(), _sync_private_buffer_from_preview_cache(), area_button_release(), area_draw(), area_enter_notify(), area_leave_notify(), area_motion_notify(), auto_adjust_contrast_boost(), auto_adjust_exposure_boost(), button_pressed(), button_pressed(), button_released(), button_released(), checker_changed_callback(), commit_params(), commit_params_late(), commit_profile_callback(), corrections_done(), dt_drawlayer_begin_gui_stroke_capture(), dt_drawlayer_commit_dabs(), dt_iop_levels_compute_levels_automatic(), dt_iop_zonesystem_preview_draw(), gui_cache_init(), gui_focus(), gui_init(), gui_init(), gui_post_expose(), gui_post_expose(), gui_update(), gui_update(), invalidate_luminance_cache(), masks_selection_changed(), mouse_leave(), mouse_moved(), mouse_moved(), optimize_changed_callback(), process(), process(), process(), process_clusters(), process_common_cleanup(), process_common_setup(), process_drago(), process_internal(), reload_defaults(), rt_auto_levels_callback(), rt_curr_scale_update(), rt_develop_ui_pipe_finished_callback(), rt_display_wavelet_scale_callback(), run_profile_callback(), run_validation_callback(), safety_changed_callback(), scrolled(), start_profiling_callback(), toneeq_process(), update_curve_lut(), and update_histogram().
| dt_iop_module_t * dt_iop_gui_get_next_visible_module | ( | dt_iop_module_t * | module | ) |
returns the next visible module on the module list
References dt_iop_gui_module_is_visible(), and dt_iop_roi_t::y.
Referenced by _focus_previous_module(), and _gui_moveup_callback().
| GtkWidget * dt_iop_gui_get_pluginui | ( | dt_iop_module_t * | module | ) |
get the eventbox of plugin ui in expander
References DTGTK_EXPANDER, dtgtk_expander_get_frame(), and dt_iop_roi_t::y.
Referenced by _iop_dim_all_but(), and dt_iop_request_focus().
| dt_iop_module_t * dt_iop_gui_get_previous_visible_module | ( | dt_iop_module_t * | module | ) |
returns the previous visible module on the module list
References dt_iop_gui_module_is_visible(), and dt_iop_roi_t::y.
Referenced by _focus_next_module(), and _gui_movedown_callback().
| GtkWidget * dt_iop_gui_get_widget | ( | dt_iop_module_t * | module | ) |
get the widget of plugin ui in expander
References DTGTK_EXPANDER, dtgtk_expander_get_body(), and dt_iop_roi_t::y.
| void dt_iop_gui_init | ( | dt_iop_module_t * | module | ) |
creates the module's gui widget
References _iop_color_picker_data_ready_callback(), _iop_plugin_focus_accel(), dt_gui_module_t::accel_path, darktable, delete_underscore(), dt_accels_build_path(), dt_accels_new_darkroom_action, dt_capitalize_label(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, dt_free, dt_iop_is_hidden(), DT_SIGNAL_CONTROL_PICKERDATA_READY, darktable_t::gui, IOP_FLAGS_DEPRECATED, dt_gui_gtk_t::reset, darktable_t::signals, and dt_iop_roi_t::y.
Referenced by _darkroom_attach_missing_iop_guis(), _init_module_so(), dt_iop_gui_duplicate(), and enter().
|
inlinestatic |
leave a GUI critical section by releasing gui_data->lock
References dt_pthread_mutex_unlock().
Referenced by _auto_levels_callback(), _auto_levels_callback(), _auto_set_exposure(), _auto_set_illuminant(), _develop_ui_pipe_finished_callback(), _develop_ui_pipe_finished_callback(), _develop_ui_pipe_finished_callback(), _develop_ui_pipe_started_callback(), _do_get_structure_auto(), _do_get_structure_lines(), _do_get_structure_quad(), _draw(), _event_draw(), _get_structure(), _init_drawing(), _preview_pipe_finished_callback(), _process_common_setup(), _refresh_module_histogram(), _select_region_toggled_callback(), _select_region_toggled_callback(), _spot_settings_changed_callback(), _switch_cursors(), _sync_private_buffer_from_preview_cache(), area_button_release(), area_draw(), area_enter_notify(), area_leave_notify(), area_motion_notify(), auto_adjust_contrast_boost(), auto_adjust_exposure_boost(), button_pressed(), button_pressed(), button_released(), button_released(), checker_changed_callback(), commit_params(), commit_params_late(), commit_profile_callback(), corrections_done(), dt_drawlayer_begin_gui_stroke_capture(), dt_drawlayer_commit_dabs(), dt_iop_levels_compute_levels_automatic(), dt_iop_zonesystem_preview_draw(), gui_cache_init(), gui_focus(), gui_init(), gui_init(), gui_post_expose(), gui_post_expose(), gui_update(), gui_update(), invalidate_luminance_cache(), masks_selection_changed(), mouse_leave(), mouse_moved(), mouse_moved(), optimize_changed_callback(), process(), process(), process(), process_clusters(), process_common_cleanup(), process_common_setup(), process_drago(), process_internal(), reload_defaults(), rt_auto_levels_callback(), rt_curr_scale_update(), rt_develop_ui_pipe_finished_callback(), rt_display_wavelet_scale_callback(), run_profile_callback(), run_validation_callback(), safety_changed_callback(), scrolled(), start_profiling_callback(), toneeq_process(), update_curve_lut(), and update_histogram().
| gboolean dt_iop_gui_module_is_visible | ( | dt_iop_module_t * | module | ) |
check if current module is visible
References dt_iop_is_hidden(), and dt_iop_roi_t::y.
Referenced by _focus_module(), _module_from_active_group(), dt_dev_modules_update_multishow(), dt_iop_gui_get_next_visible_module(), and dt_iop_gui_get_previous_visible_module().
| void dt_iop_gui_rename_module | ( | dt_iop_module_t * | module | ) |
References _rename_module_key_press(), _rename_module_resize(), dt_accels_disconnect_on_text_input(), dt_iop_gui_update_header(), TRUE, and dt_iop_roi_t::y.
Referenced by _gui_copy_callback(), _gui_duplicate_callback(), _gui_rename_callback(), _iop_plugin_header_button_press(), and _menuitem_button_released_preset().
| void dt_iop_gui_reset | ( | dt_iop_module_t * | module | ) |
reset the ui to its defaults
References darktable, dt_iop_is_hidden(), darktable_t::gui, dt_gui_gtk_t::reset, and dt_iop_roi_t::y.
Referenced by _gui_reset_callback().
| void dt_iop_gui_set_enable_button | ( | dt_iop_module_t * | module | ) |
updates the enable button state. (take into account module->enabled and module->hide_enable_button
References dt_gui_add_class(), dt_gui_remove_class(), dt_iop_gui_set_enable_button_icon(), FALSE, TRUE, and dt_iop_roi_t::y.
Referenced by _delete_layer_clicked(), dt_dev_add_history_item_real(), dt_iop_gui_changed(), and dt_iop_gui_update_header().
| void dt_iop_gui_set_expanded | ( | dt_iop_module_t * | module, |
| gboolean | expanded, | ||
| gboolean | collapse_others | ||
| ) |
set expanded state of iop
References _gui_set_single_expanded(), _iop_dim_all_but(), darktable, darktable_t::develop, FALSE, dt_develop_t::iop, m, and dt_iop_roi_t::y.
Referenced by _focus_module(), _focus_next_module(), _focus_previous_module(), _gui_delete_callback(), _history_show_module_for_end(), _iop_plugin_header_button_press(), _modulegroups_switch_tab_next(), _modulegroups_switch_tab_previous(), default_iop_focus(), and dt_iop_gui_duplicate().
| void dt_iop_gui_set_expander | ( | dt_iop_module_t * | module | ) |
creates a label widget for the expander, with callback to enable/disable this module.
References _display_mask_indicator_callback(), _gui_multiinstance_callback(), _gui_off_button_press(), _gui_off_callback(), _gui_reset_callback(), _iop_plugin_body_button_press(), _iop_plugin_header_activate(), _iop_plugin_header_button_press(), _iop_tooltip_callback(), _mask_indicator_tooltip(), _presets_popup_callback(), darktable, dt_get_help_url(), dt_gui_add_class(), dt_gui_add_help_link(), dt_iop_gui_init_blending(), dt_iop_gui_set_enable_button_icon(), dt_iop_gui_update_header(), dt_ui_container_add_widget(), DT_UI_CONTAINER_PANEL_RIGHT_CENTER, dtgtk_button_new(), dtgtk_cairo_paint_module_switch(), dtgtk_cairo_paint_multiinstance(), dtgtk_cairo_paint_presets(), dtgtk_cairo_paint_reset(), dtgtk_cairo_paint_showmask(), DTGTK_EXPANDER, dtgtk_expander_get_body_event_box(), dtgtk_expander_get_frame(), dtgtk_expander_get_header_event_box(), dtgtk_expander_new(), dtgtk_togglebutton_new(), FALSE, darktable_t::gui, i, IOP_FLAGS_DEPRECATED, IOP_FLAGS_ONE_INSTANCE, IOP_MODULE_ICON, IOP_MODULE_INSTANCE, IOP_MODULE_LABEL, IOP_MODULE_LAST, IOP_MODULE_MASK, IOP_MODULE_PRESETS, IOP_MODULE_RESET, IOP_MODULE_SWITCH, TRUE, dt_gui_gtk_t::ui, and dt_iop_roi_t::y.
Referenced by _darkroom_attach_missing_iop_guis(), dt_iop_gui_duplicate(), and enter().
| void dt_iop_gui_update | ( | dt_iop_module_t * | module | ) |
updates the gui params and the enabled switch.
References darktable, dt_bauhaus_update_module(), dt_iop_gui_update_blending(), dt_iop_gui_update_expanded(), dt_iop_gui_update_header(), dt_iop_is_hidden(), darktable_t::gui, dt_gui_gtk_t::reset, and dt_iop_roi_t::y.
Referenced by _blendif_change_blend_colorspace(), _blendif_hide_output_channels(), _blendif_show_output_channels(), _darkroom_attach_missing_iop_guis(), _gui_reset_callback(), dt_dev_history_gui_update(), dt_gui_presets_apply_preset(), and dt_iop_gui_duplicate().
| void dt_iop_gui_update_expanded | ( | dt_iop_module_t * | module | ) |
refresh iop according to set expanded state
References DTGTK_EXPANDER, dtgtk_expander_set_expanded(), and dt_iop_roi_t::y.
Referenced by dt_iop_gui_update(), and enter().
| void dt_iop_gui_update_header | ( | dt_iop_module_t * | module | ) |
| void dt_iop_init_pipe | ( | struct dt_iop_module_t * | module, |
| struct dt_dev_pixelpipe_t * | pipe, | ||
| struct dt_dev_pixelpipe_iop_t * | piece | ||
| ) |
initialize pipe.
References dt_dev_pixelpipe_iop_t::blendop_data, and dt_calloc_align().
Referenced by dt_dev_pixelpipe_create_nodes().
| gboolean dt_iop_is_first_instance | ( | GList * | modules, |
| dt_iop_module_t * | module | ||
| ) |
returns true if module is the first instance of this operation in the pipe
References m, TRUE, and dt_iop_roi_t::y.
Referenced by declare_cat_on_pipe().
| gboolean dt_iop_is_hidden | ( | dt_iop_module_t * | module | ) |
References dt_iop_so_is_hidden(), and dt_iop_roi_t::y.
Referenced by _check_deleted_instances(), _create_deleted_modules(), _darkroom_attach_missing_iop_guis(), _get_user_mod_list(), _gui_delete_callback(), _lib_modulegroups_update_iop_visibility(), dt_iop_gui_cleanup_module(), dt_iop_gui_duplicate(), dt_iop_gui_init(), dt_iop_gui_module_is_visible(), dt_iop_gui_reset(), dt_iop_gui_update(), enter(), and leave().
| gboolean dt_iop_is_raster_mask_used | ( | dt_iop_module_t * | module, |
| int | id | ||
| ) |
iterates over the users hash table and checks if a specific mask is being used
References FALSE, key, TRUE, value, and dt_iop_roi_t::y.
Referenced by dt_develop_blend_process(), and process().
| void dt_iop_load_default_params | ( | dt_iop_module_t * | module | ) |
loads default settings from database.
References dt_iop_module_t::default_blendop_params, dt_iop_module_t::default_params, dt_iop_module_t::dev, dt_develop_blend_default_module_blend_colorspace(), dt_develop_blend_init_blend_parameters(), dt_iop_commit_blend_params(), dt_iop_compute_module_hash(), dt_iop_gui_blending_reload_defaults(), dt_develop_t::forms, dt_iop_module_t::params, and dt_iop_module_t::params_size.
Referenced by dt_iop_reload_defaults().
| int dt_iop_load_module | ( | dt_iop_module_t * | module, |
| dt_iop_module_so_t * | module_so, | ||
| struct dt_develop_t * | dev | ||
| ) |
| int dt_iop_load_module_by_so | ( | dt_iop_module_t * | module, |
| dt_iop_module_so_t * | so, | ||
| struct dt_develop_t * | dev | ||
| ) |
load a module for a given .so
References dt_iop_module_so_t::op, and dt_iop_roi_t::y.
Referenced by _init_module_so(), _init_presets(), dt_dev_load_modules(), dt_develop_blend_legacy_params_from_so(), and dt_iop_load_module().
loads and inits the modules in the plugins/ directory.
References _init_module_so(), darktable, darktable_t::db, dt_database_begin_transaction_batch(), dt_database_end_transaction_batch(), dt_iop_load_module_so(), dt_module_load_modules(), darktable_t::iop, and dt_iop_roi_t::y.
Referenced by dt_init().
| gboolean dt_iop_module_has_raster_mask | ( | const dt_iop_module_t * | module | ) |
returns TRUE if module consumes a raster mask
References FALSE, and dt_iop_roi_t::y.
Referenced by dt_iop_module_needs_mask_history().
| gboolean dt_iop_module_needs_mask_history | ( | const dt_iop_module_t * | module | ) |
returns TRUE if module needs masks committed to history
References dt_iop_module_has_raster_mask(), FALSE, and dt_iop_roi_t::y.
Referenced by dt_dev_add_history_item_ext(), and dt_dev_history_item_from_source_history_item().
| void dt_iop_nap | ( | int32_t | usec | ) |
allow plugins to relinquish CPU and go to sleep for some time
References dt_iop_roi_t::y.
Referenced by _abort_module_shutdown_cleanup(), dt_dev_darkroom_pipeline(), and dt_drawlayer_worker_replay_finished_stroke_to_base_patch().
| void dt_iop_reload_defaults | ( | dt_iop_module_t * | module | ) |
reloads certain gui/param defaults when the image was switched.
References darktable, DT_DEBUG_PARAMS, dt_iop_gui_update_header(), dt_iop_load_default_params(), dt_print(), darktable_t::gui, dt_gui_gtk_t::reset, and dt_iop_roi_t::y.
Referenced by _dt_dev_modules_reload_defaults(), _gui_reset_callback(), _insert_default_modules(), dt_dev_init_default_history(), and dt_iop_gui_duplicate().
| void dt_iop_request_focus | ( | dt_iop_module_t * | module | ) |
requests the focus for this plugin (to draw overlays over the center image)
References darktable_t::collection, darktable, darktable_t::develop, dt_collection_hint_message(), dt_control_change_cursor(), dt_control_queue_redraw_center(), DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_gui_add_class(), dt_gui_refocus_center(), dt_gui_remove_class(), dt_iop_color_picker_reset(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_get_pluginui(), dt_masks_reset_form_gui(), DT_SIGNAL_DEVELOP_MASKS_GUI_CHANGED, FALSE, darktable_t::gui, dt_develop_t::gui_module, dt_gui_gtk_t::reset, darktable_t::signals, TRUE, and dt_iop_roi_t::y.
Referenced by _add_shape(), _area_button_press_callback(), _area_scroll_callback(), _auto_levels_callback(), _auto_levels_callback(), _blendop_blendif_key_press(), _blendop_blendif_showmask_clicked(), _blendop_blendif_suppress_toggled(), _blendop_masks_add_shape(), _blendop_masks_show_and_edit(), _check_deleted_instances(), _color_picker_callback_button_press(), _darkroom_image_loaded_callback(), _display_mask_callback(), _display_mask_indicator_callback(), _edit_masks(), _enter_edit_mode(), _enter_edit_mode(), _event_fit_both_button_clicked(), _event_fit_h_button_clicked(), _event_fit_v_button_clicked(), _event_structure_auto_clicked(), _event_structure_lines_clicked(), _event_structure_quad_clicked(), _focus_module(), _gui_delete_callback(), _gui_off_button_press(), _gui_set_single_expanded(), _iop_plugin_body_button_press(), _iop_plugin_header_button_press(), _lib_modulegroups_scroll(), _lib_modulegroups_update_iop_visibility(), _modulegroups_switch_tab_next(), _modulegroups_switch_tab_previous(), _raster_combo_populate(), _select_region_toggled_callback(), _select_region_toggled_callback(), acquire_source_button_pressed(), acquire_target_button_pressed(), area_button_press(), area_button_press(), area_button_release(), auto_adjust_contrast_boost(), auto_adjust_exposure_boost(), btn_make_radio_callback(), button_pressed(), button_pressed(), default_iop_focus(), dt_iop_gui_duplicate(), dt_iop_levels_button_press(), dt_iop_levels_scroll(), dt_masks_creation_mode(), dt_masks_iop_combo_populate(), gui_reset(), mask_callback(), notebook_button_press(), profile_changed(), rt_add_shape(), rt_auto_levels_callback(), rt_display_wavelet_scale_callback(), rt_edit_masks_callback(), rt_select_algorithm_callback(), rt_showmask_callback(), rt_suppress_callback(), rt_wdbar_button_press(), rt_wdbar_scrolled(), show_luminance_mask_callback(), start_profiling_callback(), and workicc_changed().
| void dt_iop_set_cache_bypass | ( | dt_iop_module_t * | module, |
| gboolean | state | ||
| ) |
References dt_iop_module_t::bypass_cache, FALSE, and dt_iop_roi_t::y.
Referenced by _blendop_blendif_channel_mask_view(), _blendop_blendif_channel_mask_view_toggle(), _blendop_blendif_leave_delayed(), _blendop_blendif_showmask_clicked(), _color_picker_callback_button_press(), _color_picker_new(), _color_picker_reset(), _display_mask_indicator_callback(), _enter_edit_mode(), _enter_edit_mode(), _event_commit_clicked(), _event_commit_clicked(), _visualize_callback(), commit_params(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_update_blendif(), dt_iop_gui_update_blending(), gui_cleanup(), gui_focus(), init(), mask_callback(), process(), run_profile_callback(), run_validation_callback(), show_luminance_mask_callback(), and show_mask_callback().
| void dt_iop_set_darktable_iop_table | ( | ) |
| const char ** dt_iop_set_description | ( | dt_iop_module_t * | module, |
| const char * | main_text, | ||
| const char * | purpose, | ||
| const char * | input, | ||
| const char * | process, | ||
| const char * | output | ||
| ) |
References process(), and dt_iop_roi_t::y.
Referenced by description().
| void dt_iop_set_mask_mode | ( | dt_iop_module_t * | module, |
| int | mask_mode | ||
| ) |
make sure the raster mask is advertised if available
References DEVELOP_MASK_ENABLED, DEVELOP_MASK_RASTER, dt_history_item_get_name(), key, and dt_iop_roi_t::y.
Referenced by _blendop_masks_mode_callback(), and dt_iop_commit_blend_params().
| gboolean dt_iop_so_is_hidden | ( | dt_iop_module_so_t * | module | ) |
checks if iop do have an ui
References FALSE, IOP_FLAGS_HIDDEN, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_is_hidden().
| void dt_iop_throttled_history_update | ( | gpointer | data | ) |
shared callback for throttled module history updates
References darktable, darktable_t::develop, dt_dev_add_history_item, and TRUE.
Referenced by _auto_set_illuminant(), _move_point_internal(), _move_point_internal(), _move_point_internal(), _move_point_internal(), area_motion_notify(), lowlight_motion_notify(), and rawdenoise_motion_notify().
cleans up the dlopen refs.
References _iop_presets_select_stmt, darktable, dt_free, darktable_t::iop, and dt_iop_roi_t::y.
Referenced by dt_cleanup().
| void dt_iop_update_multi_priority | ( | dt_iop_module_t * | module, |
| int | new_priority | ||
| ) |
set multi_priority and update raster mask links
References dt_dev_history_item_t::blend_params, dt_iop_module_t::blend_params, key, dt_develop_blend_params_t::raster_mask_instance, value, and dt_iop_roi_t::y.
Referenced by _create_deleted_modules(), _gui_delete_callback(), _history_to_module(), _process_history_db_entry(), _rebuild_multi_priority(), and dt_dev_module_duplicate().
|
inlinestatic |