![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/darktable.h"#include "common/sentry.h"#include "common/telemetry.h"#include "develop/imageop.h"#include "bauhaus/bauhaus.h"#include "common/collection.h"#include "common/debug.h"#include "common/exif.h"#include "common/history.h"#include "common/imagebuf.h"#include "common/imageio_rawspeed.h"#include "common/interpolation.h"#include "common/module.h"#include "common/opencl.h"#include "common/usermanual_url.h"#include "control/control.h"#include "control/signal.h"#include "develop/blend.h"#include "develop/develop.h"#include "develop/format.h"#include "develop/masks.h"#include "develop/tiling.h"#include "gui/gdkkeys.h"#include "gui/presets.h"#include "dtgtk/button.h"#include "dtgtk/expander.h"#include "dtgtk/gradientslider.h"#include "dtgtk/icon.h"#include "gui/color_picker_proxy.h"#include "gui/gtk.h"#include "gui/gui_throttle.h"#include <assert.h>#include <gmodule.h>#include <math.h>#include <complex.h>#include <stdlib.h>#include <string.h>#include <strings.h>#include <time.h>#include "iop/iop_api.h"
Include dependency graph for imageop.c:Go to the source code of this file.
Data Structures | |
| struct | dt_iop_gui_simple_callback_t |
Macros | |
| #define | DT_IOP_HEADER_MENU_OPEN "dt-module-header-menu-open" |
| #define | DT_IOP_HEADER_MENU_DISMISS_CLICK "dt-module-header-menu-dismiss-click" |
| #define | DT_IOP_HEADER_IGNORE_RELEASE "dt-module-header-ignore-release" |
| #define | INCLUDE_API_FROM_MODULE_LOAD "iop_load_module" |
| #define | INCLUDE_API_FROM_MODULE_LOAD_BY_SO |
Typedefs | |
| typedef struct dt_iop_gui_simple_callback_t | dt_iop_gui_simple_callback_t |
Variables | |
| static sqlite3_stmt * | _iop_presets_select_stmt = NULL |
| #define DT_IOP_HEADER_IGNORE_RELEASE "dt-module-header-ignore-release" |
| #define DT_IOP_HEADER_MENU_DISMISS_CLICK "dt-module-header-menu-dismiss-click" |
| #define DT_IOP_HEADER_MENU_OPEN "dt-module-header-menu-open" |
| #define INCLUDE_API_FROM_MODULE_LOAD "iop_load_module" |
| #define INCLUDE_API_FROM_MODULE_LOAD_BY_SO |
| typedef struct dt_iop_gui_simple_callback_t dt_iop_gui_simple_callback_t |
|
static |
Definition at line 2571 of file imageop.c.
References DT_DEV_PIXELPIPE_DISPLAY_NONE, dt_dev_pixelpipe_update_history_main, dt_gui_freeze_begin, dt_gui_freeze_end, dt_gui_widgets_suppressed(), dt_iop_request_focus(), dt_iop_set_cache_bypass(), FALSE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Definition at line 876 of file imageop.c.
References _rename_module_idle(), IS_NULL_PTR, and dt_iop_roi_t::y.
Referenced by _gui_multiinstance_callback().
|
static |
Definition at line 634 of file imageop.c.
References dt_develop_t::alliop, dt_control_queue_redraw_center(), dt_dev_module_remove(), dt_dev_pixelpipe_rebuild_all, dt_dev_undo_end_record(), dt_dev_undo_start_record(), dt_dev_write_history(), dt_gui_freeze_begin, dt_gui_freeze_end, dt_gui_refocus_center(), dt_iop_gui_cleanup_module(), dt_iop_is_hidden(), dt_iop_request_focus(), dt_iop_update_multi_priority(), FALSE, dt_develop_t::gui_attached, dt_develop_t::gui_module, dt_develop_t::history, IS_NULL_PTR, dt_dev_history_item_t::multi_priority, and dt_iop_roi_t::y.
Referenced by _gui_multiinstance_callback().
|
static |
Definition at line 884 of file imageop.c.
References _rename_module_idle(), IS_NULL_PTR, and dt_iop_roi_t::y.
Referenced by _gui_multiinstance_callback().
|
static |
Definition at line 1019 of file imageop.c.
References _gui_copy_callback(), _gui_delete_callback(), _gui_duplicate_callback(), _gui_rename_callback(), _iop_plugin_header_menu_deactivate(), dt_gui_menu_popup(), DT_IOP_HEADER_MENU_OPEN, DTGTK_BUTTON, dtgtk_button_set_active(), FALSE, IOP_FLAGS_ONE_INSTANCE, IS_NULL_PTR, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Modules may keep a delayed history commit queued while the user edits a control, for example through gui-throttled graph interactions. Enabling or disabling a module is an immediate history state change, so any stale delayed task must be canceled first or it may land afterwards and replay an older enabled+params state over the newer toggle action.
Definition at line 1075 of file imageop.c.
References dt_dev_add_history_item, dt_free, dt_gui_throttle_cancel(), dt_gui_widgets_suppressed(), dt_history_item_get_name(), dt_sentry_record_module_usage(), dt_telemetry_record_module_usage(), FALSE, tooltip, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Definition at line 988 of file imageop.c.
References dt_iop_gui_rename_module(), and dt_iop_roi_t::y.
Referenced by _gui_multiinstance_callback().
|
static |
Definition at line 2160 of file imageop.c.
References dt_develop_t::blend_params, darktable, darktable_t::develop, DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_dev_add_history_item, dt_gui_presets_autoapply_for_module(), dt_iop_color_picker_reset(), dt_iop_commit_blend_params(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_reset(), dt_iop_gui_update(), dt_iop_reload_defaults(), DT_MASKS_EVENT_RESET, dt_masks_form_delete(), dt_masks_get_from_id(), dt_modifier_is(), DT_SIGNAL_MASK_CHANGED, FALSE, darktable_t::signals, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Definition at line 2320 of file imageop.c.
References darktable, dt_conf_set_bool(), dt_control_queue_redraw_center(), dt_gui_add_class(), dt_gui_remove_class(), dt_iop_request_focus(), dt_ui_container_focus_widget(), DT_UI_CONTAINER_SIZE, DTGTK_EXPANDER, dtgtk_expander_set_expanded(), darktable_t::gui, IS_NULL_PTR, k, dt_gui_gtk_t::ui, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_duplicate(), and dt_iop_gui_set_expanded().
Definition at line 1866 of file imageop.c.
References dt_hash(), and dt_iop_roi_t::y.
Referenced by dt_iop_compute_blendop_hash().
Definition at line 1516 of file imageop.c.
References _init_presets(), darktable, dt_free, dt_iop_cleanup_module(), dt_iop_colorspace_is_rgb(), dt_iop_gui_cleanup_blending(), dt_iop_gui_cleanup_module(), dt_iop_gui_init(), dt_iop_gui_init_blending(), dt_iop_load_module_by_so(), FALSE, darktable_t::gui, IOP_CS_LAB, IOP_FLAGS_NO_MASKS, IOP_FLAGS_SUPPORTS_BLENDING, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_load_modules_so().
|
static |
Definition at line 1311 of file imageop.c.
References _iop_presets_select_stmt, darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_BLOB, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_develop_blend_legacy_params(), dt_develop_blend_version(), dt_exif_xmp_encode(), dt_free, dt_gui_presets_autogen_enabled(), dt_iop_cleanup_module(), dt_iop_load_module_by_so(), IS_NULL_PTR, name, and dt_iop_roi_t::y.
Referenced by _init_module_so().
|
static |
Definition at line 254 of file imageop.c.
References blend_color_picker_apply(), DT_DEBUG_DEV, dt_iop_color_picker_get_ready_data(), dt_print(), dt_dev_pixelpipe_iop_t::global_hash, and IS_NULL_PTR.
Referenced by dt_iop_gui_cleanup_module(), and dt_iop_gui_init().
| void _iop_dim_all_but | ( | dt_iop_module_t * | module, |
| gboolean | dim | ||
| ) |
Dim all modules except the one referenced, if any reference, or undim all
Definition at line 2365 of file imageop.c.
References darktable, darktable_t::develop, dt_gui_add_class(), dt_gui_remove_class(), dt_iop_gui_get_pluginui(), dt_develop_t::iop, IS_NULL_PTR, m, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expanded().
|
static |
Clear GUI pointers that still reference one iop widget being finalized.
| user_data | iop module owner. |
| where_the_object_was | finalized widget address. |
Definition at line 2021 of file imageop.c.
References darktable, darktable_t::gui, IS_NULL_PTR, dt_gui_gtk_t::scroll_to, dt_gui_gtk_t::scroll_to_header_once, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
|
static |
|
static |
Definition at line 1143 of file imageop.c.
References _iop_plugin_focus_accel(), dt_gui_gtk_t::accels, dt_accels_t::darkroom_accels, darktable, delete_underscore(), dt_accels_build_path(), dt_accels_new_virtual_instance_shortcut(), dt_accels_remove_shortcut(), dt_capitalize_label(), dt_free, dt_gui_container_nth_child(), dt_history_item_get_label(), darktable_t::gui, IOP_MODULE_LABEL, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_update_header().
|
static |
Definition at line 2407 of file imageop.c.
References _presets_popup_callback(), darktable, dt_iop_request_focus(), FALSE, darktable_t::gui, dt_gui_gtk_t::has_scroll_focus, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Definition at line 2462 of file imageop.c.
References dt_dev_add_history_item, dt_iop_gui_set_expanded(), dt_iop_request_focus(), FALSE, IS_NULL_PTR, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_init().
|
static |
Definition at line 2446 of file imageop.c.
References IS_NULL_PTR, TRUE, and dt_iop_roi_t::y.
Referenced by _iop_panel_label(), and dt_iop_gui_init().
|
static |
Definition at line 2430 of file imageop.c.
References FALSE, IS_NULL_PTR, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Definition at line 2488 of file imageop.c.
References _presets_popup_callback(), darktable, dt_iop_gui_rename_module(), DT_IOP_HEADER_IGNORE_RELEASE, DT_IOP_HEADER_MENU_DISMISS_CLICK, DT_IOP_HEADER_MENU_OPEN, dt_modifier_is(), FALSE, darktable_t::gui, dt_gui_gtk_t::has_scroll_focus, IS_NULL_PTR, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Definition at line 2532 of file imageop.c.
References dt_iop_gui_set_expanded(), DT_IOP_HEADER_IGNORE_RELEASE, DT_IOP_HEADER_MENU_DISMISS_CLICK, DT_IOP_HEADER_MENU_OPEN, dt_iop_request_focus(), dt_modifier_is(), FALSE, IS_NULL_PTR, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Definition at line 2437 of file imageop.c.
References FALSE, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
Keep the dismiss-click marker until the next main-loop pass. GTK first deactivates the menu, then may deliver the same pointer event to the module header underneath. That event closes the menu only; it must not also toggle the expander state.
Definition at line 1003 of file imageop.c.
References _iop_plugin_header_menu_dismiss_idle(), DT_IOP_HEADER_MENU_DISMISS_CLICK, DT_IOP_HEADER_MENU_OPEN, TRUE, and dt_iop_roi_t::y.
Referenced by _gui_multiinstance_callback(), and _presets_popup_callback().
|
static |
Definition at line 993 of file imageop.c.
References DT_IOP_HEADER_MENU_DISMISS_CLICK, and dt_iop_roi_t::y.
Referenced by _iop_plugin_header_menu_deactivate().
| gboolean _iop_tooltip_callback | ( | GtkWidget * | widget, |
| gint | x, | ||
| gint | y, | ||
| gboolean | keyboard_mode, | ||
| GtkTooltip * | tooltip, | ||
| gpointer | user_data | ||
| ) |
Definition at line 2725 of file imageop.c.
References dt_gui_add_class(), DT_GUI_BOX_SPACING, DT_PIXEL_APPLY_DPI, FALSE, IS_NULL_PTR, k, tooltip, TRUE, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
| gboolean _iop_validate_params | ( | dt_introspection_field_t * | field, |
| gpointer | params, | ||
| gboolean | report | ||
| ) |
Definition at line 1745 of file imageop.c.
References _iop_validate_params(), dt_introspection_field_t::Array, dt_introspection_field_t::Char, dt_introspection_type_array_t::count, DT_INTROSPECTION_TYPE_ARRAY, DT_INTROSPECTION_TYPE_BOOL, DT_INTROSPECTION_TYPE_CHAR, DT_INTROSPECTION_TYPE_ENUM, DT_INTROSPECTION_TYPE_FLOAT, DT_INTROSPECTION_TYPE_FLOATCOMPLEX, DT_INTROSPECTION_TYPE_INT, DT_INTROSPECTION_TYPE_INT8, DT_INTROSPECTION_TYPE_OPAQUE, DT_INTROSPECTION_TYPE_STRUCT, DT_INTROSPECTION_TYPE_UINT, DT_INTROSPECTION_TYPE_UNION, DT_INTROSPECTION_TYPE_USHORT, dt_introspection_type_struct_t::entries, dt_introspection_type_union_t::entries, dt_introspection_field_t::Enum, FALSE, dt_introspection_type_array_t::field, dt_introspection_type_struct_t::fields, dt_introspection_type_union_t::fields, dt_introspection_field_t::Float, dt_introspection_field_t::FloatComplex, dt_introspection_field_t::header, i, dt_introspection_field_t::Int, dt_introspection_field_t::Int8, dt_introspection_type_float_t::Max, dt_introspection_type_float_complex_t::Max, dt_introspection_type_char_t::Max, dt_introspection_type_int8_t::Max, dt_introspection_type_ushort_t::Max, dt_introspection_type_int_t::Max, dt_introspection_type_uint_t::Max, dt_introspection_type_float_t::Min, dt_introspection_type_float_complex_t::Min, dt_introspection_type_char_t::Min, dt_introspection_type_int8_t::Min, dt_introspection_type_ushort_t::Min, dt_introspection_type_int_t::Min, dt_introspection_type_uint_t::Min, dt_introspection_type_header_t::name, dt_introspection_type_header_t::offset, p, dt_introspection_type_header_t::size, dt_introspection_field_t::Struct, TRUE, dt_introspection_type_header_t::type, dt_introspection_type_array_t::type, dt_introspection_type_header_t::type_name, dt_introspection_field_t::UInt, dt_introspection_field_t::Union, dt_introspection_field_t::UShort, dt_introspection_type_enum_t::values, and dt_iop_roi_t::y.
Referenced by _iop_validate_params(), and dt_iop_commit_params().
|
static |
Definition at line 2602 of file imageop.c.
References dt_develop_blend_get_mask_usage(), FALSE, IS_NULL_PTR, top, and dt_iop_roi_t::y.
Referenced by _mask_indicator_tooltip(), and dt_iop_add_remove_mask_indicator().
|
static |
Definition at line 2640 of file imageop.c.
References _mask_indicator_get_usage(), dt_free, dt_history_item_get_name(), FALSE, tooltip, TRUE, type, void(), x, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_expander().
|
static |
Definition at line 2203 of file imageop.c.
References _iop_plugin_header_menu_deactivate(), darktable, dt_gui_menu_popup(), dt_gui_presets_popup_menu_show_for_module(), DT_IOP_HEADER_MENU_OPEN, darktable_t::gui, IS_NULL_PTR, dt_gui_gtk_t::presets_popup_menu, TRUE, and dt_iop_roi_t::y.
Referenced by _iop_plugin_body_button_press(), _iop_plugin_header_button_press(), and dt_iop_gui_set_expander().
|
static |
Rename a freshly-created module after GTK has finished the menu activation.
The copy/duplicate actions create and show a new expander while the multi-instance menu is still unwinding its activation path. Starting the in-place editor immediately can lose the entry focus to the menu teardown, so we wait for the next main-loop idle before installing the entry in the new module header.
Definition at line 868 of file imageop.c.
References dt_iop_gui_rename_module(), and dt_iop_roi_t::y.
Referenced by _gui_copy_callback(), and _gui_duplicate_callback().
|
static |
Definition at line 892 of file imageop.c.
References _rename_module_key_press(), dt_dev_add_history_item, dt_iop_gui_update_header(), dt_keys_mainpad_alternatives(), dt_masks_group_update_name(), FALSE, key, name, TRUE, and dt_iop_roi_t::y.
Referenced by _rename_module_key_press(), and dt_iop_gui_rename_module().
|
static |
Definition at line 945 of file imageop.c.
References TRUE, width, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_rename_module().
|
static |
Definition at line 248 of file imageop.c.
References dt_iop_module_t::default_params, dt_free, and dt_iop_module_t::params.
|
static |
Definition at line 236 of file imageop.c.
References dt_dev_pixelpipe_iop_t::data, and dt_free_align.
|
static |
Definition at line 219 of file imageop.c.
References dt_dev_pixelpipe_iop_t::data, and dt_iop_module_t::params_size.
|
static |
Definition at line 167 of file imageop.c.
References IOP_GROUP_TECHNICAL.
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 316 of file imageop.c.
References dt_iop_roi_t::y.
Referenced by dt_iop_load_module_so().
|
static |
Definition at line 308 of file imageop.c.
References dt_iop_roi_t::y.
Referenced by dt_iop_load_module_so().
|
static |
Definition at line 304 of file imageop.c.
References dt_iop_roi_t::y.
Referenced by dt_iop_load_module_so().
Definition at line 312 of file imageop.c.
References dt_iop_roi_t::y.
Referenced by dt_iop_load_module_so().
|
static |
Definition at line 243 of file imageop.c.
References IOP_GUI_FREE.
|
static |
Definition at line 205 of file imageop.c.
References dt_iop_module_t::default_params, dt_iop_module_t::params, and dt_iop_module_t::params_size.
|
static |
Definition at line 228 of file imageop.c.
References dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::data_size, dt_calloc_align(), and dt_iop_module_t::params_size.
| int default_iop_focus | ( | dt_gui_module_t * | m, |
| gboolean | toggle | ||
| ) |
Definition at line 406 of file imageop.c.
References darktable, darktable_t::develop, dt_gui_refocus_center(), dt_iop_gui_set_expanded(), dt_iop_request_focus(), FALSE, dt_develop_t::gui_module, TRUE, and dt_iop_roi_t::y.
|
static |
Definition at line 294 of file imageop.c.
References dt_iop_roi_t::height, i, dt_iop_module_t::process_plain, dt_dev_pixelpipe_iop_t::roi_in, dt_dev_pixelpipe_iop_t::roi_out, and dt_iop_roi_t::width.
|
static |
| void dt_bauhaus_update_module | ( | dt_iop_module_t * | self | ) |
Definition at line 3252 of file imageop.c.
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, IS_NULL_PTR, m, dt_bauhaus_widget_t::type, and dt_iop_roi_t::y.
Referenced by dt_iop_gui_update().
Definition at line 3305 of file imageop.c.
References 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, IS_NULL_PTR, dt_bauhaus_widget_t::label, and dt_bauhaus_widget_t::type.
Referenced by enter().
| float dt_dev_get_module_scale | ( | const dt_dev_pixelpipe_t *const | pipe, |
| const dt_iop_roi_t *const | roi_in | ||
| ) |
Definition at line 131 of file imageop.c.
References dt_dev_pixelpipe_t::iscale, and dt_iop_roi_t::scale.
Referenced by get_scales(), process(), process(), process(), process(), process_cl(), process_laplacian_bayer(), process_laplacian_bayer_cl(), process_laplacian_xtrans(), process_laplacian_xtrans_cl(), and tiling_callback().
| uint32_t dt_dev_get_roi_filters | ( | const dt_dev_pixelpipe_iop_t *const | piece, |
| const dt_iop_roi_t *const | roi_in | ||
| ) |
Definition at line 136 of file imageop.c.
References dt_dev_pixelpipe_iop_t::dsc_in, dt_rawspeed_crop_dcraw_filters(), dt_iop_buffer_dsc_t::filters, dt_iop_roi_t::x, and dt_iop_roi_t::y.
Referenced by _harmonic_reconstruct_host(), process(), process(), process_cl(), process_default_cl(), process_harmonic_bayer(), process_harmonic_cl(), process_laplacian_bayer(), process_laplacian_bayer_cl(), and process_rcd_cl().
| void dt_iop_add_remove_mask_indicator | ( | dt_iop_module_t * | module | ) |
add/remove mask indicator to iop module header
Definition at line 2701 of file imageop.c.
References _mask_indicator_get_usage(), FALSE, IS_NULL_PTR, 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 | ||
| ) |
Definition at line 1856 of file imageop.c.
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.
Definition at line 1578 of file imageop.c.
References dt_develop_t::color_picker, darktable, darktable_t::develop, dt_control_signal_disconnect_all(), dt_free, dt_develop_t::enabled, FALSE, IS_NULL_PTR, dt_develop_t::picker, darktable_t::signals, 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(), _studio_dev_teardown(), 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 | ||
| ) |
Release module-owned resources for one pixelpipe node.
The instance callback is an immutable copy of the callback stored in the loaded shared-object descriptor. Pixelpipes can retain removed module instances until their next topology rebuild, so validate both the descriptor lifetime and that callback identity before calling through the instance. A mismatch means the instance storage is no longer trustworthy; calling the descriptor callback with that same instance would only move the use-after-free into the module cleanup code.
Definition at line 582 of file imageop.c.
References dt_dev_pixelpipe_iop_t::blendop_data, darktable, DT_DEBUG_ALWAYS, dt_free_align, dt_print(), FALSE, darktable_t::iop, IS_NULL_PTR, TRUE, 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 dt_develop_blend_params_t * | blendop_params | ||
| ) |
Definition at line 1705 of file imageop.c.
References DEVELOP_BLEND_CS_NONE, DT_DEBUG_MASKS, dt_iop_set_mask_mode(), dt_print(), m, and dt_iop_roi_t::y.
Referenced by _gui_reset_callback(), _history_to_module(), dt_dev_copy_module_contents(), dt_dev_history_item_update_from_params(), dt_gui_presets_apply_preset(), dt_iop_gui_duplicate(), and dt_iop_load_default_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.
Definition at line 1951 of file imageop.c.
References _iop_validate_params(), dt_dev_pixelpipe_iop_t::blendop_data, dt_dev_pixelpipe_iop_t::blendop_hash, dt_dev_pixelpipe_iop_t::cache_output_on_ram, 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_get_pipe_name(), dt_print(), 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(), _sync_focused_in_place(), and dt_dev_pixelpipe_sync_no_history().
| void dt_iop_compute_blendop_hash | ( | dt_iop_module_t * | module, |
| uint64_t | hash, | ||
| GList * | masks | ||
| ) |
Definition at line 1880 of file imageop.c.
References _hash_raster_masks(), dt_hash(), dt_masks_get_from_id_ext(), dt_masks_group_get_hash(), IOP_FLAGS_SUPPORTS_BLENDING, IS_NULL_PTR, and dt_iop_roi_t::y.
Referenced by dt_iop_compute_module_hash().
| 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.
Definition at line 1928 of file imageop.c.
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.
Definition at line 321 of file imageop.c.
References dt_free, 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, IS_NULL_PTR, 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.
Definition at line 2984 of file imageop.c.
Referenced by 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
Definition at line 3012 of file imageop.c.
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 | ) |
Definition at line 3100 of file imageop.c.
References darktable, darktable_t::iop, IS_NULL_PTR, 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.
Definition at line 3078 of file imageop.c.
References darktable, darktable_t::iop, IS_NULL_PTR, 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 | ) |
Definition at line 3034 of file imageop.c.
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 IS_NULL_PTR(multi_name) do not check for it
Definition at line 3178 of file imageop.c.
References IS_NULL_PTR, m, and dt_iop_roi_t::y.
Referenced by _hm_dest_module_from_id(), _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
Definition at line 3160 of file imageop.c.
References m, and dt_iop_roi_t::y.
Referenced by _dt_styles_tmp_module_from_style_item(), _history_merge_resolve_dest_instance(), _hm_dest_module_from_id(), _hm_module_from_id(), _refresh_global_histogram_backbuf_for_hash(), _refresh_preview_histograms(), dt_dev_create_module_instance(), dt_dev_snapshot_capture(), dt_history_merge(), and dt_ioppr_resync_iop_list().
| int dt_iop_get_module_flags | ( | const char * | op | ) |
get module flags, works in dev and lt mode
Definition at line 3039 of file imageop.c.
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 | ||
| ) |
Definition at line 3017 of file imageop.c.
References dt_iop_roi_t::y.
Referenced by _create_deleted_modules(), _process_history_db_entry(), dt_iop_get_colorout_module(), dt_iop_get_module(), and reload_defaults().
| void dt_iop_gui_changed | ( | dt_iop_module_t * | action, |
| GtkWidget * | widget, | ||
| gpointer | data | ||
| ) |
Definition at line 3234 of file imageop.c.
References darktable, darktable_t::develop, dt_dev_add_history_item, dt_iop_color_picker_reset(), dt_iop_gui_set_enable_button(), dt_iop_gui_update_header(), IS_NULL_PTR, 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
Definition at line 2036 of file imageop.c.
References _iop_color_picker_data_ready_callback(), dt_gui_gtk_t::accels, darktable, dt_accels_build_path(), dt_accels_remove_accel(), dt_accels_remove_shortcut(), DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, dt_free, DT_GUI_MODULE, dt_iop_gui_cleanup_blending(), dt_iop_is_hidden(), darktable_t::gui, IOP_FLAGS_DEPRECATED, IS_NULL_PTR, m, dt_gui_gtk_t::scroll_to, dt_gui_gtk_t::scroll_to_header_once, darktable_t::signals, and dt_iop_roi_t::y.
Referenced by _check_deleted_instances(), _gui_delete_callback(), _init_module_so(), _studio_dev_teardown(), and leave().
| gboolean dt_iop_gui_commit_iop_order_change | ( | struct dt_develop_t * | dev, |
| dt_iop_module_t * | module, | ||
| gboolean | enable, | ||
| gboolean | write_history, | ||
| const char * | reason | ||
| ) |
Commit the GUI-side consequences of an IOP-order change.
Order changes may come from drag-and-drop, context-menu move commands or preset application. The low-level order code only mutates dt_develop_t::iop and the serialized order list; this function updates module headers, rebuilds the pipes, stores the history item when requested and broadcasts the GUI change signal.
| dev | Develop instance owning the reordered modules. |
| module | Module to record in history, or NULL for whole-pipeline changes. |
| enable | History enable state passed to dt_dev_add_history_item. |
| write_history | TRUE to record a history item, FALSE to skip it. |
| reason | Debug string used in IOP-order checks. |
dev was NULL. Definition at line 746 of file imageop.c.
References dt_dev_add_history_item, dt_dev_pixelpipe_rebuild_all, dt_dev_signal_modules_moved(), dt_ioppr_check_iop_order(), enable(), FALSE, IS_NULL_PTR, TRUE, and dt_iop_roi_t::y.
Referenced by _ioporder_apply_preset(), dt_iop_gui_move_module_after(), dt_iop_gui_move_module_before(), gui_reset(), and set_params().
| dt_iop_module_t * dt_iop_gui_duplicate | ( | dt_iop_module_t * | base, |
| gboolean | copy_params | ||
| ) |
Definition at line 802 of file imageop.c.
References _gui_set_single_expanded(), dt_iop_module_t::blend_params, darktable, dt_iop_module_t::dev, dt_dev_add_history_item, dt_dev_pixelpipe_rebuild_all, dt_gui_freeze_begin, dt_gui_freeze_end, 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_iop_module_t::expander, FALSE, darktable_t::gui, IOP_FLAGS_SUPPORTS_BLENDING, IS_NULL_PTR, dt_develop_blend_params_t::mask_id, dt_iop_module_t::params, dt_gui_gtk_t::scroll_to_header_once, TRUE, and dt_iop_roi_t::y.
Referenced by _menuitem_button_released_preset().
| 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
Definition at line 788 of file imageop.c.
References dt_iop_gui_module_is_visible(), and dt_iop_roi_t::y.
| GtkWidget * dt_iop_gui_get_pluginui | ( | dt_iop_module_t * | module | ) |
get the eventbox of plugin ui in expander
Definition at line 2967 of file imageop.c.
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
Definition at line 774 of file imageop.c.
References dt_iop_gui_module_is_visible(), and dt_iop_roi_t::y.
| GtkWidget * dt_iop_gui_get_widget | ( | dt_iop_module_t * | module | ) |
get the widget of plugin ui in expander
Definition at line 2962 of file imageop.c.
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
Definition at line 1235 of file imageop.c.
References _iop_color_picker_data_ready_callback(), _iop_plugin_enable_accel(), _iop_plugin_focus_accel(), darktable, delete_underscore(), dt_accels_build_path(), dt_accels_new_darkroom_action, dt_capitalize_label(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, dt_free, dt_gui_widget_freeze, dt_iop_is_hidden(), DT_SIGNAL_CONTROL_PICKERDATA_READY, IOP_FLAGS_DEPRECATED, darktable_t::signals, and dt_iop_roi_t::y.
Referenced by _init_module_so(), dt_dev_history_gui_update(), dt_iop_gui_duplicate(), and enter().
| gboolean dt_iop_gui_module_is_visible | ( | dt_iop_module_t * | module | ) |
check if current module is visible
Definition at line 740 of file imageop.c.
References dt_iop_is_hidden(), and dt_iop_roi_t::y.
Referenced by _focus_module(), dt_dev_modules_update_multishow(), dt_iop_gui_get_next_visible_module(), and dt_iop_gui_get_previous_visible_module().
| gboolean dt_iop_gui_move_module_after | ( | dt_iop_module_t * | module, |
| dt_iop_module_t * | module_prev, | ||
| const char * | reason | ||
| ) |
Move a module after another one and commit the GUI-side effects.
This is the GUI boundary for module reordering: dt_ioppr_move_iop_after only mutates the pipeline list and order list, while this function is responsible for updating visible headers, rebuilding the pipes, recording the history step and notifying GUI listeners.
| module | Module being moved. |
| module_prev | Module that should end up immediately before module. |
| reason | Debug string used in IOP-order checks. |
Definition at line 767 of file imageop.c.
References dt_iop_gui_commit_iop_order_change(), dt_ioppr_move_iop_after(), FALSE, TRUE, and dt_iop_roi_t::y.
Referenced by _ioporder_drag_data_received(), and _modulegroups_drag_data_received().
| gboolean dt_iop_gui_move_module_before | ( | dt_iop_module_t * | module, |
| dt_iop_module_t * | module_next, | ||
| const char * | reason | ||
| ) |
Move a module before another one and commit the GUI-side effects.
This is the GUI boundary for module reordering: dt_ioppr_move_iop_before only mutates the pipeline list and order list, while this function is responsible for updating visible headers, rebuilding the pipes, recording the history step and notifying GUI listeners.
| module | Module being moved. |
| module_next | Module that should end up immediately after module. |
| reason | Debug string used in IOP-order checks. |
Definition at line 760 of file imageop.c.
References dt_iop_gui_commit_iop_order_change(), dt_ioppr_move_iop_before(), FALSE, TRUE, and dt_iop_roi_t::y.
Referenced by _ioporder_drag_data_received(), and _modulegroups_drag_data_received().
| void dt_iop_gui_rename_module | ( | dt_iop_module_t * | module | ) |
Definition at line 959 of file imageop.c.
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_rename_callback(), _iop_plugin_header_button_press(), _menuitem_button_released_preset(), and _rename_module_idle().
| void dt_iop_gui_reset | ( | dt_iop_module_t * | module | ) |
reset the ui to its defaults
Definition at line 2153 of file imageop.c.
References dt_gui_freeze_begin, dt_gui_freeze_end, dt_iop_is_hidden(), 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
Definition at line 1211 of file imageop.c.
References dt_gui_add_class(), dt_gui_remove_class(), dt_iop_gui_set_enable_button_icon(), FALSE, IS_NULL_PTR, TRUE, and dt_iop_roi_t::y.
Referenced by dt_dev_add_history_item_real(), dt_iop_gui_changed(), and dt_iop_gui_update_header().
| void dt_iop_gui_set_enable_button_icon | ( | GtkWidget * | w, |
| dt_iop_module_t * | module | ||
| ) |
Definition at line 1194 of file imageop.c.
References dtgtk_cairo_paint_module_switch(), dtgtk_cairo_paint_module_switch_on(), DTGTK_TOGGLEBUTTON, dtgtk_togglebutton_set_paint(), and dt_iop_roi_t::y.
Referenced by dt_iop_gui_set_enable_button(), and dt_iop_gui_set_expander().
| void dt_iop_gui_set_expanded | ( | dt_iop_module_t * | module, |
| gboolean | expanded, | ||
| gboolean | collapse_others | ||
| ) |
set expanded state of iop
Definition at line 2381 of file imageop.c.
References _gui_set_single_expanded(), _iop_dim_all_but(), darktable, darktable_t::develop, FALSE, dt_develop_t::iop, IS_NULL_PTR, m, and dt_iop_roi_t::y.
Referenced by _action_request_focus(), _focus_module(), _focus_next_module(), _focus_previous_module(), _history_show_module_for_end(), _iop_plugin_enable_accel(), _iop_plugin_header_button_release(), _modulegroups_switch_tab_next(), _modulegroups_switch_tab_previous(), _update_iop_visibility(), 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.
Definition at line 2793 of file imageop.c.
References _display_mask_indicator_callback(), _gui_multiinstance_callback(), _gui_off_callback(), _gui_reset_callback(), _iop_gui_widget_gone(), _iop_plugin_body_button_press(), _iop_plugin_header_activate(), _iop_plugin_header_button_press(), _iop_plugin_header_button_release(), _iop_plugin_header_child_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_GUI_BOX_SPACING, 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 dt_dev_history_gui_update(), dt_iop_gui_duplicate(), and enter().
| void dt_iop_gui_update | ( | dt_iop_module_t * | module | ) |
updates the gui params and the enabled switch.
Definition at line 2133 of file imageop.c.
References dt_bauhaus_update_module(), dt_gui_freeze_begin, dt_gui_freeze_end, dt_iop_gui_update_blending(), dt_iop_gui_update_expanded(), dt_iop_gui_update_header(), dt_iop_is_hidden(), and dt_iop_roi_t::y.
Referenced by _blendif_change_blend_colorspace(), _blendif_hide_output_channels(), _blendif_show_output_channels(), _gui_reset_callback(), dt_dev_history_gui_update(), dt_gui_presets_apply_preset(), dt_iop_autoset_advance(), and dt_iop_gui_duplicate().
| void dt_iop_gui_update_expanded | ( | dt_iop_module_t * | module | ) |
refresh iop according to set expanded state
Definition at line 2398 of file imageop.c.
References DTGTK_EXPANDER, dtgtk_expander_set_expanded(), IS_NULL_PTR, 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 | ) |
Definition at line 1183 of file imageop.c.
References _iop_panel_label(), dt_iop_add_remove_mask_indicator(), dt_iop_gui_set_enable_button(), IS_NULL_PTR, and dt_iop_roi_t::y.
Referenced by _blendop_blend_mode_callback(), _blendop_blendif_boost_factor_callback(), _blendop_blendif_details_callback(), _blendop_blendif_invert(), _blendop_blendif_polarity_callback(), _blendop_blendif_reset(), _blendop_blendif_sliders_callback(), _blendop_blendif_sliders_reset_callback(), _blendop_compositing_changed(), _blendop_masks_apply_and_commit(), _blendop_masks_combine_callback(), _blendop_masks_invert_toggled(), _blendop_masks_mode_changed(), _blendop_masks_polarity_callback(), _raster_polarity_callback(), _raster_value_changed_callback(), _rename_module_key_press(), dt_iop_gui_changed(), dt_iop_gui_rename_module(), dt_iop_gui_set_expander(), dt_iop_gui_update(), and dt_iop_reload_defaults().
| 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.
Definition at line 564 of file imageop.c.
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
Definition at line 3196 of file imageop.c.
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 | ) |
Definition at line 1133 of file imageop.c.
References dt_iop_so_is_hidden(), and dt_iop_roi_t::y.
Referenced by _check_deleted_instances(), _get_user_mod_list(), _gui_delete_callback(), _ioporder_module_is_graph_visible(), _is_module_in_tab(), _modulegroups_reorder_target(), _modulegroups_sync_section_label_margins(), _studio_dev_teardown(), _update_iop_visibility(), dt_dev_history_gui_update(), 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(), dt_iop_is_visible(), 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
Definition at line 3146 of file imageop.c.
References FALSE, key, TRUE, value, and dt_iop_roi_t::y.
Referenced by dt_dev_pixelpipe_process(), dt_develop_blend_process(), dt_develop_blend_process_cl(), and process().
| gboolean dt_iop_is_visible | ( | dt_iop_module_t * | module | ) |
Check if the module is currently visible in GUI
Definition at line 1138 of file imageop.c.
References dt_iop_is_hidden(), IS_NULL_PTR, and dt_iop_roi_t::y.
| void dt_iop_load_default_params | ( | dt_iop_module_t * | module | ) |
loads default settings from database.
Definition at line 142 of file imageop.c.
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_dev_modules_reload_defaults(), and dt_iop_reload_defaults().
| int dt_iop_load_module | ( | dt_iop_module_t * | module, |
| dt_iop_module_so_t * | module_so, | ||
| dt_develop_t * | dev | ||
| ) |
Definition at line 1567 of file imageop.c.
References dt_free, dt_iop_load_module_by_so(), and dt_iop_roi_t::y.
Referenced by _create_deleted_modules(), _dt_styles_tmp_module_from_style_item(), _find_so_for_history_entry(), dt_dev_create_module_instance(), and dt_dev_module_duplicate().
| 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
Definition at line 471 of file imageop.c.
References IS_NULL_PTR, k, 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().
| int dt_iop_load_module_so | ( | void * | m, |
| const char * | libname, | ||
| const char * | module_name | ||
| ) |
Definition at line 426 of file imageop.c.
References darktable, default_get_f(), default_get_introspection(), default_get_introspection_linear(), default_get_p(), DT_INTROSPECTION_VERSION, dt_opencl_t::inited, IS_NULL_PTR, darktable_t::opencl, and dt_iop_roi_t::y.
Referenced by dt_iop_load_modules_so().
loads and inits the modules in the plugins/ directory.
Definition at line 1558 of file imageop.c.
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
Definition at line 1665 of file imageop.c.
References FALSE, IS_NULL_PTR, and dt_iop_roi_t::y.
| gboolean dt_iop_module_needs_mask_history | ( | const dt_iop_module_t * | module | ) |
returns TRUE if module needs masks committed to history
Definition at line 1699 of file imageop.c.
References dt_iop_module_needs_mask_history_ext(), and dt_iop_roi_t::y.
Referenced by _hm_collect_labels_from_history_map(), _hm_report_dest_label(), _hm_report_update_arrows(), _hm_report_update_dest_labels(), _hm_show_merge_report_popup(), and dt_dev_add_history_item_ext().
| gboolean dt_iop_module_needs_mask_history_ext | ( | const dt_iop_module_t * | module, |
| gboolean * | raster, | ||
| gboolean * | drawn, | ||
| gboolean * | parametric | ||
| ) |
returns TRUE if module needs masks committed to history plus each flag is set accordingly
Definition at line 1676 of file imageop.c.
References dt_develop_blend_get_mask_usage(), FALSE, IS_NULL_PTR, and dt_iop_roi_t::y.
Referenced by dt_dev_history_item_from_source_history_item(), and dt_iop_module_needs_mask_history().
| void dt_iop_nap | ( | int32_t | usec | ) |
allow plugins to relinquish CPU and go to sleep for some time
Definition at line 2973 of file imageop.c.
References dt_iop_roi_t::y.
Referenced by dt_dev_darkroom_pipeline(), dt_opencl_lock_device(), leave(), and nlmeans_denoise_cl().
| void dt_iop_reload_defaults | ( | dt_iop_module_t * | module | ) |
reloads certain gui/param defaults when the image was switched.
Definition at line 1278 of file imageop.c.
References DT_DEBUG_PARAMS, dt_gui_widget_freeze, dt_iop_gui_update_header(), dt_iop_load_default_params(), dt_print(), and dt_iop_roi_t::y.
Referenced by _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) NOTE: this sets the current module expander as the scroll reference, which is handled when the parent panel changes size, which happens when uncollapsing the module. So dt_iop_request_focus() needs to be called before expanding modules (dt_iop_set_expanded) for auto-scroll to work properly.
Definition at line 2221 of file imageop.c.
References darktable_t::collection, darktable, darktable_t::develop, dt_collection_hint_message(), dt_control_queue_cursor, dt_control_queue_redraw_center(), DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_dev_modulegroups_switch_tab(), dt_gui_add_class(), dt_gui_refocus_center(), dt_gui_remove_class(), dt_gui_widgets_suppressed(), 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::has_scroll_focus, IS_NULL_PTR, dt_gui_gtk_t::scroll_to, dt_gui_gtk_t::scroll_to_header_once, darktable_t::signals, TRUE, and dt_iop_roi_t::y.
Referenced by _action_request_focus(), _add_shape(), _area_button_press_callback(), _area_scroll_callback(), _auto_levels_callback(), _auto_levels_callback(), _blendop_blendif_channel_display_toggled(), _blendop_blendif_key_press(), _blendop_blendif_showmask_clicked(), _blendop_masks_shape_can_start(), _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_set_single_expanded(), _history_show_module_for_end(), _iop_plugin_body_button_press(), _iop_plugin_enable_accel(), _iop_plugin_header_button_release(), _modulegroups_switch_tab_next(), _modulegroups_switch_tab_previous(), _raster_combo_populate(), _scroll_event(), _select_region_toggled_callback(), _select_region_toggled_callback(), _update_iop_visibility(), acquire_source_button_pressed(), acquire_target_button_pressed(), area_button_press(), area_button_press(), area_button_release(), 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_enter(), dt_masks_iop_combo_populate(), gui_reset(), key_pressed(), mask_callback(), notebook_button_press(), profile_changed(), rt_auto_levels_callback(), rt_display_wavelet_scale_callback(), rt_edit_masks_callback(), rt_select_algorithm_callback(), rt_shape_buttons_can_start(), 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 | ||
| ) |
Definition at line 2989 of file imageop.c.
References dt_iop_module_t::bypass_cache, FALSE, state, and dt_iop_roi_t::y.
Referenced by _blendop_blendif_channel_display_toggled(), _blendop_blendif_channel_mask_view(), _blendop_blendif_channel_mask_view_toggle(), _blendop_blendif_leave_delayed(), _blendop_blendif_showmask_clicked(), _blendop_blendif_update_tab(), _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(), gui_reset(), init(), mask_callback(), process(), rt_sync_bypass_cache(), run_profile_callback(), run_validation_callback(), show_luminance_mask_callback(), and show_mask_callback().
| void dt_iop_set_cache_bypass_variant | ( | dt_iop_module_t * | module, |
| int | variant | ||
| ) |
Set the opaque per-module hash disambiguator described on dt_iop_module_t.bypass_cache_variant. Call alongside dt_iop_set_cache_bypass() whenever a module can be bypassing the cache for more than one mutually-independent GUI reason at once, so toggling one of them still changes the pipeline hash even while bypass_cache itself stays TRUE.
Definition at line 3006 of file imageop.c.
Referenced by rt_sync_bypass_cache().
| void dt_iop_set_darktable_iop_table | ( | ) |
Definition at line 3052 of file imageop.c.
References darktable, darktable_t::db, dt_database_get(), dt_database_release_transaction, dt_database_start_transaction, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, darktable_t::iop, IS_NULL_PTR, and dt_iop_roi_t::y.
Referenced by dt_init().
| 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 | ||
| ) |
Definition at line 3220 of file imageop.c.
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
Definition at line 1645 of file imageop.c.
References dt_develop_blend_get_mask_usage(), dt_history_item_get_name(), FALSE, key, void(), 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
Definition at line 1118 of file imageop.c.
References FALSE, IOP_FLAGS_HIDDEN, IS_NULL_PTR, 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
Definition at line 3214 of file imageop.c.
References darktable, darktable_t::develop, dt_dev_add_history_item, and TRUE.
Referenced by _area_button_press_callback(), _area_button_release_callback(), _area_motion_notify_callback(), _auto_set_illuminant(), _move_point_internal(), _move_point_internal(), _move_point_internal(), _move_point_internal(), area_motion_notify(), button_pressed(), lowlight_motion_notify(), rawdenoise_motion_notify(), and scrolled().
cleans up the dlopen refs.
Definition at line 1627 of file imageop.c.
References _iop_presets_select_stmt, darktable, dt_free, darktable_t::iop, IS_NULL_PTR, 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
Definition at line 3122 of file imageop.c.
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().
|
static |
Definition at line 109 of file imageop.c.
Referenced by _init_presets(), and dt_iop_unload_modules_so().