194#define INCLUDE_API_FROM_MODULE_H
220#define INCLUDE_API_FROM_MODULE_H
381 RELEASE(&module->gui_lock)
482 const char *purpose,
const char *input,
483 const char *
process,
const char *output);
488 module->gui_data = (dt_iop_gui_data_t*)dt_calloc_align(size);
490 return module->gui_data;
492#define IOP_GUI_ALLOC(module) \
493 (dt_iop_##module##_gui_data_t *)_iop_gui_alloc(self,sizeof(dt_iop_##module##_gui_data_t))
495#define IOP_GUI_FREE \
496 dt_pthread_mutex_destroy(&self->gui_lock); \
497 if(self->gui_data){ \
498 dt_free_align(self->gui_data); \
499 self->gui_data = NULL; \
501 self->gui_data = NULL;
581 __atomic_thread_fence(__ATOMIC_SEQ_CST);
593#define dt_omploop_sfence()
595#define dt_omploop_sfence() dt_sfence()
int process(struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid)
Definition ashift.c:3304
dt_iop_colorspace_type_t
Definition color_conversion.h:30
@ ACQUIRE
Definition colormapping.c:94
const float i
Definition colorspaces_inline_conversions.h:669
void dt_iop_params_t
Definition dev_history.h:41
static int dt_pthread_mutex_unlock(dt_pthread_mutex_t *mutex) RELEASE(mutex) NO_THREAD_SAFETY_ANALYSIS
Definition dtpthread.h:374
static int dt_pthread_mutex_init(dt_pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr)
Definition dtpthread.h:359
static int dt_pthread_mutex_lock(dt_pthread_mutex_t *mutex) ACQUIRE(mutex) NO_THREAD_SAFETY_ANALYSIS
Definition dtpthread.h:364
dt_iop_module_t * dt_iop_get_module_from_list(GList *iop_list, const char *op)
Definition imageop.c:2617
dt_dev_request_colorpick_flags_t
Definition imageop.h:171
@ DT_REQUEST_COLORPICK_OFF
Definition imageop.h:172
@ DT_REQUEST_COLORPICK_MODULE
Definition imageop.h:173
dt_iop_module_t * dt_iop_get_module(const char *op)
Definition imageop.c:2634
void dt_iop_set_darktable_iop_table()
Definition imageop.c:2698
void dt_iop_gui_cleanup_module(dt_iop_module_t *module)
Definition imageop.c:1909
void dt_iop_load_default_params(dt_iop_module_t *module)
Definition imageop.c:125
dt_iop_module_t * dt_iop_get_module_by_instance_name(GList *modules, const char *operation, const char *multi_name)
Definition imageop.c:2824
GtkWidget * dt_iop_gui_get_pluginui(dt_iop_module_t *module)
Definition imageop.c:2572
gboolean dt_iop_is_raster_mask_used(dt_iop_module_t *module, int id)
Definition imageop.c:2792
void dt_iop_compute_module_hash(dt_iop_module_t *module, GList *masks)
Definition imageop.c:1815
void dt_iop_add_remove_mask_indicator(dt_iop_module_t *module)
Definition imageop.c:2338
void dt_iop_reload_defaults(dt_iop_module_t *module)
Definition imageop.c:1213
static void dt_sfence()
Definition imageop.h:573
void dt_iop_gui_set_expander(dt_iop_module_t *module)
Definition imageop.c:2428
void dt_iop_throttled_history_update(gpointer data)
Definition imageop.c:2860
dt_iop_module_t * dt_iop_gui_get_next_visible_module(dt_iop_module_t *module)
Definition imageop.c:680
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:535
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:1494
gboolean dt_iop_is_first_instance(GList *modules, dt_iop_module_t *module)
Definition imageop.c:2842
void dt_iop_gui_init(dt_iop_module_t *module)
Definition imageop.c:1181
void dt_iop_cleanup_module(dt_iop_module_t *module)
Definition imageop.c:1505
gboolean dt_iop_module_has_raster_mask(const dt_iop_module_t *module)
Definition imageop.c:1563
void dt_iop_gui_update(dt_iop_module_t *module)
Definition imageop.c:1956
const gchar * dt_iop_get_localized_aliases(const gchar *op)
Definition imageop.c:2746
const gchar * dt_iop_get_localized_name(const gchar *op)
Definition imageop.c:2724
void dt_bauhaus_update_module(dt_iop_module_t *self)
Definition imageop.c:2895
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:1838
void dt_iop_gui_reset(dt_iop_module_t *module)
Definition imageop.c:1976
gboolean dt_iop_module_needs_mask_history(const dt_iop_module_t *module)
Definition imageop.c:1574
void dt_iop_load_modules_so(void)
Definition imageop.c:1485
void dt_iop_nap(int32_t usec)
Definition imageop.c:2578
void dt_iop_default_init(dt_iop_module_t *module)
Definition imageop.c:313
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:2880
void dt_iop_gui_update_expanded(dt_iop_module_t *module)
Definition imageop.c:2171
void dt_iop_gui_update_header(dt_iop_module_t *module)
Definition imageop.c:1129
void dt_iop_gui_set_enable_button(dt_iop_module_t *module)
Definition imageop.c:1157
void dt_iop_cleanup_pipe(struct dt_iop_module_t *module, struct dt_dev_pixelpipe_t *pipe, struct dt_dev_pixelpipe_iop_t *piece)
Definition imageop.c:542
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:455
void dt_iop_request_focus(dt_iop_module_t *module)
Definition imageop.c:2025
dt_iop_module_t * dt_iop_gui_get_previous_visible_module(dt_iop_module_t *module)
Definition imageop.c:666
dt_iop_module_header_icons_t
Definition imageop.h:99
@ IOP_MODULE_ICON
Definition imageop.h:101
@ IOP_MODULE_PRESETS
Definition imageop.h:106
@ IOP_MODULE_RESET
Definition imageop.h:105
@ IOP_MODULE_LABEL
Definition imageop.h:102
@ IOP_MODULE_MASK
Definition imageop.h:103
@ IOP_MODULE_LAST
Definition imageop.h:107
@ IOP_MODULE_SWITCH
Definition imageop.h:100
@ IOP_MODULE_INSTANCE
Definition imageop.h:104
static void dt_iop_gui_enter_critical_section(dt_iop_module_t *const module) ACQUIRE(&module -> gui_lock)
Definition imageop.h:374
gboolean dt_iop_is_hidden(dt_iop_module_t *module)
Definition imageop.c:1084
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:2866
GtkWidget * dt_iop_gui_get_widget(dt_iop_module_t *module)
Definition imageop.c:2567
gboolean dt_iop_so_is_hidden(dt_iop_module_so_t *module)
Definition imageop.c:1069
dt_iop_flags_t
Definition imageop.h:139
@ IOP_FLAGS_HIDDEN
Definition imageop.h:147
@ IOP_FLAGS_INCLUDE_IN_STYLES
Definition imageop.h:143
@ IOP_FLAGS_INTERNAL_MASKS
Definition imageop.h:156
@ IOP_FLAGS_PREVIEW_NON_OPENCL
Definition imageop.h:150
@ IOP_FLAGS_DEPRECATED
Definition imageop.h:145
@ IOP_FLAGS_SUPPORTS_BLENDING
Definition imageop.h:144
@ IOP_FLAGS_ALLOW_TILING
Definition imageop.h:146
@ IOP_FLAGS_UNSAFE_COPY
Definition imageop.h:154
@ IOP_FLAGS_NONE
Definition imageop.h:140
@ IOP_FLAGS_ONE_INSTANCE
Definition imageop.h:149
@ IOP_FLAGS_NO_MASKS
Definition imageop.h:152
@ IOP_FLAGS_GUIDES_SPECIAL_DRAW
Definition imageop.h:155
@ IOP_FLAGS_TILING_FULL_ROI
Definition imageop.h:148
@ IOP_FLAGS_FENCE
Definition imageop.h:153
@ IOP_FLAGS_NO_HISTORY_STACK
Definition imageop.h:151
void dt_iop_global_data_t
Definition imageop.h:167
static void dt_iop_gui_leave_critical_section(dt_iop_module_t *const module) RELEASE(&module -> gui_lock)
Definition imageop.h:380
int dt_iop_get_module_flags(const char *op)
Definition imageop.c:2639
void dt_bauhaus_value_changed_default_callback(GtkWidget *widget)
Definition imageop.c:2948
dt_iop_module_t * dt_iop_get_colorout_module(void)
Definition imageop.c:2612
gboolean dt_iop_check_modules_equal(dt_iop_module_t *mod_1, dt_iop_module_t *mod_2)
Definition imageop.c:1743
void dt_iop_data_t
Definition imageop.h:166
dt_iop_colorspace_type_t
Definition imageop.h:178
@ IOP_CS_RAW
Definition imageop.h:180
@ IOP_CS_LCH
Definition imageop.h:183
@ IOP_CS_JZCZHZ
Definition imageop.h:185
@ IOP_CS_RGB
Definition imageop.h:182
@ IOP_CS_HSL
Definition imageop.h:184
@ IOP_CS_LAB
Definition imageop.h:181
@ IOP_CS_NONE
Definition imageop.h:179
void dt_iop_gui_set_expanded(dt_iop_module_t *module, gboolean expanded, gboolean collapse_others)
Definition imageop.c:2154
dt_iop_group_t
Definition imageop.h:112
@ IOP_GROUP_LAST
Definition imageop.h:121
@ IOP_GROUP_EFFECTS
Definition imageop.h:119
@ IOP_GROUP_FILM
Definition imageop.h:115
@ IOP_GROUP_TECHNICAL
Definition imageop.h:120
@ IOP_GROUP_COLOR
Definition imageop.h:116
@ IOP_GROUP_REPAIR
Definition imageop.h:117
@ IOP_GROUP_SHARPNESS
Definition imageop.h:118
@ IOP_GROUP_TONES
Definition imageop.h:114
@ IOP_GROUP_NONE
Definition imageop.h:113
void dt_iop_set_cache_bypass(dt_iop_module_t *module, gboolean state)
Definition imageop.c:2594
gboolean dt_iop_get_cache_bypass(dt_iop_module_t *module)
Definition imageop.c:2589
void dt_iop_set_mask_mode(dt_iop_module_t *module, int mask_mode)
Definition imageop.c:1549
void dt_iop_gui_rename_module(dt_iop_module_t *module)
Definition imageop.c:926
dt_iop_module_t * dt_iop_gui_duplicate(dt_iop_module_t *base, gboolean copy_params)
Definition imageop.c:759
gboolean dt_iop_gui_module_is_visible(dt_iop_module_t *module)
Definition imageop.c:660
dt_iop_module_t * dt_iop_get_module_by_op_priority(GList *modules, const char *operation, const int multi_priority)
Definition imageop.c:2806
static dt_iop_gui_data_t * _iop_gui_alloc(dt_iop_module_t *module, size_t size)
Definition imageop.h:485
void dt_iop_update_multi_priority(dt_iop_module_t *module, int new_priority)
Definition imageop.c:2768
dt_iop_tags_t
Definition imageop.h:126
@ IOP_TAG_DECORATION
Definition imageop.h:129
@ IOP_TAG_CLIPPING
Definition imageop.h:130
@ IOP_TAG_DISTORT
Definition imageop.h:128
@ IOP_TAG_NONE
Definition imageop.h:127
void dt_iop_unload_modules_so(void)
Definition imageop.c:1531
size_t size
Definition mipmap_cache.c:3
dt_dev_request_flags_t
Definition pixelpipe.h:46
char dt_dev_operation_t[20]
Definition settings.h:38
struct _GtkWidget GtkWidget
Definition splash.h:29
unsigned __int64 uint64_t
Definition strptime.c:74
Definition pixelpipe.h:65
Definition pixelpipe_hb.h:95
struct dt_iop_module_t *void * data
Definition pixelpipe_hb.h:96
Definition pixelpipe_hb.h:216
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:42
Definition color_picker_proxy.h:50
int dummy
Definition imageop.h:163
GModule *dt_dev_operation_t op
Definition imageop.h:200
dt_gui_module_t common_fields
Definition imageop.h:192
int(* process_plain)(struct dt_iop_module_t *self, const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o)
Definition imageop.h:208
dt_iop_global_data_t * data
Definition imageop.h:203
gboolean have_introspection
Definition imageop.h:212
dt_dev_request_colorpick_flags_t request_color_pick
Definition imageop.h:234
GtkDarktableToggleButton * off
Definition imageop.h:304
int32_t hide_enable_button
Definition imageop.h:232
gpointer blend_data
Definition imageop.h:283
struct dt_iop_module_t * source
Definition imageop.h:297
dt_iop_params_t * default_params
Definition imageop.h:272
GHashTable * masks
Definition imageop.h:293
struct dt_develop_blend_params_t * blend_params
Definition imageop.h:281
dt_aligned_pixel_t picked_output_color_min
Definition imageop.h:246
uint64_t hash
Definition imageop.h:345
int32_t suppress_mask
Definition imageop.h:240
GtkWidget * widget
Definition imageop.h:302
int multi_priority
Definition imageop.h:327
char multi_name[128]
Definition imageop.h:328
dt_gui_module_t common_fields
Definition imageop.h:218
struct dt_develop_t * dev
Definition imageop.h:261
GtkWidget * mask_indicator
Definition imageop.h:308
dt_iop_gui_data_t * gui_data
Definition imageop.h:276
uint64_t blendop_hash
Definition imageop.h:352
gboolean default_enabled
Definition imageop.h:268
GModule *dt_dev_operation_t op
Definition imageop.h:226
dt_dev_request_flags_t request_histogram
Definition imageop.h:236
int iop_order
Definition imageop.h:230
gboolean have_introspection
Definition imageop.h:342
GtkWidget * guides_toggle
Definition imageop.h:320
GtkWidget * fusion_slider
Definition imageop.h:317
gboolean expanded
Definition imageop.h:311
GtkWidget * multimenu_button
Definition imageop.h:333
gboolean multi_show_close
Definition imageop.h:329
dt_dev_histogram_stats_t histogram_stats
Definition imageop.h:250
dt_aligned_pixel_t picked_output_color_max
Definition imageop.h:246
int32_t instance
Definition imageop.h:228
gboolean multi_show_up
Definition imageop.h:330
gboolean bypass_cache
Definition imageop.h:242
struct dt_iop_module_t::@29 raster_mask
GtkWidget * presets_button
Definition imageop.h:315
uint32_t histogram_max[4]
Definition imageop.h:252
dt_iop_global_data_t * global_data
Definition imageop.h:279
gboolean multi_show_new
Definition imageop.h:332
gboolean multi_show_down
Definition imageop.h:331
int id
Definition imageop.h:298
gboolean workflow_enabled
Definition imageop.h:270
dt_aligned_pixel_t picked_output_color
Definition imageop.h:246
gboolean enabled
Definition imageop.h:263
GtkWidget * reset_button
Definition imageop.h:313
dt_iop_module_so_t * so
Definition imageop.h:324
int(* process_plain)(struct dt_iop_module_t *self, const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o)
Definition imageop.h:338
GtkWidget * expander
Definition imageop.h:310
dt_aligned_pixel_t picked_color_min
Definition imageop.h:244
int request_mask_display
Definition imageop.h:238
dt_pthread_mutex_t gui_lock
Definition imageop.h:277
dt_aligned_pixel_t picked_color_max
Definition imageop.h:244
int histogram_middle_grey
Definition imageop.h:259
GHashTable * users
Definition imageop.h:289
struct dt_develop_blend_params_t * default_blendop_params
Definition imageop.h:281
GtkWidget * header
Definition imageop.h:306
int32_t params_size
Definition imageop.h:274
uint32_t * histogram
Definition imageop.h:248
dt_iop_colorspace_type_t histogram_cst
Definition imageop.h:257
guint timeout_handle
Definition imageop.h:336
dt_aligned_pixel_t picked_color
Definition imageop.h:244
GtkWidget * guides_combo
Definition imageop.h:321
dt_iop_params_t * params
Definition imageop.h:272
int x
Definition imageop.h:68
double scale
Definition imageop.h:69
int width
Definition imageop.h:68
int height
Definition imageop.h:68
int y
Definition imageop.h:68