159#define INCLUDE_API_FROM_MODULE_H
174 const void *
const i,
void *
const o,
const struct dt_iop_roi_t *
const roi_in,
186#define INCLUDE_API_FROM_MODULE_H
305 const void *
const i,
void *
const o,
const struct dt_iop_roi_t *
const roi_in,
455 const char *
purpose,
const char *input,
456 const char *
process,
const char *output);
461 module->gui_data = (dt_iop_gui_data_t*)dt_calloc_align(size);
463 return module->gui_data;
465#define IOP_GUI_ALLOC(module) \
466 (dt_iop_##module##_gui_data_t *)_iop_gui_alloc(self,sizeof(dt_iop_##module##_gui_data_t))
468#define IOP_GUI_FREE \
469 dt_pthread_mutex_destroy(&self->gui_lock);if(self->gui_data){dt_free_align(self->gui_data);} self->gui_data = NULL
557 std::atomic_thread_fence(std::memory_order_seq_cst);
572#define dt_omploop_sfence()
574#define dt_omploop_sfence() dt_sfence()
void process(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
Definition ashift.c:3088
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
dt_iop_colorspace_type_t
Definition color_conversion.h:24
@ ACQUIRE
Definition colormapping.c:72
void dt_iop_params_t
Definition dev_history.h:22
static int dt_pthread_mutex_unlock(dt_pthread_mutex_t *mutex) RELEASE(mutex) NO_THREAD_SAFETY_ANALYSIS
Definition dtpthread.h:321
static int dt_pthread_mutex_init(dt_pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr)
Definition dtpthread.h:306
static int dt_pthread_mutex_lock(dt_pthread_mutex_t *mutex) ACQUIRE(mutex) NO_THREAD_SAFETY_ANALYSIS
Definition dtpthread.h:311
dt_iop_module_t * dt_iop_get_module_from_list(GList *iop_list, const char *op)
Definition imageop.c:2470
dt_dev_request_colorpick_flags_t
Definition imageop.h:136
@ DT_REQUEST_COLORPICK_OFF
Definition imageop.h:137
@ DT_REQUEST_COLORPICK_MODULE
Definition imageop.h:138
void dt_iop_refresh_center(dt_iop_module_t *module)
Definition imageop.c:2760
dt_iop_module_t * dt_iop_get_module(const char *op)
Definition imageop.c:2487
void dt_iop_set_darktable_iop_table()
Definition imageop.c:2551
GList * dt_iop_load_modules_ext(struct dt_develop_t *dev, gboolean no_image)
Definition imageop.c:1387
void dt_iop_gui_cleanup_module(dt_iop_module_t *module)
Definition imageop.c:1780
void dt_iop_refresh_preview(dt_iop_module_t *module)
Definition imageop.c:2771
void dt_iop_load_default_params(dt_iop_module_t *module)
Definition imageop.c:73
dt_iop_module_t * dt_iop_get_module_by_instance_name(GList *modules, const char *operation, const char *multi_name)
Definition imageop.c:2724
GtkWidget * dt_iop_gui_get_pluginui(dt_iop_module_t *module)
Definition imageop.c:2425
gboolean dt_iop_is_raster_mask_used(dt_iop_module_t *module, int id)
Definition imageop.c:2641
void dt_iop_compute_module_hash(dt_iop_module_t *module, GList *masks)
Definition imageop.c:1699
void dt_iop_add_remove_mask_indicator(dt_iop_module_t *module)
Definition imageop.c:2190
void dt_iop_reload_defaults(dt_iop_module_t *module)
Definition imageop.c:1102
static void dt_sfence()
Definition imageop.h:548
void dt_iop_gui_set_expander(dt_iop_module_t *module)
Definition imageop.c:2282
dt_iop_module_t * dt_iop_gui_get_next_visible_module(dt_iop_module_t *module)
Definition imageop.c:580
void dt_iop_init_pipe(struct dt_iop_module_t *module, struct dt_dev_pixelpipe_t *pipe, struct dt_dev_pixelpipe_iop_t *piece)
Definition imageop.c:442
int dt_iop_load_module(dt_iop_module_t *module, dt_iop_module_so_t *module_so, struct dt_develop_t *dev)
Definition imageop.c:1376
gboolean dt_iop_is_first_instance(GList *modules, dt_iop_module_t *module)
Definition imageop.c:2742
void dt_iop_gui_init(dt_iop_module_t *module)
Definition imageop.c:1075
void dt_iop_cleanup_module(dt_iop_module_t *module)
Definition imageop.c:1425
void dt_iop_gui_update(dt_iop_module_t *module)
Definition imageop.c:1815
const gchar * dt_iop_get_localized_aliases(const gchar *op)
Definition imageop.c:2595
const gchar * dt_iop_get_localized_name(const gchar *op)
Definition imageop.c:2573
void dt_bauhaus_update_module(dt_iop_module_t *self)
Definition imageop.c:2872
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)
Definition imageop.c:1722
dt_iop_module_t * dt_iop_get_module_preferred_instance(dt_iop_module_so_t *module)
Definition imageop.c:2673
void dt_iop_gui_reset(dt_iop_module_t *module)
Definition imageop.c:1835
void dt_iop_load_modules_so(void)
Definition imageop.c:1370
void dt_iop_nap(int32_t usec)
Definition imageop.c:2431
void dt_iop_default_init(dt_iop_module_t *module)
Definition imageop.c:218
void dt_iop_commit_blend_params(dt_iop_module_t *module, const struct dt_develop_blend_params_t *blendop_params)
void dt_iop_gui_changed(dt_iop_module_t *module, GtkWidget *widget, gpointer data)
Definition imageop.c:2857
void dt_iop_gui_update_expanded(dt_iop_module_t *module)
Definition imageop.c:2028
void dt_iop_gui_update_header(dt_iop_module_t *module)
Definition imageop.c:1031
void dt_iop_gui_set_enable_button(dt_iop_module_t *module)
Definition imageop.c:1059
int dt_iop_load_module_by_so(dt_iop_module_t *module, dt_iop_module_so_t *so, struct dt_develop_t *dev)
Definition imageop.c:362
void dt_iop_request_focus(dt_iop_module_t *module)
Definition imageop.c:1883
dt_iop_module_t * dt_iop_gui_get_previous_visible_module(dt_iop_module_t *module)
Definition imageop.c:566
dt_iop_module_header_icons_t
Definition imageop.h:63
@ IOP_MODULE_ICON
Definition imageop.h:65
@ IOP_MODULE_PRESETS
Definition imageop.h:70
@ IOP_MODULE_RESET
Definition imageop.h:69
@ IOP_MODULE_LABEL
Definition imageop.h:66
@ IOP_MODULE_MASK
Definition imageop.h:67
@ IOP_MODULE_LAST
Definition imageop.h:71
@ IOP_MODULE_SWITCH
Definition imageop.h:64
@ IOP_MODULE_INSTANCE
Definition imageop.h:68
static void dt_iop_gui_enter_critical_section(dt_iop_module_t *const module) ACQUIRE(&module -> gui_lock)
Definition imageop.h:342
gboolean dt_iop_is_hidden(dt_iop_module_t *module)
Definition imageop.c:986
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 imageop.c:2819
GtkWidget * dt_iop_gui_get_widget(dt_iop_module_t *module)
Definition imageop.c:2420
gboolean dt_iop_so_is_hidden(dt_iop_module_so_t *module)
Definition imageop.c:971
dt_iop_flags_t
Definition imageop.h:103
@ IOP_FLAGS_HIDDEN
Definition imageop.h:111
@ IOP_FLAGS_INCLUDE_IN_STYLES
Definition imageop.h:107
@ IOP_FLAGS_INTERNAL_MASKS
Definition imageop.h:121
@ IOP_FLAGS_PREVIEW_NON_OPENCL
Definition imageop.h:115
@ IOP_FLAGS_DEPRECATED
Definition imageop.h:109
@ IOP_FLAGS_SUPPORTS_BLENDING
Definition imageop.h:108
@ IOP_FLAGS_ALLOW_TILING
Definition imageop.h:110
@ IOP_FLAGS_UNSAFE_COPY
Definition imageop.h:119
@ IOP_FLAGS_NONE
Definition imageop.h:104
@ IOP_FLAGS_ONE_INSTANCE
Definition imageop.h:114
@ IOP_FLAGS_NO_MASKS
Definition imageop.h:117
@ IOP_FLAGS_GUIDES_SPECIAL_DRAW
Definition imageop.h:120
@ IOP_FLAGS_TILING_FULL_ROI
Definition imageop.h:112
@ IOP_FLAGS_FENCE
Definition imageop.h:118
@ IOP_FLAGS_NO_HISTORY_STACK
Definition imageop.h:116
void dt_iop_global_data_t
Definition imageop.h:132
static void dt_iop_gui_leave_critical_section(dt_iop_module_t *const module) RELEASE(&module -> gui_lock)
Definition imageop.h:348
int dt_iop_get_module_flags(const char *op)
Definition imageop.c:2492
gboolean dt_iop_have_required_input_format(const int required_ch, struct dt_iop_module_t *const module, const int actual_pipe_ch, const void *const __restrict__ ivoid, void *const __restrict__ ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
void dt_bauhaus_value_changed_default_callback(GtkWidget *widget)
Definition imageop.c:2925
dt_iop_module_t * dt_iop_get_colorout_module(void)
Definition imageop.c:2465
gboolean dt_iop_check_modules_equal(dt_iop_module_t *mod_1, dt_iop_module_t *mod_2)
Definition imageop.c:1627
void dt_iop_cancel_history_update(dt_iop_module_t *module)
Definition imageop.c:2810
void dt_iop_queue_history_update(dt_iop_module_t *module, gboolean extend_prior)
Definition imageop.c:2792
void dt_iop_data_t
Definition imageop.h:131
dt_iop_colorspace_type_t
Definition imageop.h:143
@ IOP_CS_RAW
Definition imageop.h:145
@ IOP_CS_LCH
Definition imageop.h:148
@ IOP_CS_JZCZHZ
Definition imageop.h:150
@ IOP_CS_RGB
Definition imageop.h:147
@ IOP_CS_HSL
Definition imageop.h:149
@ IOP_CS_LAB
Definition imageop.h:146
@ IOP_CS_NONE
Definition imageop.h:144
void dt_iop_gui_set_expanded(dt_iop_module_t *module, gboolean expanded, gboolean collapse_others)
Definition imageop.c:2011
dt_iop_group_t
Definition imageop.h:76
@ IOP_GROUP_LAST
Definition imageop.h:85
@ IOP_GROUP_EFFECTS
Definition imageop.h:83
@ IOP_GROUP_FILM
Definition imageop.h:79
@ IOP_GROUP_TECHNICAL
Definition imageop.h:84
@ IOP_GROUP_COLOR
Definition imageop.h:80
@ IOP_GROUP_REPAIR
Definition imageop.h:81
@ IOP_GROUP_SHARPNESS
Definition imageop.h:82
@ IOP_GROUP_TONES
Definition imageop.h:78
@ IOP_GROUP_NONE
Definition imageop.h:77
void dt_iop_set_cache_bypass(dt_iop_module_t *module, gboolean state)
Definition imageop.c:2447
gboolean dt_iop_get_cache_bypass(dt_iop_module_t *module)
Definition imageop.c:2442
void dt_iop_set_mask_mode(dt_iop_module_t *module, int mask_mode)
Definition imageop.c:1460
void dt_iop_gui_rename_module(dt_iop_module_t *module)
Definition imageop.c:829
dt_iop_module_t * dt_iop_gui_duplicate(dt_iop_module_t *base, gboolean copy_params)
Definition imageop.c:661
GList * dt_iop_load_modules(struct dt_develop_t *dev)
Definition imageop.c:1420
gboolean dt_iop_gui_module_is_visible(dt_iop_module_t *module)
Definition imageop.c:560
dt_iop_module_t * dt_iop_get_module_by_op_priority(GList *modules, const char *operation, const int multi_priority)
Definition imageop.c:2655
static dt_iop_gui_data_t * _iop_gui_alloc(dt_iop_module_t *module, size_t size)
Definition imageop.h:458
void dt_iop_update_multi_priority(dt_iop_module_t *module, int new_priority)
Definition imageop.c:2617
dt_iop_tags_t
Definition imageop.h:90
@ IOP_TAG_DECORATION
Definition imageop.h:93
@ IOP_TAG_CLIPPING
Definition imageop.h:94
@ IOP_TAG_DISTORT
Definition imageop.h:92
@ IOP_TAG_NONE
Definition imageop.h:91
void dt_iop_unload_modules_so(void)
Definition imageop.c:1448
size_t size
Definition mipmap_cache.c:3
dt_dev_request_flags_t
Definition pixelpipe.h:41
char dt_dev_operation_t[20]
Definition settings.h:35
unsigned __int64 uint64_t
Definition strptime.c:71
Definition pixelpipe.h:60
Definition pixelpipe_hb.h:46
Definition pixelpipe_hb.h:127
The dt_gui_module_t type is the intersection between a dt_lib_module_t and a dt_iop_module_t structur...
Definition gui_module_api.h:25
Definition color_picker_proxy.h:42
int dummy
Definition imageop.h:128
GModule *dt_dev_operation_t op
Definition imageop.h:165
dt_gui_module_t common_fields
Definition imageop.h:157
dt_iop_global_data_t * data
Definition imageop.h:168
gboolean have_introspection
Definition imageop.h:178
void(* process_plain)(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out)
Definition imageop.h:173
dt_dev_request_colorpick_flags_t request_color_pick
Definition imageop.h:200
GtkDarktableToggleButton * off
Definition imageop.h:270
int32_t hide_enable_button
Definition imageop.h:198
gpointer blend_data
Definition imageop.h:249
struct dt_iop_module_t * source
Definition imageop.h:263
dt_iop_params_t * default_params
Definition imageop.h:238
GHashTable * masks
Definition imageop.h:259
struct dt_develop_blend_params_t * blend_params
Definition imageop.h:247
dt_aligned_pixel_t picked_output_color_min
Definition imageop.h:212
uint64_t hash
Definition imageop.h:312
int32_t suppress_mask
Definition imageop.h:206
GtkWidget * widget
Definition imageop.h:268
int multi_priority
Definition imageop.h:293
char multi_name[128]
Definition imageop.h:294
dt_gui_module_t common_fields
Definition imageop.h:184
struct dt_develop_t * dev
Definition imageop.h:227
GtkWidget * mask_indicator
Definition imageop.h:274
dt_iop_gui_data_t * gui_data
Definition imageop.h:242
uint64_t blendop_hash
Definition imageop.h:319
gboolean default_enabled
Definition imageop.h:234
GModule *dt_dev_operation_t op
Definition imageop.h:192
dt_dev_request_flags_t request_histogram
Definition imageop.h:202
int iop_order
Definition imageop.h:196
gboolean have_introspection
Definition imageop.h:309
GtkWidget * guides_toggle
Definition imageop.h:286
GtkWidget * fusion_slider
Definition imageop.h:283
struct dt_iop_module_t::@27 raster_mask
gboolean expanded
Definition imageop.h:277
GtkWidget * multimenu_button
Definition imageop.h:299
gboolean multi_show_close
Definition imageop.h:295
dt_dev_histogram_stats_t histogram_stats
Definition imageop.h:216
dt_aligned_pixel_t picked_output_color_max
Definition imageop.h:212
int32_t instance
Definition imageop.h:194
gboolean multi_show_up
Definition imageop.h:296
gboolean bypass_cache
Definition imageop.h:208
GtkWidget * presets_button
Definition imageop.h:281
uint32_t histogram_max[4]
Definition imageop.h:218
dt_iop_global_data_t * global_data
Definition imageop.h:245
gboolean multi_show_new
Definition imageop.h:298
gboolean multi_show_down
Definition imageop.h:297
int id
Definition imageop.h:264
gboolean workflow_enabled
Definition imageop.h:236
dt_aligned_pixel_t picked_output_color
Definition imageop.h:212
gboolean enabled
Definition imageop.h:229
GtkWidget * reset_button
Definition imageop.h:279
dt_iop_module_so_t * so
Definition imageop.h:290
GtkWidget * expander
Definition imageop.h:276
dt_aligned_pixel_t picked_color_min
Definition imageop.h:210
int request_mask_display
Definition imageop.h:204
void(* process_plain)(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out)
Definition imageop.h:304
dt_pthread_mutex_t gui_lock
Definition imageop.h:243
dt_aligned_pixel_t picked_color_max
Definition imageop.h:210
int histogram_middle_grey
Definition imageop.h:225
GHashTable * users
Definition imageop.h:255
struct dt_develop_blend_params_t * default_blendop_params
Definition imageop.h:247
GtkWidget * header
Definition imageop.h:272
int32_t params_size
Definition imageop.h:240
uint32_t * histogram
Definition imageop.h:214
dt_iop_colorspace_type_t histogram_cst
Definition imageop.h:223
guint timeout_handle
Definition imageop.h:302
dt_aligned_pixel_t picked_color
Definition imageop.h:210
GtkWidget * guides_combo
Definition imageop.h:287
dt_iop_params_t * params
Definition imageop.h:238
int x
Definition imageop.h:33
double scale
Definition imageop.h:34
int width
Definition imageop.h:33
int height
Definition imageop.h:33
int y
Definition imageop.h:33