Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
blend.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2011 Henrik Andersson.
4 Copyright (C) 2011-2012 johannes hanika.
5 Copyright (C) 2011-2013, 2016-2017, 2019 Ulrich Pegelow.
6 Copyright (C) 2012 Richard Wonka.
7 Copyright (C) 2013 Aldric Renaudin.
8 Copyright (C) 2013-2014, 2016, 2018-2019 Tobias Ellinghaus.
9 Copyright (C) 2014, 2016 Roman Lebedev.
10 Copyright (C) 2017-2018, 2020 Heiko Bauke.
11 Copyright (C) 2017 luzpaz.
12 Copyright (C) 2019 Edgardo Hoszowski.
13 Copyright (C) 2019 Florian Wernert.
14 Copyright (C) 2020 Diederik Ter Rahe.
15 Copyright (C) 2020-2021 Harold le Clément de Saint-Marcq.
16 Copyright (C) 2020-2021 Pascal Obry.
17 Copyright (C) 2021 Chris Elston.
18 Copyright (C) 2021 Hanno Schwalm.
19 Copyright (C) 2022 Martin Bařinka.
20 Copyright (C) 2023, 2025 Aurélien PIERRE.
21 Copyright (C) 2025 Alynx Zhou.
22
23 darktable is free software: you can redistribute it and/or modify
24 it under the terms of the GNU General Public License as published by
25 the Free Software Foundation, either version 3 of the License, or
26 (at your option) any later version.
27
28 darktable is distributed in the hope that it will be useful,
29 but WITHOUT ANY WARRANTY; without even the implied warranty of
30 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 GNU General Public License for more details.
32
33 You should have received a copy of the GNU General Public License
34 along with darktable. If not, see <http://www.gnu.org/licenses/>.
35*/
36
37#pragma once
38
39#include "common/iop_profile.h"
40#include "common/opencl.h"
41#include "develop/pixelpipe.h"
42#include "dtgtk/button.h"
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
50#define DEVELOP_BLEND_VERSION (11)
51
60
62{
63 DEVELOP_BLEND_DISABLED_OBSOLETE = 0x00, /* same as the new normal */
64 DEVELOP_BLEND_NORMAL_OBSOLETE = 0x01, /* obsolete as it did clamping */
71 DEVELOP_BLEND_DIFFERENCE = 0x08, /* deprecated */
83 DEVELOP_BLEND_INVERSE_OBSOLETE = 0x14, /* obsolete */
84 DEVELOP_BLEND_UNBOUNDED_OBSOLETE = 0x15, /* obsolete as new normal takes over */
99 DEVELOP_BLEND_MULTIPLY_REVERSE_OBSOLETE = 0x24, /* obsoleted by MULTIPLY + REVERSE */
105
109
111{
113 DEVELOP_MASK_ENABLED = 1, // uniformly
114 DEVELOP_MASK_MASK = 1 << 1, // drawn mask
115 DEVELOP_MASK_CONDITIONAL = 1 << 2, // parametric mask
116 DEVELOP_MASK_RASTER = 1 << 3, // raster mask
119
132
140
194
195
238
239
261
262
268
284
294
300
308
309#define DEVELOP_MASKS_NB_SHAPES 5
310
313{
319
321 dt_iop_module_t *module;
322
334 GtkBox *blendif_box;
335 GtkBox *masks_box;
336 GtkBox *raster_box;
337
354
357
359 int tab;
360 int altmode[8][2];
363 GtkNotebook *channel_tabs;
365
368
380 GtkTreeStore *group_shapes_store;
381 GtkTreeViewColumn *group_shapes_col;
382 GtkListStore *all_shapes_store;
384 GtkTreeViewColumn *all_shapes_col;
388 GdkPixbuf *masks_ic_union;
394
395
398
400 dt_pthread_mutex_t lock;
402
403
408
410int dt_develop_blend_process(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe,
411 const struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o);
412
415
418
422
426
430
433gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length);
434
436int dt_develop_blend_legacy_params(dt_iop_module_t *module, const void *const old_params,
437 const int old_version, void *new_params, const int new_version,
438 const int length);
439int dt_develop_blend_legacy_params_from_so(dt_iop_module_so_t *module_so, const void *const old_params,
440 const int old_version, void *new_params, const int new_version,
441 const int length);
442
445#define DEVELOP_BLENDIF_PARAMETER_ITEMS 6
446
448void dt_develop_blendif_process_parameters(float *const parameters, const dt_develop_blend_params_t *const params);
449
462 const struct dt_dev_pixelpipe_iop_t *piece,
463 dt_iop_order_iccprofile_info_t *blending_profile,
465
468void dt_develop_blendif_raw_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
469 const float *const b, float *const mask);
470void dt_develop_blendif_lab_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
471 const float *const b, float *const mask);
473 const struct dt_dev_pixelpipe_iop_t *piece,
474 const float *const a, const float *const b, float *const mask);
476 const struct dt_dev_pixelpipe_iop_t *piece,
477 const float *const a, const float *const b, float *const mask);
478
482 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
483 float *const b, const float *const mask,
484 const dt_dev_pixelpipe_display_mask_t request_mask_display);
486 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
487 float *const b, const float *const mask,
488 const dt_dev_pixelpipe_display_mask_t request_mask_display);
490 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
491 float *const b, const float *const mask,
492 const dt_dev_pixelpipe_display_mask_t request_mask_display);
494 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
495 float *const b, const float *const mask,
496 const dt_dev_pixelpipe_display_mask_t request_mask_display);
497
498
500void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module);
502void dt_iop_gui_init_blending_body(GtkBox *blendw, dt_iop_module_t *module);
509
512
513
514#ifdef HAVE_OPENCL
516int dt_develop_blend_process_cl(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe,
517 const struct dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out);
518#endif
519
520#ifdef __cplusplus
521}
522#endif
523
524// clang-format off
525// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
526// vim: shiftwidth=2 expandtab tabstop=2 cindent
527// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
528// clang-format on
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
Definition blend.h:241
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
Definition blend.h:198
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
Definition blend.h:296
int value
Definition blend.h:298
char name[32]
Definition blend.h:297
Definition blend.h:313
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
Definition blend.h:270
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
Definition blend.h:264
GdkRGBA color
Definition blend.h:266
float stoppoint
Definition blend.h:265
Definition blend.h:286
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 imageop.h:190
Definition imageop.h:216
Definition iop_profile.h:52