50#define DEVELOP_BLEND_VERSION (11)
309#define DEVELOP_MASKS_NB_SHAPES 5
437 const int old_version,
void *new_params,
const int new_version,
440 const int old_version,
void *new_params,
const int new_version,
445#define DEVELOP_BLENDIF_PARAMETER_ITEMS 6
469 const float *
const b,
float *
const mask);
471 const float *
const b,
float *
const mask);
474 const float *
const a,
const float *
const b,
float *
const mask);
477 const float *
const a,
const float *
const b,
float *
const mask);
483 float *
const b,
const float *
const mask,
487 float *
const b,
const float *
const mask,
491 float *
const b,
const float *
const mask,
495 float *
const b,
const float *
const mask,
void dt_develop_blendif_raw_blend(const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const b, const float *const mask, const dt_dev_pixelpipe_display_mask_t request_mask_display)
struct dt_develop_blend_params_t dt_develop_blend_params_t
void dt_develop_blendif_rgb_jzczhz_blend(const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const b, const float *const mask, const dt_dev_pixelpipe_display_mask_t request_mask_display)
void dt_develop_blendif_rgb_hsl_make_mask(const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const float *const a, const float *const b, float *const mask)
gboolean blend_color_picker_apply(dt_iop_module_t *module, GtkWidget *picker, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
Definition blend_gui.c:2368
void dt_develop_blend_init_blend_parameters(dt_develop_blend_params_t *blend_params, dt_develop_blend_colorspace_t cst)
Definition blend.c:162
void dt_iop_gui_init_blending(dt_iop_module_t *module)
Definition blend_gui.c:4445
dt_develop_mask_feathering_guide_t
Definition blend.h:134
@ DEVELOP_MASK_GUIDE_OUT_BEFORE_BLUR
Definition blend.h:136
@ DEVELOP_MASK_GUIDE_IN_AFTER_BLUR
Definition blend.h:137
@ DEVELOP_MASK_GUIDE_OUT_AFTER_BLUR
Definition blend.h:138
@ DEVELOP_MASK_GUIDE_IN_BEFORE_BLUR
Definition blend.h:135
const dt_develop_name_value_t dt_develop_invert_mask_names[]
Definition blend_gui.c:159
const dt_develop_name_value_t dt_develop_mask_mode_names[]
Definition blend_gui.c:136
dt_develop_blend_colorspace_t
Definition blend.h:53
@ DEVELOP_BLEND_CS_NONE
Definition blend.h:54
@ DEVELOP_BLEND_CS_LAB
Definition blend.h:56
@ DEVELOP_BLEND_CS_RGB_SCENE
Definition blend.h:58
@ DEVELOP_BLEND_CS_RGB_DISPLAY
Definition blend.h:57
@ DEVELOP_BLEND_CS_RAW
Definition blend.h:55
int dt_develop_blend_process(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o)
Definition blend.c:597
dt_develop_mask_combine_mode_t
Definition blend.h:121
@ DEVELOP_COMBINE_INV
Definition blend.h:123
@ DEVELOP_COMBINE_NORM
Definition blend.h:122
@ DEVELOP_COMBINE_INCL
Definition blend.h:125
@ DEVELOP_COMBINE_EXCL
Definition blend.h:124
@ DEVELOP_COMBINE_MASKS_POS
Definition blend.h:126
@ DEVELOP_COMBINE_NORM_INCL
Definition blend.h:128
@ DEVELOP_COMBINE_INV_INCL
Definition blend.h:130
@ DEVELOP_COMBINE_INV_EXCL
Definition blend.h:129
@ DEVELOP_COMBINE_NORM_EXCL
Definition blend.h:127
dt_blendop_cl_global_t * dt_develop_blend_init_cl_global(void)
Definition blend.c:1444
void dt_develop_blendif_process_parameters(float *const parameters, const dt_develop_blend_params_t *const params)
void dt_develop_blendif_rgb_jzczhz_make_mask(const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const float *const a, const float *const b, float *const mask)
void dt_develop_blendif_lab_blend(const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const b, const float *const mask, const dt_dev_pixelpipe_display_mask_t request_mask_display)
void dt_develop_blendif_raw_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a, const float *const b, float *const mask)
void dt_develop_blend_free_cl_global(dt_blendop_cl_global_t *b)
Definition blend.c:1478
dt_iop_colorspace_type_t dt_develop_blend_colorspace(const dt_dev_pixelpipe_iop_t *const piece, dt_iop_colorspace_type_t cst)
Definition blend.c:184
int dt_develop_blendif_init_masking_profile(const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, dt_iop_order_iccprofile_info_t *blending_profile, dt_develop_blend_colorspace_t cst)
Definition blend.c:252
void dt_develop_blendif_rgb_hsl_blend(const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const b, const float *const mask, const dt_dev_pixelpipe_display_mask_t request_mask_display)
int dt_develop_blend_legacy_params_from_so(dt_iop_module_so_t *module_so, const void *const old_params, const int old_version, void *new_params, const int new_version, const int length)
Definition blend.c:2056
dt_develop_blend_colorspace_t dt_develop_blend_default_module_blend_colorspace(dt_iop_module_t *module)
Definition blend.c:140
int dt_develop_blend_version(void)
Definition blend.c:1506
int dt_develop_blend_legacy_params(dt_iop_module_t *module, const void *const old_params, const int old_version, void *new_params, const int new_version, const int length)
Definition blend.c:1570
void dt_develop_blendif_lab_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a, const float *const b, float *const mask)
void dt_iop_gui_update_blending(dt_iop_module_t *module)
Definition blend_gui.c:3780
const dt_develop_name_value_t dt_develop_blend_colorspace_names[]
Definition blend_gui.c:128
dt_develop_blendif_channels_t
Definition blend.h:142
@ DEVELOP_BLENDIF_GRAY_out
Definition blend.h:156
@ DEVELOP_BLENDIF_hz_in
Definition blend.h:177
@ DEVELOP_BLENDIF_Cz_in
Definition blend.h:176
@ DEVELOP_BLENDIF_MAX
Definition blend.h:183
@ DEVELOP_BLENDIF_S_out
Definition blend.h:172
@ DEVELOP_BLENDIF_RED_in
Definition blend.h:152
@ DEVELOP_BLENDIF_C_out
Definition blend.h:164
@ DEVELOP_BLENDIF_A_in
Definition blend.h:144
@ DEVELOP_BLENDIF_C_in
Definition blend.h:161
@ DEVELOP_BLENDIF_l_in
Definition blend.h:169
@ DEVELOP_BLENDIF_L_out
Definition blend.h:147
@ DEVELOP_BLENDIF_GREEN_in
Definition blend.h:153
@ DEVELOP_BLENDIF_h_in
Definition blend.h:162
@ DEVELOP_BLENDIF_H_in
Definition blend.h:167
@ DEVELOP_BLENDIF_RED_out
Definition blend.h:157
@ DEVELOP_BLENDIF_Lab_MASK
Definition blend.h:190
@ DEVELOP_BLENDIF_Jz_out
Definition blend.h:179
@ DEVELOP_BLENDIF_SIZE
Definition blend.h:188
@ DEVELOP_BLENDIF_B_in
Definition blend.h:145
@ DEVELOP_BLENDIF_Cz_out
Definition blend.h:180
@ DEVELOP_BLENDIF_Jz_in
Definition blend.h:175
@ DEVELOP_BLENDIF_H_out
Definition blend.h:171
@ DEVELOP_BLENDIF_A_out
Definition blend.h:148
@ DEVELOP_BLENDIF_unused
Definition blend.h:184
@ DEVELOP_BLENDIF_B_out
Definition blend.h:149
@ DEVELOP_BLENDIF_h_out
Definition blend.h:165
@ DEVELOP_BLENDIF_OUTPUT_MASK
Definition blend.h:192
@ DEVELOP_BLENDIF_BLUE_in
Definition blend.h:154
@ DEVELOP_BLENDIF_L_in
Definition blend.h:143
@ DEVELOP_BLENDIF_active
Definition blend.h:186
@ DEVELOP_BLENDIF_hz_out
Definition blend.h:181
@ DEVELOP_BLENDIF_BLUE_out
Definition blend.h:159
@ DEVELOP_BLENDIF_RGB_MASK
Definition blend.h:191
@ DEVELOP_BLENDIF_S_in
Definition blend.h:168
@ DEVELOP_BLENDIF_GRAY_in
Definition blend.h:151
@ DEVELOP_BLENDIF_GREEN_out
Definition blend.h:158
@ DEVELOP_BLENDIF_l_out
Definition blend.h:173
void dt_iop_gui_blending_lose_focus(dt_iop_module_t *module)
Definition blend_gui.c:4050
void dt_iop_gui_init_blending_body(GtkBox *blendw, dt_iop_module_t *module)
Definition blend_gui.c:4215
gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length)
Definition blend.c:1533
const dt_develop_name_value_t dt_develop_blend_mode_flag_names[]
Definition blend_gui.c:123
#define DEVELOP_MASKS_NB_SHAPES
Definition blend.h:309
dt_develop_blend_mode_t
Definition blend.h:62
@ DEVELOP_BLEND_LIGHTEN
Definition blend.h:65
@ DEVELOP_BLEND_COLOR
Definition blend.h:82
@ DEVELOP_BLEND_CHROMATICITY
Definition blend.h:80
@ DEVELOP_BLEND_DIFFERENCE
Definition blend.h:71
@ DEVELOP_BLEND_RGB_B
Definition blend.h:98
@ DEVELOP_BLEND_LIGHTNESS
Definition blend.h:79
@ DEVELOP_BLEND_BOUNDED
Definition blend.h:88
@ DEVELOP_BLEND_SUBTRACT
Definition blend.h:70
@ DEVELOP_BLEND_MODE_MASK
Definition blend.h:107
@ DEVELOP_BLEND_DIVIDE_INVERSE
Definition blend.h:102
@ DEVELOP_BLEND_MULTIPLY_REVERSE_OBSOLETE
Definition blend.h:99
@ DEVELOP_BLEND_NORMAL2
Definition blend.h:87
@ DEVELOP_BLEND_HARDLIGHT
Definition blend.h:75
@ DEVELOP_BLEND_HUE
Definition blend.h:81
@ DEVELOP_BLEND_OVERLAY
Definition blend.h:73
@ DEVELOP_BLEND_RGB_R
Definition blend.h:96
@ DEVELOP_BLEND_LAB_A
Definition blend.h:94
@ DEVELOP_BLEND_LAB_COLOR
Definition blend.h:90
@ DEVELOP_BLEND_REVERSE
Definition blend.h:106
@ DEVELOP_BLEND_DISABLED_OBSOLETE
Definition blend.h:63
@ DEVELOP_BLEND_AVERAGE
Definition blend.h:68
@ DEVELOP_BLEND_DIVIDE
Definition blend.h:101
@ DEVELOP_BLEND_HSV_COLOR
Definition blend.h:92
@ DEVELOP_BLEND_MULTIPLY
Definition blend.h:67
@ DEVELOP_BLEND_SCREEN
Definition blend.h:72
@ DEVELOP_BLEND_HARMONIC_MEAN
Definition blend.h:104
@ DEVELOP_BLEND_PINLIGHT
Definition blend.h:78
@ DEVELOP_BLEND_HSV_VALUE
Definition blend.h:91
@ DEVELOP_BLEND_LAB_L
Definition blend.h:93
@ DEVELOP_BLEND_LINEARLIGHT
Definition blend.h:77
@ DEVELOP_BLEND_ADD
Definition blend.h:69
@ DEVELOP_BLEND_VIVIDLIGHT
Definition blend.h:76
@ DEVELOP_BLEND_GEOMETRIC_MEAN
Definition blend.h:103
@ DEVELOP_BLEND_NORMAL_OBSOLETE
Definition blend.h:64
@ DEVELOP_BLEND_SOFTLIGHT
Definition blend.h:74
@ DEVELOP_BLEND_UNBOUNDED_OBSOLETE
Definition blend.h:84
@ DEVELOP_BLEND_COLORADJUST
Definition blend.h:85
@ DEVELOP_BLEND_DARKEN
Definition blend.h:66
@ DEVELOP_BLEND_INVERSE_OBSOLETE
Definition blend.h:83
@ DEVELOP_BLEND_LAB_B
Definition blend.h:95
@ DEVELOP_BLEND_LAB_LIGHTNESS
Definition blend.h:89
@ DEVELOP_BLEND_DIFFERENCE2
Definition blend.h:86
@ DEVELOP_BLEND_SUBTRACT_INVERSE
Definition blend.h:100
@ DEVELOP_BLEND_RGB_G
Definition blend.h:97
void dt_iop_gui_cleanup_blending_body(dt_iop_module_t *module)
Definition blend_gui.c:4124
const dt_develop_name_value_t dt_develop_combine_masks_names[]
Definition blend_gui.c:145
const dt_develop_name_value_t dt_develop_blend_mode_names[]
Definition blend_gui.c:81
void dt_develop_blend_init_blendif_parameters(dt_develop_blend_params_t *blend_params, dt_develop_blend_colorspace_t cst)
Definition blend.c:170
void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module)
Definition blend_gui.c:3131
void dt_iop_gui_cleanup_blending(dt_iop_module_t *module)
Definition blend_gui.c:3651
void dt_iop_gui_blending_reload_defaults(dt_iop_module_t *module)
Definition blend_gui.c:4116
const dt_develop_name_value_t dt_develop_feathering_guide_names[]
Definition blend_gui.c:152
struct dt_iop_blend_name_value_t dt_develop_name_value_t
dt_develop_mask_mode_t
Definition blend.h:111
@ DEVELOP_MASK_RASTER
Definition blend.h:116
@ DEVELOP_MASK_MASK_CONDITIONAL
Definition blend.h:117
@ DEVELOP_MASK_DISABLED
Definition blend.h:112
@ DEVELOP_MASK_ENABLED
Definition blend.h:113
@ DEVELOP_MASK_CONDITIONAL
Definition blend.h:115
@ DEVELOP_MASK_MASK
Definition blend.h:114
void dt_iop_gui_update_blendif(dt_iop_module_t *module)
Definition blend_gui.c:3042
dt_iop_colorspace_type_t
Definition color_conversion.h:30
const float i
Definition colorspaces_inline_conversions.h:669
const float b
Definition colorspaces_inline_conversions.h:1326
const float a
Definition colorspaces_inline_conversions.h:1292
const float n
Definition colorspaces_inline_conversions.h:929
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
static const dt_aligned_pixel_simd_t value
Definition darktable.h:501
dt_dev_pixelpipe_display_mask_t
Definition develop.h:110
#define DEVELOP_BLENDIF_SIZE
Definition lightroom.c:235
char dt_dev_operation_t[20]
Definition settings.h:38
struct _GtkWidget GtkWidget
Definition splash.h:29
Definition gradientslider.h:108
int kernel_calc_blend
Definition blend.h:258
int kernel_blendop_mask_RAW
Definition blend.h:243
int kernel_read_mask
Definition blend.h:257
int kernel_blendop_mask_rgb_jzczhz
Definition blend.h:245
int kernel_blendop_RAW
Definition blend.h:247
int kernel_blendop_Lab
Definition blend.h:246
int kernel_calc_Y0_mask
Definition blend.h:253
int kernel_mask_blur
Definition blend.h:259
int kernel_calc_scharr_mask
Definition blend.h:254
int kernel_blendop_display_channel
Definition blend.h:252
int kernel_blendop_rgb_jzczhz
Definition blend.h:249
int kernel_blendop_mask_rgb_hsl
Definition blend.h:244
int kernel_blendop_rgb_hsl
Definition blend.h:248
int kernel_blendop_mask_tone_curve
Definition blend.h:250
int kernel_blendop_set_mask
Definition blend.h:251
int kernel_write_scharr_mask
Definition blend.h:255
int kernel_write_mask
Definition blend.h:256
int kernel_blendop_mask_Lab
Definition blend.h:242
Definition pixelpipe_hb.h:95
Definition pixelpipe_hb.h:216
uint32_t blendif
Definition blend.h:215
float contrast
Definition blend.h:223
uint32_t feathering_guide
Definition blend.h:219
uint32_t mask_mode
Definition blend.h:201
float brightness
Definition blend.h:225
uint32_t mask_combine
Definition blend.h:211
float blend_parameter
Definition blend.h:207
int raster_mask_instance
Definition blend.h:234
uint32_t reserved[3]
Definition blend.h:229
dt_dev_operation_t raster_mask_source
Definition blend.h:233
float blur_radius
Definition blend.h:221
float blendif_parameters[4 *DEVELOP_BLENDIF_SIZE]
Definition blend.h:231
float blendif_boost_factors[DEVELOP_BLENDIF_SIZE]
Definition blend.h:232
uint32_t blend_mode
Definition blend.h:205
float feathering_radius
Definition blend.h:217
uint32_t mask_id
Definition blend.h:213
float details
Definition blend.h:227
gboolean raster_mask_invert
Definition blend.h:236
int raster_mask_id
Definition blend.h:235
float opacity
Definition blend.h:209
int32_t blend_cst
Definition blend.h:203
int value
Definition blend.h:298
char name[32]
Definition blend.h:297
GtkWidget * raster_enable
Definition blend.h:327
GtkWidget * blendif_enable
Definition blend.h:328
GtkWidget * masks_content
Definition blend.h:330
GtkWidget * masks_treeview
Definition blend.h:378
GtkWidget * channel_boost_factor_slider
Definition blend.h:366
GtkWidget * opacity_slider
Definition blend.h:348
GtkWidget * raster_polarity
Definition blend.h:397
GtkWidget * lists_box
Definition blend.h:393
GtkWidget * showmask
Definition blend.h:341
int masks_inited
Definition blend.h:317
GtkBox * masks_box
Definition blend.h:335
GtkWidget * all_shapes_sw
Definition blend.h:385
GtkBox * blendif_box
Definition blend.h:334
GtkWidget * blur_radius_slider
Definition blend.h:351
GdkPixbuf * masks_ic_intersection
Definition blend.h:389
GtkWidget * feathering_radius_slider
Definition blend.h:350
int masks_type[5]
Definition blend.h:371
GtkWidget * details_slider
Definition blend.h:367
int raster_inited
Definition blend.h:318
dt_iop_gui_blendif_filter_t filter[2]
Definition blend.h:340
GtkWidget * all_shapes_buttons
Definition blend.h:392
GtkWidget * colorpicker
Definition blend.h:338
GtkWidget * colorpicker_set_values
Definition blend.h:339
GtkWidget * top_content
Definition blend.h:329
GdkPixbuf * masks_ic_union
Definition blend.h:388
GdkPixbuf * masks_ic_inverse
Definition blend.h:387
int blendif_inited
Definition blend.h:315
GtkWidget * masks_group_treeview
Definition blend.h:379
GtkWidget * masks_combo
Definition blend.h:369
int masks_shown
Definition blend.h:377
GdkPixbuf * masks_ic_difference
Definition blend.h:390
GtkTreeViewColumn * group_shapes_col
Definition blend.h:381
GtkWidget * lists_stack
Definition blend.h:386
int tab
Definition blend.h:359
int masks_support
Definition blend.h:316
GtkWidget * contrast_slider
Definition blend.h:352
GtkWidget * blend_modes_blend_order
Definition blend.h:345
GtkWidget * masks_combine_combo
Definition blend.h:343
dt_develop_blend_colorspace_t channel_tabs_csp
Definition blend.h:356
GtkWidget * masks_edit
Definition blend.h:372
GtkWidget * bottom_content
Definition blend.h:333
int timeout_handle
Definition blend.h:362
GtkWidget * masks_shapes[5]
Definition blend.h:370
GtkBox * raster_box
Definition blend.h:336
GtkWidget * blend_mode_parameter_slider
Definition blend.h:346
GtkWidget * group_shapes_label
Definition blend.h:373
GtkWidget * masks_feathering_guide_combo
Definition blend.h:349
dt_iop_module_t *GtkWidget * blending_body_box
Definition blend.h:323
const dt_iop_gui_blendif_channel_t * channel
Definition blend.h:358
dt_pthread_mutex_t lock
Definition blend.h:400
GtkWidget * brightness_slider
Definition blend.h:353
GtkWidget * raster_content
Definition blend.h:331
GtkWidget * blend_modes_combo
Definition blend.h:344
dt_develop_blend_colorspace_t csp
Definition blend.h:320
int blendif_support
Definition blend.h:314
GtkWidget * group_shapes_sw
Definition blend.h:383
int * masks_combo_ids
Definition blend.h:376
GtkWidget * blending_notebook
Definition blend.h:324
GtkWidget * blendif_content
Definition blend.h:332
GtkWidget * masks_invert_combo
Definition blend.h:347
gboolean output_channels_shown
Definition blend.h:364
GdkPixbuf * masks_ic_exclusion
Definition blend.h:391
GtkWidget * raster_combo
Definition blend.h:396
GtkListStore * all_shapes_store
Definition blend.h:382
GtkWidget * masks_polarity
Definition blend.h:374
int altmode[8][2]
Definition blend.h:360
GtkTreeViewColumn * all_shapes_col
Definition blend.h:384
GtkWidget * top_enable
Definition blend.h:325
GtkWidget * masks_enable
Definition blend.h:326
GtkTreeStore * group_shapes_store
Definition blend.h:380
dt_dev_pixelpipe_display_mask_t save_for_leave
Definition blend.h:361
GtkWidget * wire_shape_toggle
Definition blend.h:375
GtkWidget * suppress
Definition blend.h:342
GtkNotebook * channel_tabs
Definition blend.h:363
dt_develop_blend_colorspace_t blend_modes_csp
Definition blend.h:355
int control_button_pressed
Definition blend.h:399
float increment
Definition blend.h:273
gboolean boost_factor_enabled
Definition blend.h:276
const dt_iop_gui_blendif_colorstop_t * colorstops
Definition blend.h:275
void(* scale_print)(float value, float boost_factor, char *string, int n)
Definition blend.h:280
int numberstops
Definition blend.h:274
int(* altdisplay)(GtkWidget *, dt_iop_module_t *, int)
Definition blend.h:281
char * name
Definition blend.h:282
float boost_factor_offset
Definition blend.h:277
dt_develop_blendif_channels_t param_channels[2]
Definition blend.h:278
char * tooltip
Definition blend.h:272
dt_dev_pixelpipe_display_mask_t display_channel
Definition blend.h:279
char * label
Definition blend.h:271
GdkRGBA color
Definition blend.h:266
float stoppoint
Definition blend.h:265
GtkLabel * head
Definition blend.h:288
GtkWidget * polarity
Definition blend.h:291
GtkLabel * label[4]
Definition blend.h:289
GtkDarktableGradientSlider * slider
Definition blend.h:287
GtkBox * box
Definition blend.h:292
GtkLabel * picker_label
Definition blend.h:290
Definition iop_profile.h:52