224#define INCLUDE_API_FROM_MODULE_H
250#define INCLUDE_API_FROM_MODULE_H
422 RELEASE(&module->gui_lock)
548 gboolean
enable, gboolean write_history,
const char *reason);
576 const char *purpose,
const char *input,
577 const char *
process,
const char *output);
582 module->gui_data = (dt_iop_gui_data_t*)dt_calloc_align(size);
584 return module->gui_data;
586#define IOP_GUI_ALLOC(module) \
587 (dt_iop_##module##_gui_data_t *)_iop_gui_alloc(self,sizeof(dt_iop_##module##_gui_data_t))
589#define IOP_GUI_FREE \
590 dt_pthread_mutex_destroy(&self->gui_lock); \
591 if(self->gui_data){ \
592 dt_free_align(self->gui_data); \
593 self->gui_data = NULL; \
595 self->gui_data = NULL;
669#if defined(__x86_64__) || defined(__i386__)
675 __atomic_thread_fence(__ATOMIC_SEQ_CST);
687#define dt_omploop_sfence()
689#define dt_omploop_sfence() dt_sfence()
__DT_CLONE_TARGETS__ 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:3325
dt_iop_colorspace_type_t
Definition color_conversion.h:30
@ ACQUIRE
Definition colormapping.c:94
const float i
Definition colorspaces_inline_conversions.h:440
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
static gboolean enable(dt_image_t *image)
Definition highlights.c:2827
dt_iop_module_t * dt_iop_get_module_from_list(GList *iop_list, const char *op)
Definition imageop.c:2583
dt_dev_request_colorpick_flags_t
Definition imageop.h:195
@ DT_REQUEST_COLORPICK_OFF
Definition imageop.h:196
@ DT_REQUEST_COLORPICK_MODULE
Definition imageop.h:197
dt_iop_module_t * dt_iop_get_module(const char *op)
Definition imageop.c:2600
void dt_iop_set_darktable_iop_table()
Definition imageop.c:2618
void dt_iop_gui_cleanup_module(dt_iop_module_t *module)
Definition imageop.c:1807
void dt_iop_load_default_params(dt_iop_module_t *module)
Definition imageop.c:129
dt_iop_module_t * dt_iop_get_module_by_instance_name(GList *modules, const char *operation, const char *multi_name)
Definition imageop.c:2744
GtkWidget * dt_iop_gui_get_pluginui(dt_iop_module_t *module)
Definition imageop.c:2538
gboolean dt_iop_is_raster_mask_used(dt_iop_module_t *module, int id)
Definition imageop.c:2712
void dt_iop_compute_module_hash(dt_iop_module_t *module, GList *masks)
Definition imageop.c:1720
void dt_iop_add_remove_mask_indicator(dt_iop_module_t *module)
Definition imageop.c:2294
void dt_iop_reload_defaults(dt_iop_module_t *module)
Definition imageop.c:1118
static void dt_sfence()
Definition imageop.h:667
void dt_iop_gui_set_expander(dt_iop_module_t *module)
Definition imageop.c:2384
void dt_iop_throttled_history_update(gpointer data)
Definition imageop.c:2780
dt_iop_module_t * dt_iop_gui_get_next_visible_module(dt_iop_module_t *module)
Definition imageop.c:691
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:526
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:1399
float dt_dev_get_module_scale(const struct dt_dev_pixelpipe_t *pipe, const dt_iop_roi_t *roi_in)
Get the size of one current-grid pixel in full-resolution image pixels.
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.
Definition imageop.c:649
gboolean dt_iop_is_first_instance(GList *modules, dt_iop_module_t *module)
Definition imageop.c:2762
void dt_iop_gui_init(dt_iop_module_t *module)
Definition imageop.c:1079
void dt_iop_cleanup_module(dt_iop_module_t *module)
Definition imageop.c:1410
gboolean dt_iop_module_has_raster_mask(const dt_iop_module_t *module)
Definition imageop.c:1468
void dt_iop_gui_update(dt_iop_module_t *module)
Definition imageop.c:1854
const gchar * dt_iop_get_localized_aliases(const gchar *op)
Definition imageop.c:2666
const gchar * dt_iop_get_localized_name(const gchar *op)
Definition imageop.c:2644
void dt_bauhaus_update_module(dt_iop_module_t *self)
Definition imageop.c:2815
static gboolean dt_iop_colorspace_is_rgb(const dt_iop_colorspace_type_t cst)
Definition imageop.h:213
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:1743
void dt_iop_gui_reset(dt_iop_module_t *module)
Definition imageop.c:1874
gboolean dt_iop_module_needs_mask_history(const dt_iop_module_t *module)
Definition imageop.c:1479
void dt_iop_load_modules_so(void)
Definition imageop.c:1390
void dt_iop_nap(int32_t usec)
Definition imageop.c:2544
void dt_iop_default_init(dt_iop_module_t *module)
Definition imageop.c:308
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:2800
void dt_iop_gui_update_expanded(dt_iop_module_t *module)
Definition imageop.c:2082
void dt_iop_gui_update_header(dt_iop_module_t *module)
Definition imageop.c:1027
void dt_iop_gui_set_enable_button(dt_iop_module_t *module)
Definition imageop.c:1055
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:533
gboolean dt_iop_is_visible(dt_iop_module_t *module)
Definition imageop.c:982
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:446
void dt_iop_request_focus(dt_iop_module_t *module)
Definition imageop.c:1924
dt_iop_module_t * dt_iop_gui_get_previous_visible_module(dt_iop_module_t *module)
Definition imageop.c:677
dt_iop_module_header_icons_t
Definition imageop.h:104
@ IOP_MODULE_ICON
Definition imageop.h:106
@ IOP_MODULE_PRESETS
Definition imageop.h:111
@ IOP_MODULE_RESET
Definition imageop.h:110
@ IOP_MODULE_LABEL
Definition imageop.h:107
@ IOP_MODULE_MASK
Definition imageop.h:108
@ IOP_MODULE_LAST
Definition imageop.h:112
@ IOP_MODULE_SWITCH
Definition imageop.h:105
@ IOP_MODULE_INSTANCE
Definition imageop.h:109
static void dt_iop_gui_enter_critical_section(dt_iop_module_t *const module) ACQUIRE(&module -> gui_lock)
Definition imageop.h:415
gboolean dt_iop_is_hidden(dt_iop_module_t *module)
Definition imageop.c:977
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:2786
GtkWidget * dt_iop_gui_get_widget(dt_iop_module_t *module)
Definition imageop.c:2533
gboolean dt_iop_so_is_hidden(dt_iop_module_so_t *module)
Definition imageop.c:962
dt_iop_flags_t
Definition imageop.h:162
@ IOP_FLAGS_HIDDEN
Definition imageop.h:170
@ IOP_FLAGS_INCLUDE_IN_STYLES
Definition imageop.h:166
@ IOP_FLAGS_INTERNAL_MASKS
Definition imageop.h:179
@ IOP_FLAGS_PREVIEW_NON_OPENCL
Definition imageop.h:173
@ IOP_FLAGS_DEPRECATED
Definition imageop.h:168
@ IOP_FLAGS_SUPPORTS_BLENDING
Definition imageop.h:167
@ IOP_FLAGS_TAKE_NO_INPUT
Definition imageop.h:176
@ IOP_FLAGS_ALLOW_TILING
Definition imageop.h:169
@ IOP_FLAGS_UNSAFE_COPY
Definition imageop.h:177
@ IOP_FLAGS_NONE
Definition imageop.h:163
@ IOP_FLAGS_ONE_INSTANCE
Definition imageop.h:172
@ IOP_FLAGS_NO_MASKS
Definition imageop.h:175
@ IOP_FLAGS_CPU_WRITES_OPENCL
Definition imageop.h:180
@ IOP_FLAGS_GUIDES_SPECIAL_DRAW
Definition imageop.h:178
@ IOP_FLAGS_TILING_FULL_ROI
Definition imageop.h:171
@ IOP_FLAGS_NO_HISTORY_STACK
Definition imageop.h:174
void dt_iop_global_data_t
Definition imageop.h:191
static void dt_iop_gui_leave_critical_section(dt_iop_module_t *const module) RELEASE(&module -> gui_lock)
Definition imageop.h:421
int dt_iop_get_module_flags(const char *op)
Definition imageop.c:2605
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.
Definition imageop.c:663
void dt_bauhaus_value_changed_default_callback(GtkWidget *widget)
Definition imageop.c:2868
dt_iop_module_t * dt_iop_get_colorout_module(void)
Definition imageop.c:2578
gboolean dt_iop_check_modules_equal(dt_iop_module_t *mod_1, dt_iop_module_t *mod_2)
Definition imageop.c:1648
void dt_iop_data_t
Definition imageop.h:190
dt_iop_colorspace_type_t
Definition imageop.h:202
@ IOP_CS_RAW
Definition imageop.h:204
@ IOP_CS_LCH
Definition imageop.h:207
@ IOP_CS_RGB_DISPLAY
Definition imageop.h:210
@ IOP_CS_JZCZHZ
Definition imageop.h:209
@ IOP_CS_RGB
Definition imageop.h:206
@ IOP_CS_HSL
Definition imageop.h:208
@ IOP_CS_LAB
Definition imageop.h:205
@ IOP_CS_NONE
Definition imageop.h:203
void dt_iop_gui_set_expanded(dt_iop_module_t *module, gboolean expanded, gboolean collapse_others)
Definition imageop.c:2065
dt_iop_group_t
Definition imageop.h:135
@ IOP_GROUP_LAST
Definition imageop.h:144
@ IOP_GROUP_EFFECTS
Definition imageop.h:142
@ IOP_GROUP_FILM
Definition imageop.h:138
@ IOP_GROUP_TECHNICAL
Definition imageop.h:143
@ IOP_GROUP_COLOR
Definition imageop.h:139
@ IOP_GROUP_REPAIR
Definition imageop.h:140
@ IOP_GROUP_SHARPNESS
Definition imageop.h:141
@ IOP_GROUP_TONES
Definition imageop.h:137
@ IOP_GROUP_NONE
Definition imageop.h:136
void dt_iop_set_cache_bypass(dt_iop_module_t *module, gboolean state)
Definition imageop.c:2560
gboolean dt_iop_get_cache_bypass(dt_iop_module_t *module)
Definition imageop.c:2555
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.
Definition imageop.c:670
void dt_iop_set_mask_mode(dt_iop_module_t *module, int mask_mode)
Definition imageop.c:1454
void dt_iop_gui_rename_module(dt_iop_module_t *module)
Definition imageop.c:839
dt_iop_module_t * dt_iop_gui_duplicate(dt_iop_module_t *base, gboolean copy_params)
Definition imageop.c:705
gboolean dt_iop_gui_module_is_visible(dt_iop_module_t *module)
Definition imageop.c:643
dt_iop_module_t * dt_iop_get_module_by_op_priority(GList *modules, const char *operation, const int multi_priority)
Definition imageop.c:2726
static dt_iop_gui_data_t * _iop_gui_alloc(dt_iop_module_t *module, size_t size)
Definition imageop.h:579
void dt_iop_update_multi_priority(dt_iop_module_t *module, int new_priority)
Definition imageop.c:2688
dt_iop_tags_t
Definition imageop.h:149
@ IOP_TAG_DECORATION
Definition imageop.h:152
@ IOP_TAG_CLIPPING
Definition imageop.h:153
@ IOP_TAG_DISTORT
Definition imageop.h:151
@ IOP_TAG_NONE
Definition imageop.h:150
void dt_iop_unload_modules_so(void)
Definition imageop.c:1436
size_t size
Definition mipmap_cache.c:3
float dt_aligned_pixel_t[4]
Definition noiseprofile.c:28
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
const float uint32_t state[4]
Definition src/develop/noise_generator.h:72
unsigned __int64 uint64_t
Definition strptime.c:75
Definition pixelpipe.h:65
Definition pixelpipe_hb.h:96
struct dt_iop_module_t *void * data
Definition pixelpipe_hb.h:97
Definition pixelpipe_hb.h:218
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:187
GModule *dt_dev_operation_t op
Definition imageop.h:230
dt_gui_module_t common_fields
Definition imageop.h:222
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:238
dt_iop_global_data_t * data
Definition imageop.h:233
gboolean have_introspection
Definition imageop.h:242
dt_dev_request_colorpick_flags_t request_color_pick
Definition imageop.h:264
GtkDarktableToggleButton * off
Definition imageop.h:341
int32_t hide_enable_button
Definition imageop.h:262
gpointer blend_data
Definition imageop.h:320
struct dt_iop_module_t * source
Definition imageop.h:334
dt_iop_params_t * default_params
Definition imageop.h:309
GHashTable * masks
Definition imageop.h:330
struct dt_develop_blend_params_t * blend_params
Definition imageop.h:318
dt_aligned_pixel_t picked_output_color_min
Definition imageop.h:276
uint64_t hash
Definition imageop.h:382
int32_t suppress_mask
Definition imageop.h:270
GtkWidget * widget
Definition imageop.h:339
int multi_priority
Definition imageop.h:364
char multi_name[128]
Definition imageop.h:365
dt_gui_module_t common_fields
Definition imageop.h:248
struct dt_develop_t * dev
Definition imageop.h:298
GtkWidget * mask_indicator
Definition imageop.h:345
dt_iop_gui_data_t * gui_data
Definition imageop.h:313
uint64_t blendop_hash
Definition imageop.h:389
gboolean default_enabled
Definition imageop.h:305
GModule *dt_dev_operation_t op
Definition imageop.h:256
dt_dev_request_flags_t request_histogram
Definition imageop.h:266
int iop_order
Definition imageop.h:260
gboolean have_introspection
Definition imageop.h:379
GtkWidget * guides_toggle
Definition imageop.h:357
GtkWidget * fusion_slider
Definition imageop.h:354
gboolean expanded
Definition imageop.h:348
GtkWidget * multimenu_button
Definition imageop.h:370
gboolean multi_show_close
Definition imageop.h:366
dt_dev_histogram_stats_t histogram_stats
Definition imageop.h:280
dt_aligned_pixel_t picked_output_color_max
Definition imageop.h:276
int32_t instance
Definition imageop.h:258
gboolean multi_show_up
Definition imageop.h:367
gboolean bypass_cache
Definition imageop.h:272
struct dt_iop_module_t::@29 raster_mask
GtkWidget * presets_button
Definition imageop.h:352
uint32_t histogram_max[4]
Definition imageop.h:282
dt_iop_global_data_t * global_data
Definition imageop.h:316
gboolean multi_show_new
Definition imageop.h:369
gboolean multi_show_down
Definition imageop.h:368
int id
Definition imageop.h:335
gboolean workflow_enabled
Definition imageop.h:307
dt_aligned_pixel_t picked_output_color
Definition imageop.h:276
gboolean enabled
Definition imageop.h:300
GtkWidget * reset_button
Definition imageop.h:350
dt_iop_module_so_t * so
Definition imageop.h:361
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:375
GtkWidget * expander
Definition imageop.h:347
dt_aligned_pixel_t picked_color_min
Definition imageop.h:274
int request_mask_display
Definition imageop.h:268
dt_pthread_mutex_t gui_lock
Definition imageop.h:314
dt_aligned_pixel_t picked_color_max
Definition imageop.h:274
int histogram_middle_grey
Definition imageop.h:289
GHashTable * users
Definition imageop.h:326
struct dt_develop_blend_params_t * default_blendop_params
Definition imageop.h:318
GtkWidget * header
Definition imageop.h:343
int32_t params_size
Definition imageop.h:311
uint32_t * histogram
Definition imageop.h:278
dt_iop_colorspace_type_t histogram_cst
Definition imageop.h:287
guint timeout_handle
Definition imageop.h:373
dt_aligned_pixel_t picked_color
Definition imageop.h:274
GtkWidget * guides_combo
Definition imageop.h:358
dt_iop_params_t * params
Definition imageop.h:309
Region of interest passed through the pixelpipe.
Definition imageop.h:72
int x
Definition imageop.h:73
double scale
Definition imageop.h:74
int width
Definition imageop.h:73
int height
Definition imageop.h:73
int y
Definition imageop.h:73