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/masks.h"
42#include "develop/pixelpipe.h"
43#include "dtgtk/button.h"
46#include "gui/gtk.h"
47
48#ifdef __cplusplus
49extern "C" {
50#endif
51
52#define DEVELOP_BLEND_VERSION (11)
53
62
64{
65 DEVELOP_BLEND_DISABLED_OBSOLETE = 0x00, /* same as the new normal */
66 DEVELOP_BLEND_NORMAL_OBSOLETE = 0x01, /* obsolete as it did clamping */
73 DEVELOP_BLEND_DIFFERENCE = 0x08, /* deprecated */
85 DEVELOP_BLEND_INVERSE_OBSOLETE = 0x14, /* obsolete */
86 DEVELOP_BLEND_UNBOUNDED_OBSOLETE = 0x15, /* obsolete as new normal takes over */
101 DEVELOP_BLEND_MULTIPLY_REVERSE_OBSOLETE = 0x24, /* obsoleted by MULTIPLY + REVERSE */
107
111
113{
115 DEVELOP_MASK_ENABLED = 1, // uniformly
116 DEVELOP_MASK_SHAPE = 1 << 1, // drawn mask
117 DEVELOP_MASK_PARAMETRIC = 1 << 2, // parametric mask
118 DEVELOP_MASK_RASTER = 1 << 3, // raster mask
121
134
142
196
197
240
241
262
263
269
285
297
303
311
314{
320
322 dt_iop_module_t *module;
323
334 GtkBox *blendif_box;
335 GtkBox *masks_box;
336 GtkBox *raster_box;
337
353
356
358 int tab;
359 int altmode[8][2];
362 GtkNotebook *channel_tabs;
364
367
379 GtkTreeStore *group_shapes_store;
380 GtkTreeViewColumn *group_shapes_col;
381 GtkTreeViewColumn *group_unlink_col;
382 GtkTreeViewColumn *group_delete_col;
383 GtkListStore *all_shapes_store;
385 GtkTreeViewColumn *all_shapes_col;
389 GdkPixbuf *masks_ic_union;
396
397
400
404
406 dt_pthread_mutex_t lock;
408
409
414
416int dt_develop_blend_process(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe,
417 const struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o);
418
421
424
428
432
436
439gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length);
440
442int dt_develop_blend_legacy_params(dt_iop_module_t *module, const void *const old_params,
443 const int old_version, void *new_params, const int new_version,
444 const int length);
445int dt_develop_blend_legacy_params_from_so(dt_iop_module_so_t *module_so, const void *const old_params,
446 const int old_version, void *new_params, const int new_version,
447 const int length);
448
451#define DEVELOP_BLENDIF_PARAMETER_ITEMS 6
452
454void dt_develop_blendif_process_parameters(float *const parameters, const dt_develop_blend_params_t *const params);
455
478 const dt_develop_blend_params_t *params,
479 gboolean *top_enabled,
480 gboolean *raster_used,
481 gboolean *drawn_used,
482 gboolean *parametric_used);
483
496 const struct dt_dev_pixelpipe_iop_t *piece,
497 dt_iop_order_iccprofile_info_t *blending_profile,
499
502void dt_develop_blendif_raw_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
503 const float *const b, float *const mask);
504void dt_develop_blendif_lab_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
505 const float *const b, float *const mask);
507 const struct dt_dev_pixelpipe_iop_t *piece,
508 const float *const a, const float *const b, float *const mask);
510 const struct dt_dev_pixelpipe_iop_t *piece,
511 const float *const a, const float *const b, float *const mask);
512
516 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
517 float *const b, const float *const mask,
518 const dt_dev_pixelpipe_display_mask_t request_mask_display);
520 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
521 float *const b, const float *const mask,
522 const dt_dev_pixelpipe_display_mask_t request_mask_display);
524 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
525 float *const b, const float *const mask,
526 const dt_dev_pixelpipe_display_mask_t request_mask_display);
528 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
529 float *const b, const float *const mask,
530 const dt_dev_pixelpipe_display_mask_t request_mask_display);
531
532
534void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module, GtkWidget *header);
543
546
547
548#ifdef HAVE_OPENCL
551 const struct dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out);
552#endif
553
554#ifdef __cplusplus
555}
556#endif
557
558// clang-format off
559// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
560// vim: shiftwidth=2 expandtab tabstop=2 cindent
561// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
562// clang-format on
uint32_t container(dt_lib_module_t *self)
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)
void dt_develop_blend_init_blend_parameters(dt_develop_blend_params_t *blend_params, dt_develop_blend_colorspace_t cst)
Definition blend.c:157
void dt_iop_gui_init_blending(dt_iop_module_t *module)
Definition blend_gui.c:5023
void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module, GtkWidget *header)
Definition blend_gui.c:3573
dt_develop_mask_feathering_guide_t
Definition blend.h:136
@ DEVELOP_MASK_GUIDE_OUT_BEFORE_BLUR
Definition blend.h:138
@ DEVELOP_MASK_GUIDE_IN_AFTER_BLUR
Definition blend.h:139
@ DEVELOP_MASK_GUIDE_OUT_AFTER_BLUR
Definition blend.h:140
@ DEVELOP_MASK_GUIDE_IN_BEFORE_BLUR
Definition blend.h:137
const dt_develop_name_value_t dt_develop_invert_mask_names[]
Definition blend_gui.c:160
const dt_develop_name_value_t dt_develop_mask_mode_names[]
Definition blend_gui.c:137
dt_develop_blend_colorspace_t
Definition blend.h:55
@ DEVELOP_BLEND_CS_NONE
Definition blend.h:56
@ DEVELOP_BLEND_CS_LAB
Definition blend.h:58
@ DEVELOP_BLEND_CS_RGB_SCENE
Definition blend.h:60
@ DEVELOP_BLEND_CS_RGB_DISPLAY
Definition blend.h:59
@ DEVELOP_BLEND_CS_RAW
Definition blend.h:57
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:641
void dt_iop_gui_init_blending_body(GtkWidget *container, dt_iop_module_t *module)
Definition blend_gui.c:4787
int dt_develop_blend_process_cl(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out)
Definition blend.c:1087
dt_develop_mask_combine_mode_t
Definition blend.h:123
@ DEVELOP_COMBINE_INV
Definition blend.h:125
@ DEVELOP_COMBINE_NORM
Definition blend.h:124
@ DEVELOP_COMBINE_INCL
Definition blend.h:127
@ DEVELOP_COMBINE_EXCL
Definition blend.h:126
@ DEVELOP_COMBINE_MASKS_POS
Definition blend.h:128
@ DEVELOP_COMBINE_NORM_INCL
Definition blend.h:130
@ DEVELOP_COMBINE_INV_INCL
Definition blend.h:132
@ DEVELOP_COMBINE_INV_EXCL
Definition blend.h:131
@ DEVELOP_COMBINE_NORM_EXCL
Definition blend.h:129
dt_blendop_cl_global_t * dt_develop_blend_init_cl_global(void)
Definition blend.c:1570
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:1603
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:179
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:306
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:2180
dt_develop_blend_colorspace_t dt_develop_blend_default_module_blend_colorspace(dt_iop_module_t *module)
Definition blend.c:135
int dt_develop_blend_version(void)
Definition blend.c:1630
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:1694
void dt_develop_blend_get_mask_usage(const dt_iop_module_t *module, const dt_develop_blend_params_t *params, gboolean *top_enabled, gboolean *raster_used, gboolean *drawn_used, gboolean *parametric_used)
Definition blend.c:246
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:4336
const dt_develop_name_value_t dt_develop_blend_colorspace_names[]
Definition blend_gui.c:129
dt_develop_blendif_channels_t
Definition blend.h:144
@ DEVELOP_BLENDIF_GRAY_out
Definition blend.h:158
@ DEVELOP_BLENDIF_hz_in
Definition blend.h:179
@ DEVELOP_BLENDIF_Cz_in
Definition blend.h:178
@ DEVELOP_BLENDIF_MAX
Definition blend.h:185
@ DEVELOP_BLENDIF_S_out
Definition blend.h:174
@ DEVELOP_BLENDIF_RED_in
Definition blend.h:154
@ DEVELOP_BLENDIF_C_out
Definition blend.h:166
@ DEVELOP_BLENDIF_A_in
Definition blend.h:146
@ DEVELOP_BLENDIF_C_in
Definition blend.h:163
@ DEVELOP_BLENDIF_l_in
Definition blend.h:171
@ DEVELOP_BLENDIF_L_out
Definition blend.h:149
@ DEVELOP_BLENDIF_GREEN_in
Definition blend.h:155
@ DEVELOP_BLENDIF_h_in
Definition blend.h:164
@ DEVELOP_BLENDIF_H_in
Definition blend.h:169
@ DEVELOP_BLENDIF_RED_out
Definition blend.h:159
@ DEVELOP_BLENDIF_Lab_MASK
Definition blend.h:192
@ DEVELOP_BLENDIF_Jz_out
Definition blend.h:181
@ DEVELOP_BLENDIF_SIZE
Definition blend.h:190
@ DEVELOP_BLENDIF_B_in
Definition blend.h:147
@ DEVELOP_BLENDIF_Cz_out
Definition blend.h:182
@ DEVELOP_BLENDIF_Jz_in
Definition blend.h:177
@ DEVELOP_BLENDIF_H_out
Definition blend.h:173
@ DEVELOP_BLENDIF_A_out
Definition blend.h:150
@ DEVELOP_BLENDIF_unused
Definition blend.h:186
@ DEVELOP_BLENDIF_B_out
Definition blend.h:151
@ DEVELOP_BLENDIF_h_out
Definition blend.h:167
@ DEVELOP_BLENDIF_OUTPUT_MASK
Definition blend.h:194
@ DEVELOP_BLENDIF_BLUE_in
Definition blend.h:156
@ DEVELOP_BLENDIF_L_in
Definition blend.h:145
@ DEVELOP_BLENDIF_active
Definition blend.h:188
@ DEVELOP_BLENDIF_hz_out
Definition blend.h:183
@ DEVELOP_BLENDIF_BLUE_out
Definition blend.h:161
@ DEVELOP_BLENDIF_RGB_MASK
Definition blend.h:193
@ DEVELOP_BLENDIF_S_in
Definition blend.h:170
@ DEVELOP_BLENDIF_GRAY_in
Definition blend.h:153
@ DEVELOP_BLENDIF_GREEN_out
Definition blend.h:160
@ DEVELOP_BLENDIF_l_out
Definition blend.h:175
void dt_iop_gui_blending_lose_focus(dt_iop_module_t *module)
Definition blend_gui.c:4624
gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length)
Definition blend.c:1657
const dt_develop_name_value_t dt_develop_blend_mode_flag_names[]
Definition blend_gui.c:124
dt_develop_blend_mode_t
Definition blend.h:64
@ DEVELOP_BLEND_LIGHTEN
Definition blend.h:67
@ DEVELOP_BLEND_COLOR
Definition blend.h:84
@ DEVELOP_BLEND_CHROMATICITY
Definition blend.h:82
@ DEVELOP_BLEND_DIFFERENCE
Definition blend.h:73
@ DEVELOP_BLEND_RGB_B
Definition blend.h:100
@ DEVELOP_BLEND_LIGHTNESS
Definition blend.h:81
@ DEVELOP_BLEND_BOUNDED
Definition blend.h:90
@ DEVELOP_BLEND_SUBTRACT
Definition blend.h:72
@ DEVELOP_BLEND_MODE_MASK
Definition blend.h:109
@ DEVELOP_BLEND_DIVIDE_INVERSE
Definition blend.h:104
@ DEVELOP_BLEND_MULTIPLY_REVERSE_OBSOLETE
Definition blend.h:101
@ DEVELOP_BLEND_NORMAL2
Definition blend.h:89
@ DEVELOP_BLEND_HARDLIGHT
Definition blend.h:77
@ DEVELOP_BLEND_HUE
Definition blend.h:83
@ DEVELOP_BLEND_OVERLAY
Definition blend.h:75
@ DEVELOP_BLEND_RGB_R
Definition blend.h:98
@ DEVELOP_BLEND_LAB_A
Definition blend.h:96
@ DEVELOP_BLEND_LAB_COLOR
Definition blend.h:92
@ DEVELOP_BLEND_REVERSE
Definition blend.h:108
@ DEVELOP_BLEND_DISABLED_OBSOLETE
Definition blend.h:65
@ DEVELOP_BLEND_AVERAGE
Definition blend.h:70
@ DEVELOP_BLEND_DIVIDE
Definition blend.h:103
@ DEVELOP_BLEND_HSV_COLOR
Definition blend.h:94
@ DEVELOP_BLEND_MULTIPLY
Definition blend.h:69
@ DEVELOP_BLEND_SCREEN
Definition blend.h:74
@ DEVELOP_BLEND_HARMONIC_MEAN
Definition blend.h:106
@ DEVELOP_BLEND_PINLIGHT
Definition blend.h:80
@ DEVELOP_BLEND_HSV_VALUE
Definition blend.h:93
@ DEVELOP_BLEND_LAB_L
Definition blend.h:95
@ DEVELOP_BLEND_LINEARLIGHT
Definition blend.h:79
@ DEVELOP_BLEND_ADD
Definition blend.h:71
@ DEVELOP_BLEND_VIVIDLIGHT
Definition blend.h:78
@ DEVELOP_BLEND_GEOMETRIC_MEAN
Definition blend.h:105
@ DEVELOP_BLEND_NORMAL_OBSOLETE
Definition blend.h:66
@ DEVELOP_BLEND_SOFTLIGHT
Definition blend.h:76
@ DEVELOP_BLEND_UNBOUNDED_OBSOLETE
Definition blend.h:86
@ DEVELOP_BLEND_COLORADJUST
Definition blend.h:87
@ DEVELOP_BLEND_DARKEN
Definition blend.h:68
@ DEVELOP_BLEND_INVERSE_OBSOLETE
Definition blend.h:85
@ DEVELOP_BLEND_LAB_B
Definition blend.h:97
@ DEVELOP_BLEND_LAB_LIGHTNESS
Definition blend.h:91
@ DEVELOP_BLEND_DIFFERENCE2
Definition blend.h:88
@ DEVELOP_BLEND_SUBTRACT_INVERSE
Definition blend.h:102
@ DEVELOP_BLEND_RGB_G
Definition blend.h:99
void dt_iop_gui_cleanup_blending_body(dt_iop_module_t *module)
Definition blend_gui.c:4693
const dt_develop_name_value_t dt_develop_combine_masks_names[]
Definition blend_gui.c:146
const dt_develop_name_value_t dt_develop_blend_mode_names[]
Definition blend_gui.c:82
void dt_develop_blend_init_blendif_parameters(dt_develop_blend_params_t *blend_params, dt_develop_blend_colorspace_t cst)
Definition blend.c:165
void dt_iop_gui_cleanup_blending(dt_iop_module_t *module)
Definition blend_gui.c:4185
void dt_iop_gui_blending_reload_defaults(dt_iop_module_t *module)
Definition blend_gui.c:4685
const dt_develop_name_value_t dt_develop_feathering_guide_names[]
Definition blend_gui.c:153
struct dt_iop_blend_name_value_t dt_develop_name_value_t
dt_develop_mask_mode_t
Definition blend.h:113
@ DEVELOP_MASK_RASTER
Definition blend.h:118
@ DEVELOP_MASK_PARAMETRIC
Definition blend.h:117
@ DEVELOP_MASK_DISABLED
Definition blend.h:114
@ DEVELOP_MASK_ENABLED
Definition blend.h:115
@ DEVELOP_MASK_SHAPE_PARAMETRIC
Definition blend.h:119
@ DEVELOP_MASK_SHAPE
Definition blend.h:116
void dt_iop_gui_update_blendif(dt_iop_module_t *module)
Definition blend_gui.c:3484
dt_iop_colorspace_type_t
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
float dt_boundingbox_t[4]
Definition darktable.h:709
static const dt_aligned_pixel_simd_t value
Definition darktable.h:577
dt_dev_pixelpipe_display_mask_t
Definition develop.h:116
#define DEVELOP_BLENDIF_SIZE
Definition lightroom.c:235
#define DEVELOP_MASKS_NB_SHAPES
Definition masks.h:927
char dt_dev_operation_t[20]
Definition settings.h:38
struct _GtkWidget GtkWidget
Definition splash.h:29
int kernel_blendop_mask_rgb_jzczhz
Definition blend.h:247
int kernel_blendop_display_channel
Definition blend.h:254
int kernel_blendop_rgb_jzczhz
Definition blend.h:251
int kernel_blendop_mask_rgb_hsl
Definition blend.h:246
int kernel_blendop_mask_tone_curve
Definition blend.h:252
uint32_t feathering_guide
Definition blend.h:221
uint32_t reserved[3]
Definition blend.h:231
dt_dev_operation_t raster_mask_source
Definition blend.h:235
float blendif_parameters[4 *DEVELOP_BLENDIF_SIZE]
Definition blend.h:233
float blendif_boost_factors[DEVELOP_BLENDIF_SIZE]
Definition blend.h:234
gboolean raster_mask_invert
Definition blend.h:238
GtkWidget * raster_enable
Definition blend.h:328
GtkWidget * blendif_enable
Definition blend.h:329
GtkWidget * masks_content
Definition blend.h:330
GtkWidget * masks_treeview
Definition blend.h:377
GtkWidget * channel_boost_factor_slider
Definition blend.h:365
GtkWidget * opacity_slider
Definition blend.h:347
GtkWidget * raster_polarity
Definition blend.h:399
GtkWidget * lists_box
Definition blend.h:394
GtkWidget * showmask
Definition blend.h:341
GtkWidget * all_shapes_sw
Definition blend.h:386
GtkWidget * blur_radius_slider
Definition blend.h:350
GdkPixbuf * masks_ic_intersection
Definition blend.h:390
GtkWidget * feathering_radius_slider
Definition blend.h:349
GtkWidget * details_slider
Definition blend.h:366
dt_iop_gui_blendif_filter_t filter[2]
Definition blend.h:340
GtkWidget * all_shapes_buttons
Definition blend.h:393
GtkWidget * colorpicker
Definition blend.h:338
GtkWidget * colorpicker_set_values
Definition blend.h:339
GdkPixbuf * masks_ic_union
Definition blend.h:389
GdkPixbuf * masks_ic_inverse
Definition blend.h:388
GtkWidget * masks_group_treeview
Definition blend.h:378
GtkWidget * masks_combo
Definition blend.h:368
int masks_type[DEVELOP_MASKS_NB_SHAPES]
Definition blend.h:370
GdkPixbuf * masks_ic_difference
Definition blend.h:391
GtkTreeViewColumn * group_shapes_col
Definition blend.h:380
GtkWidget * lists_stack
Definition blend.h:387
dt_boundingbox_t picker_set_values_box
Definition blend.h:402
GtkWidget * contrast_slider
Definition blend.h:351
GtkWidget * blend_modes_blend_order
Definition blend.h:344
GtkWidget * masks_combine_combo
Definition blend.h:342
dt_develop_blend_colorspace_t channel_tabs_csp
Definition blend.h:355
GtkWidget * masks_edit
Definition blend.h:371
gboolean picker_set_values_manual_boost_lock
Definition blend.h:403
GtkWidget * blend_mode_parameter_slider
Definition blend.h:345
GtkWidget * group_shapes_label
Definition blend.h:372
GtkWidget * masks_feathering_guide_combo
Definition blend.h:348
const dt_iop_gui_blendif_channel_t * channel
Definition blend.h:357
dt_pthread_mutex_t lock
Definition blend.h:406
GtkWidget * brightness_slider
Definition blend.h:352
GtkWidget * masks_shapes[DEVELOP_MASKS_NB_SHAPES]
Definition blend.h:369
GtkWidget * raster_content
Definition blend.h:331
GtkWidget * blend_modes_combo
Definition blend.h:343
GtkWidget * contours_content
Definition blend.h:333
dt_develop_blend_colorspace_t csp
Definition blend.h:321
dt_iop_module_t *GtkWidget * blending_box
Definition blend.h:324
GtkTreeViewColumn * group_delete_col
Definition blend.h:382
GtkWidget * group_shapes_sw
Definition blend.h:384
dt_gui_collapsible_section_t masks_cs
Definition blend.h:395
GtkWidget * blending_notebook
Definition blend.h:325
GtkWidget * blendif_content
Definition blend.h:332
GtkWidget * masks_invert_combo
Definition blend.h:346
gboolean output_channels_shown
Definition blend.h:363
GdkPixbuf * masks_ic_exclusion
Definition blend.h:392
GtkWidget * raster_combo
Definition blend.h:398
GtkListStore * all_shapes_store
Definition blend.h:383
GtkWidget * masks_polarity
Definition blend.h:373
GtkTreeViewColumn * all_shapes_col
Definition blend.h:385
GtkWidget * top_enable
Definition blend.h:326
GtkWidget * masks_enable
Definition blend.h:327
GtkTreeStore * group_shapes_store
Definition blend.h:379
dt_dev_pixelpipe_display_mask_t save_for_leave
Definition blend.h:360
GtkWidget * wire_shape_toggle
Definition blend.h:374
GtkNotebook * channel_tabs
Definition blend.h:362
gboolean picker_set_values_box_valid
Definition blend.h:401
dt_develop_blend_colorspace_t blend_modes_csp
Definition blend.h:354
GtkTreeViewColumn * group_unlink_col
Definition blend.h:381
const dt_iop_gui_blendif_colorstop_t * colorstops
Definition blend.h:276
void(* scale_print)(float value, float boost_factor, char *string, int n)
Definition blend.h:281
int(* altdisplay)(GtkWidget *, dt_iop_module_t *, int)
Definition blend.h:282
dt_develop_blendif_channels_t param_channels[2]
Definition blend.h:279
dt_dev_pixelpipe_display_mask_t display_channel
Definition blend.h:280
GtkWidget * channel_display
Definition blend.h:293
GtkLabel * label[4]
Definition blend.h:290
GtkDarktableGradientSlider * slider
Definition blend.h:288