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;
386 GtkTreeViewColumn *all_shapes_delete_col;
390 GdkPixbuf *masks_ic_union;
397
398
401
405
407 dt_pthread_mutex_t lock;
409
410
415
417int dt_develop_blend_process(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe,
418 const struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o);
419
422
425
429
433
437
440gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length);
441
443int dt_develop_blend_legacy_params(dt_iop_module_t *module, const void *const old_params,
444 const int old_version, void *new_params, const int new_version,
445 const int length);
446int dt_develop_blend_legacy_params_from_so(dt_iop_module_so_t *module_so, const void *const old_params,
447 const int old_version, void *new_params, const int new_version,
448 const int length);
449
452#define DEVELOP_BLENDIF_PARAMETER_ITEMS 6
453
455void dt_develop_blendif_process_parameters(float *const parameters, const dt_develop_blend_params_t *const params);
456
479 const dt_develop_blend_params_t *params,
480 gboolean *top_enabled,
481 gboolean *raster_used,
482 gboolean *drawn_used,
483 gboolean *parametric_used);
484
497 const struct dt_dev_pixelpipe_iop_t *piece,
498 dt_iop_order_iccprofile_info_t *blending_profile,
500
503void dt_develop_blendif_raw_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
504 const float *const b, float *const mask);
505void dt_develop_blendif_lab_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
506 const float *const b, float *const mask);
508 const struct dt_dev_pixelpipe_iop_t *piece,
509 const float *const a, const float *const b, float *const mask);
511 const struct dt_dev_pixelpipe_iop_t *piece,
512 const float *const a, const float *const b, float *const mask);
513
517 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
518 float *const b, const float *const mask,
519 const dt_dev_pixelpipe_display_mask_t request_mask_display);
521 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
522 float *const b, const float *const mask,
523 const dt_dev_pixelpipe_display_mask_t request_mask_display);
525 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
526 float *const b, const float *const mask,
527 const dt_dev_pixelpipe_display_mask_t request_mask_display);
529 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
530 float *const b, const float *const mask,
531 const dt_dev_pixelpipe_display_mask_t request_mask_display);
532
533
535void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module, GtkWidget *header);
544
547
548
549#ifdef HAVE_OPENCL
552 const struct dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out);
553#endif
554
555#ifdef __cplusplus
556}
557#endif
558
559// clang-format off
560// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
561// vim: shiftwidth=2 expandtab tabstop=2 cindent
562// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
563// 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:158
void dt_iop_gui_init_blending(dt_iop_module_t *module)
Definition blend_gui.c:5070
void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module, GtkWidget *header)
Definition blend_gui.c:3602
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:642
void dt_iop_gui_init_blending_body(GtkWidget *container, dt_iop_module_t *module)
Definition blend_gui.c:4834
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:1098
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:1591
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:1624
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:180
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:307
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:2201
dt_develop_blend_colorspace_t dt_develop_blend_default_module_blend_colorspace(dt_iop_module_t *module)
Definition blend.c:136
int dt_develop_blend_version(void)
Definition blend.c:1651
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:1715
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:247
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:4382
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:4670
gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length)
Definition blend.c:1678
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:4739
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:166
void dt_iop_gui_cleanup_blending(dt_iop_module_t *module)
Definition blend_gui.c:4231
void dt_iop_gui_blending_reload_defaults(dt_iop_module_t *module)
Definition blend_gui.c:4731
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:3513
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:731
static const dt_aligned_pixel_simd_t value
Definition darktable.h:599
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:937
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:400
GtkWidget * lists_box
Definition blend.h:395
GtkWidget * showmask
Definition blend.h:341
GtkWidget * all_shapes_sw
Definition blend.h:387
GtkWidget * blur_radius_slider
Definition blend.h:350
GdkPixbuf * masks_ic_intersection
Definition blend.h:391
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:394
GtkWidget * colorpicker
Definition blend.h:338
GtkWidget * colorpicker_set_values
Definition blend.h:339
GdkPixbuf * masks_ic_union
Definition blend.h:390
GdkPixbuf * masks_ic_inverse
Definition blend.h:389
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:392
GtkTreeViewColumn * group_shapes_col
Definition blend.h:380
GtkWidget * lists_stack
Definition blend.h:388
dt_boundingbox_t picker_set_values_box
Definition blend.h:403
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:404
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:407
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:396
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:393
GtkWidget * raster_combo
Definition blend.h:399
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
GtkTreeViewColumn * all_shapes_delete_col
Definition blend.h:386
GtkNotebook * channel_tabs
Definition blend.h:362
gboolean picker_set_values_box_valid
Definition blend.h:402
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