32#define DEVELOP_BLEND_VERSION (11)
291#define DEVELOP_MASKS_NB_SHAPES 5
370 const void *
const i,
void *
const o,
const struct dt_iop_roi_t *
const roi_in,
397 const int old_version,
void *new_params,
const int new_version,
400 const int old_version,
void *new_params,
const int new_version,
405#define DEVELOP_BLENDIF_PARAMETER_ITEMS 6
428 const float *
const b,
const struct dt_iop_roi_t *
const roi_in,
429 const struct dt_iop_roi_t *
const roi_out,
float *
const mask);
431 const float *
const b,
const struct dt_iop_roi_t *
const roi_in,
432 const struct dt_iop_roi_t *
const roi_out,
float *
const mask);
434 const float *
const b,
const struct dt_iop_roi_t *
const roi_in,
435 const struct dt_iop_roi_t *
const roi_out,
float *
const mask);
437 const float *
const b,
const struct dt_iop_roi_t *
const roi_in,
438 const struct dt_iop_roi_t *
const roi_out,
float *
const mask);
444 const struct dt_iop_roi_t *
const roi_out,
const float *
const mask,
448 const struct dt_iop_roi_t *
const roi_out,
const float *
const mask,
452 const struct dt_iop_roi_t *
const roi_out,
const float *
const mask,
456 const struct dt_iop_roi_t *
const roi_out,
const float *
const mask,
475 cl_mem dev_in, cl_mem dev_out,
const struct dt_iop_roi_t *roi_in,
void dt_develop_blendif_lab_blend(struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, 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_blend_init_blend_parameters(dt_develop_blend_params_t *blend_params, dt_develop_blend_colorspace_t cst)
Definition blend.c:111
void dt_develop_blendif_rgb_jzczhz_make_mask(struct dt_dev_pixelpipe_iop_t *piece, const float *const a, const float *const b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, float *const mask)
dt_develop_mask_feathering_guide_t
Definition blend.h:116
@ DEVELOP_MASK_GUIDE_OUT_BEFORE_BLUR
Definition blend.h:118
@ DEVELOP_MASK_GUIDE_IN_AFTER_BLUR
Definition blend.h:119
@ DEVELOP_MASK_GUIDE_OUT_AFTER_BLUR
Definition blend.h:120
@ DEVELOP_MASK_GUIDE_IN_BEFORE_BLUR
Definition blend.h:117
const dt_develop_name_value_t dt_develop_invert_mask_names[]
Definition blend_gui.c:124
const dt_develop_name_value_t dt_develop_mask_mode_names[]
Definition blend_gui.c:101
void dt_iop_gui_init_blending(GtkWidget *iopw, dt_iop_module_t *module)
Definition blend_gui.c:3007
dt_develop_blend_colorspace_t
Definition blend.h:35
@ DEVELOP_BLEND_CS_NONE
Definition blend.h:36
@ DEVELOP_BLEND_CS_LAB
Definition blend.h:38
@ DEVELOP_BLEND_CS_RGB_SCENE
Definition blend.h:40
@ DEVELOP_BLEND_CS_RGB_DISPLAY
Definition blend.h:39
@ DEVELOP_BLEND_CS_RAW
Definition blend.h:37
int dt_develop_blendif_init_masking_profile(struct dt_dev_pixelpipe_iop_t *piece, dt_iop_order_iccprofile_info_t *blending_profile, dt_develop_blend_colorspace_t cst)
Definition blend.c:201
dt_develop_mask_combine_mode_t
Definition blend.h:103
@ DEVELOP_COMBINE_INV
Definition blend.h:105
@ DEVELOP_COMBINE_NORM
Definition blend.h:104
@ DEVELOP_COMBINE_INCL
Definition blend.h:107
@ DEVELOP_COMBINE_EXCL
Definition blend.h:106
@ DEVELOP_COMBINE_MASKS_POS
Definition blend.h:108
@ DEVELOP_COMBINE_NORM_INCL
Definition blend.h:110
@ DEVELOP_COMBINE_INV_INCL
Definition blend.h:112
@ DEVELOP_COMBINE_INV_EXCL
Definition blend.h:111
@ DEVELOP_COMBINE_NORM_EXCL
Definition blend.h:109
void dt_develop_blendif_raw_make_mask(struct dt_dev_pixelpipe_iop_t *piece, const float *const a, const float *const b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, float *const mask)
dt_blendop_cl_global_t * dt_develop_blend_init_cl_global(void)
Definition blend.c:1294
void dt_develop_blendif_process_parameters(float *const parameters, const dt_develop_blend_params_t *const params)
void dt_develop_blendif_rgb_hsl_make_mask(struct dt_dev_pixelpipe_iop_t *piece, const float *const a, const float *const b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, float *const mask)
void dt_develop_blendif_rgb_hsl_blend(struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, const float *const mask, const dt_dev_pixelpipe_display_mask_t request_mask_display)
void dt_develop_blend_free_cl_global(dt_blendop_cl_global_t *b)
Definition blend.c:1328
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:133
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:1907
dt_develop_blend_colorspace_t dt_develop_blend_default_module_blend_colorspace(dt_iop_module_t *module)
Definition blend.c:89
void dt_develop_blendif_lab_make_mask(struct dt_dev_pixelpipe_iop_t *piece, const float *const a, const float *const b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, float *const mask)
int dt_develop_blend_version(void)
Definition blend.c:1356
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:1421
void dt_iop_gui_update_blending(dt_iop_module_t *module)
Definition blend_gui.c:2658
int dt_develop_blend_process(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 blend.c:425
const dt_develop_name_value_t dt_develop_blend_colorspace_names[]
Definition blend_gui.c:93
dt_develop_blendif_channels_t
Definition blend.h:124
@ DEVELOP_BLENDIF_GRAY_out
Definition blend.h:138
@ DEVELOP_BLENDIF_hz_in
Definition blend.h:159
@ DEVELOP_BLENDIF_Cz_in
Definition blend.h:158
@ DEVELOP_BLENDIF_MAX
Definition blend.h:165
@ DEVELOP_BLENDIF_S_out
Definition blend.h:154
@ DEVELOP_BLENDIF_RED_in
Definition blend.h:134
@ DEVELOP_BLENDIF_C_out
Definition blend.h:146
@ DEVELOP_BLENDIF_A_in
Definition blend.h:126
@ DEVELOP_BLENDIF_C_in
Definition blend.h:143
@ DEVELOP_BLENDIF_l_in
Definition blend.h:151
@ DEVELOP_BLENDIF_L_out
Definition blend.h:129
@ DEVELOP_BLENDIF_GREEN_in
Definition blend.h:135
@ DEVELOP_BLENDIF_h_in
Definition blend.h:144
@ DEVELOP_BLENDIF_H_in
Definition blend.h:149
@ DEVELOP_BLENDIF_RED_out
Definition blend.h:139
@ DEVELOP_BLENDIF_Lab_MASK
Definition blend.h:172
@ DEVELOP_BLENDIF_Jz_out
Definition blend.h:161
@ DEVELOP_BLENDIF_SIZE
Definition blend.h:170
@ DEVELOP_BLENDIF_B_in
Definition blend.h:127
@ DEVELOP_BLENDIF_Cz_out
Definition blend.h:162
@ DEVELOP_BLENDIF_Jz_in
Definition blend.h:157
@ DEVELOP_BLENDIF_H_out
Definition blend.h:153
@ DEVELOP_BLENDIF_A_out
Definition blend.h:130
@ DEVELOP_BLENDIF_unused
Definition blend.h:166
@ DEVELOP_BLENDIF_B_out
Definition blend.h:131
@ DEVELOP_BLENDIF_h_out
Definition blend.h:147
@ DEVELOP_BLENDIF_OUTPUT_MASK
Definition blend.h:174
@ DEVELOP_BLENDIF_BLUE_in
Definition blend.h:136
@ DEVELOP_BLENDIF_L_in
Definition blend.h:125
@ DEVELOP_BLENDIF_active
Definition blend.h:168
@ DEVELOP_BLENDIF_hz_out
Definition blend.h:163
@ DEVELOP_BLENDIF_BLUE_out
Definition blend.h:141
@ DEVELOP_BLENDIF_RGB_MASK
Definition blend.h:173
@ DEVELOP_BLENDIF_S_in
Definition blend.h:150
@ DEVELOP_BLENDIF_GRAY_in
Definition blend.h:133
@ DEVELOP_BLENDIF_GREEN_out
Definition blend.h:140
@ DEVELOP_BLENDIF_l_out
Definition blend.h:155
void dt_develop_blendif_rgb_jzczhz_blend(struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, const float *const mask, const dt_dev_pixelpipe_display_mask_t request_mask_display)
void dt_iop_gui_blending_lose_focus(dt_iop_module_t *module)
Definition blend_gui.c:2936
gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length)
Definition blend.c:1384
const dt_develop_name_value_t dt_develop_blend_mode_flag_names[]
Definition blend_gui.c:88
#define DEVELOP_MASKS_NB_SHAPES
Definition blend.h:291
dt_develop_blend_mode_t
Definition blend.h:44
@ DEVELOP_BLEND_LIGHTEN
Definition blend.h:47
@ DEVELOP_BLEND_COLOR
Definition blend.h:64
@ DEVELOP_BLEND_CHROMATICITY
Definition blend.h:62
@ DEVELOP_BLEND_DIFFERENCE
Definition blend.h:53
@ DEVELOP_BLEND_RGB_B
Definition blend.h:80
@ DEVELOP_BLEND_LIGHTNESS
Definition blend.h:61
@ DEVELOP_BLEND_BOUNDED
Definition blend.h:70
@ DEVELOP_BLEND_SUBTRACT
Definition blend.h:52
@ DEVELOP_BLEND_MODE_MASK
Definition blend.h:89
@ DEVELOP_BLEND_DIVIDE_INVERSE
Definition blend.h:84
@ DEVELOP_BLEND_MULTIPLY_REVERSE_OBSOLETE
Definition blend.h:81
@ DEVELOP_BLEND_NORMAL2
Definition blend.h:69
@ DEVELOP_BLEND_HARDLIGHT
Definition blend.h:57
@ DEVELOP_BLEND_HUE
Definition blend.h:63
@ DEVELOP_BLEND_OVERLAY
Definition blend.h:55
@ DEVELOP_BLEND_RGB_R
Definition blend.h:78
@ DEVELOP_BLEND_LAB_A
Definition blend.h:76
@ DEVELOP_BLEND_LAB_COLOR
Definition blend.h:72
@ DEVELOP_BLEND_REVERSE
Definition blend.h:88
@ DEVELOP_BLEND_DISABLED_OBSOLETE
Definition blend.h:45
@ DEVELOP_BLEND_AVERAGE
Definition blend.h:50
@ DEVELOP_BLEND_DIVIDE
Definition blend.h:83
@ DEVELOP_BLEND_HSV_COLOR
Definition blend.h:74
@ DEVELOP_BLEND_MULTIPLY
Definition blend.h:49
@ DEVELOP_BLEND_SCREEN
Definition blend.h:54
@ DEVELOP_BLEND_HARMONIC_MEAN
Definition blend.h:86
@ DEVELOP_BLEND_PINLIGHT
Definition blend.h:60
@ DEVELOP_BLEND_HSV_VALUE
Definition blend.h:73
@ DEVELOP_BLEND_LAB_L
Definition blend.h:75
@ DEVELOP_BLEND_LINEARLIGHT
Definition blend.h:59
@ DEVELOP_BLEND_ADD
Definition blend.h:51
@ DEVELOP_BLEND_VIVIDLIGHT
Definition blend.h:58
@ DEVELOP_BLEND_GEOMETRIC_MEAN
Definition blend.h:85
@ DEVELOP_BLEND_NORMAL_OBSOLETE
Definition blend.h:46
@ DEVELOP_BLEND_SOFTLIGHT
Definition blend.h:56
@ DEVELOP_BLEND_UNBOUNDED_OBSOLETE
Definition blend.h:66
@ DEVELOP_BLEND_COLORADJUST
Definition blend.h:67
@ DEVELOP_BLEND_DARKEN
Definition blend.h:48
@ DEVELOP_BLEND_INVERSE_OBSOLETE
Definition blend.h:65
@ DEVELOP_BLEND_LAB_B
Definition blend.h:77
@ DEVELOP_BLEND_LAB_LIGHTNESS
Definition blend.h:71
@ DEVELOP_BLEND_DIFFERENCE2
Definition blend.h:68
@ DEVELOP_BLEND_SUBTRACT_INVERSE
Definition blend.h:82
@ DEVELOP_BLEND_RGB_G
Definition blend.h:79
gboolean blend_color_picker_apply(dt_iop_module_t *module, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece)
Definition blend_gui.c:1436
const dt_develop_name_value_t dt_develop_combine_masks_names[]
Definition blend_gui.c:110
const dt_develop_name_value_t dt_develop_blend_mode_names[]
Definition blend_gui.c:46
void dt_develop_blend_init_blendif_parameters(dt_develop_blend_params_t *blend_params, dt_develop_blend_colorspace_t cst)
Definition blend.c:119
void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module)
Definition blend_gui.c:2200
void dt_iop_gui_cleanup_blending(dt_iop_module_t *module)
Definition blend_gui.c:2607
void dt_iop_gui_blending_reload_defaults(dt_iop_module_t *module)
Definition blend_gui.c:2999
void dt_develop_blendif_raw_blend(struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, const float *const mask, const dt_dev_pixelpipe_display_mask_t request_mask_display)
const dt_develop_name_value_t dt_develop_feathering_guide_names[]
Definition blend_gui.c:117
struct dt_iop_blend_name_value_t dt_develop_name_value_t
dt_develop_mask_mode_t
Definition blend.h:93
@ DEVELOP_MASK_RASTER
Definition blend.h:98
@ DEVELOP_MASK_MASK_CONDITIONAL
Definition blend.h:99
@ DEVELOP_MASK_DISABLED
Definition blend.h:94
@ DEVELOP_MASK_ENABLED
Definition blend.h:95
@ DEVELOP_MASK_CONDITIONAL
Definition blend.h:97
@ DEVELOP_MASK_MASK
Definition blend.h:96
void dt_iop_gui_update_blendif(dt_iop_module_t *module)
Definition blend_gui.c:2110
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
dt_iop_colorspace_type_t
Definition color_conversion.h:24
dt_dev_pixelpipe_display_mask_t
Definition develop.h:80
#define DEVELOP_BLENDIF_SIZE
Definition lightroom.c:215
char dt_dev_operation_t[20]
Definition settings.h:35
Definition gradientslider.h:96
int kernel_calc_blend
Definition blend.h:240
int kernel_blendop_mask_RAW
Definition blend.h:225
int kernel_read_mask
Definition blend.h:239
int kernel_blendop_mask_rgb_jzczhz
Definition blend.h:227
int kernel_blendop_RAW
Definition blend.h:229
int kernel_blendop_Lab
Definition blend.h:228
int kernel_calc_Y0_mask
Definition blend.h:235
int kernel_mask_blur
Definition blend.h:241
int kernel_calc_scharr_mask
Definition blend.h:236
int kernel_blendop_display_channel
Definition blend.h:234
int kernel_blendop_rgb_jzczhz
Definition blend.h:231
int kernel_blendop_mask_rgb_hsl
Definition blend.h:226
int kernel_blendop_rgb_hsl
Definition blend.h:230
int kernel_blendop_mask_tone_curve
Definition blend.h:232
int kernel_blendop_set_mask
Definition blend.h:233
int kernel_write_scharr_mask
Definition blend.h:237
int kernel_write_mask
Definition blend.h:238
int kernel_blendop_mask_Lab
Definition blend.h:224
Definition pixelpipe_hb.h:46
uint32_t blendif
Definition blend.h:197
float contrast
Definition blend.h:205
uint32_t feathering_guide
Definition blend.h:201
uint32_t mask_mode
Definition blend.h:183
float brightness
Definition blend.h:207
uint32_t mask_combine
Definition blend.h:193
float blend_parameter
Definition blend.h:189
int raster_mask_instance
Definition blend.h:216
uint32_t reserved[3]
Definition blend.h:211
dt_dev_operation_t raster_mask_source
Definition blend.h:215
float blur_radius
Definition blend.h:203
float blendif_parameters[4 *DEVELOP_BLENDIF_SIZE]
Definition blend.h:213
float blendif_boost_factors[DEVELOP_BLENDIF_SIZE]
Definition blend.h:214
uint32_t blend_mode
Definition blend.h:187
float feathering_radius
Definition blend.h:199
uint32_t mask_id
Definition blend.h:195
float details
Definition blend.h:209
gboolean raster_mask_invert
Definition blend.h:218
int raster_mask_id
Definition blend.h:217
float opacity
Definition blend.h:191
int32_t blend_cst
Definition blend.h:185
int value
Definition blend.h:280
char name[32]
Definition blend.h:279
GtkWidget * channel_boost_factor_slider
Definition blend.h:344
GtkWidget * opacity_slider
Definition blend.h:326
GtkWidget * raster_polarity
Definition blend.h:356
GtkWidget * showmask
Definition blend.h:319
int masks_inited
Definition blend.h:300
GtkBox * masks_box
Definition blend.h:313
GtkBox * masks_modes_box
Definition blend.h:311
GtkBox * blendif_box
Definition blend.h:312
GtkWidget * blur_radius_slider
Definition blend.h:329
GtkWidget * feathering_radius_slider
Definition blend.h:328
int masks_type[5]
Definition blend.h:349
GtkWidget * details_slider
Definition blend.h:345
int raster_inited
Definition blend.h:301
GtkWidget * iopw
Definition blend.h:308
dt_iop_gui_blendif_filter_t filter[2]
Definition blend.h:318
GtkWidget * colorpicker
Definition blend.h:316
GtkWidget * colorpicker_set_values
Definition blend.h:317
int blendif_inited
Definition blend.h:298
dt_iop_module_t *GtkWidget * mask_mode_combo
Definition blend.h:306
GtkWidget * masks_combo
Definition blend.h:347
int masks_shown
Definition blend.h:353
int tab
Definition blend.h:337
int masks_support
Definition blend.h:299
GtkWidget * contrast_slider
Definition blend.h:330
GtkWidget * blend_modes_blend_order
Definition blend.h:323
GtkWidget * masks_combine_combo
Definition blend.h:321
dt_develop_blend_colorspace_t channel_tabs_csp
Definition blend.h:334
GtkWidget * masks_edit
Definition blend.h:350
int timeout_handle
Definition blend.h:340
GtkWidget * masks_shapes[5]
Definition blend.h:348
GtkBox * raster_box
Definition blend.h:314
GtkWidget * blend_mode_parameter_slider
Definition blend.h:324
GtkWidget * masks_feathering_guide_combo
Definition blend.h:327
const dt_iop_gui_blendif_channel_t * channel
Definition blend.h:336
dt_pthread_mutex_t lock
Definition blend.h:359
GtkWidget * brightness_slider
Definition blend.h:331
GtkWidget * blend_modes_combo
Definition blend.h:322
dt_develop_blend_colorspace_t csp
Definition blend.h:303
int blendif_support
Definition blend.h:296
GtkBox * bottom_box
Definition blend.h:310
int * masks_combo_ids
Definition blend.h:352
GtkBox * top_box
Definition blend.h:309
GtkWidget * masks_invert_combo
Definition blend.h:325
gboolean output_channels_shown
Definition blend.h:342
GtkWidget * raster_combo
Definition blend.h:355
GtkWidget * masks_polarity
Definition blend.h:351
int altmode[8][2]
Definition blend.h:338
int blend_inited
Definition blend.h:297
dt_dev_pixelpipe_display_mask_t save_for_leave
Definition blend.h:339
GtkWidget * suppress
Definition blend.h:320
GtkNotebook * channel_tabs
Definition blend.h:341
dt_develop_blend_colorspace_t blend_modes_csp
Definition blend.h:333
int control_button_pressed
Definition blend.h:358
float increment
Definition blend.h:255
gboolean boost_factor_enabled
Definition blend.h:258
const dt_iop_gui_blendif_colorstop_t * colorstops
Definition blend.h:257
void(* scale_print)(float value, float boost_factor, char *string, int n)
Definition blend.h:262
int numberstops
Definition blend.h:256
int(* altdisplay)(GtkWidget *, dt_iop_module_t *, int)
Definition blend.h:263
char * name
Definition blend.h:264
float boost_factor_offset
Definition blend.h:259
dt_develop_blendif_channels_t param_channels[2]
Definition blend.h:260
char * tooltip
Definition blend.h:254
dt_dev_pixelpipe_display_mask_t display_channel
Definition blend.h:261
char * label
Definition blend.h:253
GdkRGBA color
Definition blend.h:248
float stoppoint
Definition blend.h:247
GtkLabel * head
Definition blend.h:270
GtkWidget * polarity
Definition blend.h:273
GtkLabel * label[4]
Definition blend.h:271
GtkDarktableGradientSlider * slider
Definition blend.h:269
GtkBox * box
Definition blend.h:274
GtkLabel * picker_label
Definition blend.h:272
Definition iop_profile.h:41