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
260
261
267
283
293
299
307
308#define DEVELOP_MASKS_NB_SHAPES 5
309
312{
318
320 dt_iop_module_t *module;
321
333 GtkBox *blendif_box;
334 GtkBox *masks_box;
335 GtkBox *raster_box;
336
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 GtkListStore *all_shapes_store;
383 GtkTreeViewColumn *all_shapes_col;
387 GdkPixbuf *masks_ic_union;
393
394
397
399 dt_pthread_mutex_t lock;
401
402
407
409int dt_develop_blend_process(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe,
410 const struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o);
411
414
417
421
425
429
432gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length);
433
435int dt_develop_blend_legacy_params(dt_iop_module_t *module, const void *const old_params,
436 const int old_version, void *new_params, const int new_version,
437 const int length);
438int dt_develop_blend_legacy_params_from_so(dt_iop_module_so_t *module_so, const void *const old_params,
439 const int old_version, void *new_params, const int new_version,
440 const int length);
441
444#define DEVELOP_BLENDIF_PARAMETER_ITEMS 6
445
447void dt_develop_blendif_process_parameters(float *const parameters, const dt_develop_blend_params_t *const params);
448
461 const struct dt_dev_pixelpipe_iop_t *piece,
462 dt_iop_order_iccprofile_info_t *blending_profile,
464
467void dt_develop_blendif_raw_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
468 const float *const b, float *const mask);
469void dt_develop_blendif_lab_make_mask(const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
470 const float *const b, float *const mask);
472 const struct dt_dev_pixelpipe_iop_t *piece,
473 const float *const a, const float *const b, float *const mask);
475 const struct dt_dev_pixelpipe_iop_t *piece,
476 const float *const a, const float *const b, float *const mask);
477
481 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
482 float *const b, const float *const mask,
483 const dt_dev_pixelpipe_display_mask_t request_mask_display);
485 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
486 float *const b, const float *const mask,
487 const dt_dev_pixelpipe_display_mask_t request_mask_display);
489 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
490 float *const b, const float *const mask,
491 const dt_dev_pixelpipe_display_mask_t request_mask_display);
493 const struct dt_dev_pixelpipe_iop_t *piece, const float *const a,
494 float *const b, const float *const mask,
495 const dt_dev_pixelpipe_display_mask_t request_mask_display);
496
497
499void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module);
501void dt_iop_gui_init_blending_body(GtkBox *blendw, dt_iop_module_t *module);
508
511
512
513#ifdef HAVE_OPENCL
516 const struct dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out);
517#endif
518
519#ifdef __cplusplus
520}
521#endif
522
523// clang-format off
524// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
525// vim: shiftwidth=2 expandtab tabstop=2 cindent
526// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
527// 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:2370
void dt_develop_blend_init_blend_parameters(dt_develop_blend_params_t *blend_params, dt_develop_blend_colorspace_t cst)
Definition blend.c:164
void dt_iop_gui_init_blending(dt_iop_module_t *module)
Definition blend_gui.c:4457
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:584
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:980
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:1421
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:1454
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:186
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:254
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:2031
dt_develop_blend_colorspace_t dt_develop_blend_default_module_blend_colorspace(dt_iop_module_t *module)
Definition blend.c:142
int dt_develop_blend_version(void)
Definition blend.c:1481
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:1545
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:3785
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:4055
void dt_iop_gui_init_blending_body(GtkBox *blendw, dt_iop_module_t *module)
Definition blend_gui.c:4219
gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length)
Definition blend.c:1508
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:308
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:4129
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:172
void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module)
Definition blend_gui.c:3133
void dt_iop_gui_cleanup_blending(dt_iop_module_t *module)
Definition blend_gui.c:3655
void dt_iop_gui_blending_reload_defaults(dt_iop_module_t *module)
Definition blend_gui.c:4121
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:3044
dt_iop_colorspace_type_t
Definition color_conversion.h:30
const float i
Definition colorspaces_inline_conversions.h:440
const float n
Definition colorspaces_inline_conversions.h:678
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
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
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:257
int kernel_blendop_mask_RAW
Definition blend.h:243
int kernel_read_mask
Definition blend.h:256
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:258
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_mask
Definition blend.h:255
int kernel_blendop_mask_Lab
Definition blend.h:242
Definition pixelpipe_hb.h:96
Definition pixelpipe_hb.h:218
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:295
int value
Definition blend.h:297
char name[32]
Definition blend.h:296
Definition blend.h:312
GtkWidget * raster_enable
Definition blend.h:326
GtkWidget * blendif_enable
Definition blend.h:327
GtkWidget * masks_content
Definition blend.h:329
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:396
GtkWidget * lists_box
Definition blend.h:392
GtkWidget * showmask
Definition blend.h:340
int masks_inited
Definition blend.h:316
GtkBox * masks_box
Definition blend.h:334
GtkWidget * all_shapes_sw
Definition blend.h:384
GtkBox * blendif_box
Definition blend.h:333
GtkWidget * blur_radius_slider
Definition blend.h:350
GdkPixbuf * masks_ic_intersection
Definition blend.h:388
GtkWidget * feathering_radius_slider
Definition blend.h:349
int masks_type[5]
Definition blend.h:370
GtkWidget * details_slider
Definition blend.h:366
int raster_inited
Definition blend.h:317
dt_iop_gui_blendif_filter_t filter[2]
Definition blend.h:339
GtkWidget * all_shapes_buttons
Definition blend.h:391
GtkWidget * colorpicker
Definition blend.h:337
GtkWidget * colorpicker_set_values
Definition blend.h:338
GtkWidget * top_content
Definition blend.h:328
GdkPixbuf * masks_ic_union
Definition blend.h:387
GdkPixbuf * masks_ic_inverse
Definition blend.h:386
int blendif_inited
Definition blend.h:314
GtkWidget * masks_group_treeview
Definition blend.h:378
GtkWidget * masks_combo
Definition blend.h:368
int masks_shown
Definition blend.h:376
GdkPixbuf * masks_ic_difference
Definition blend.h:389
GtkTreeViewColumn * group_shapes_col
Definition blend.h:380
GtkWidget * lists_stack
Definition blend.h:385
int tab
Definition blend.h:358
int masks_support
Definition blend.h:315
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
GtkWidget * bottom_content
Definition blend.h:332
int timeout_handle
Definition blend.h:361
GtkWidget * masks_shapes[5]
Definition blend.h:369
GtkBox * raster_box
Definition blend.h:335
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
dt_iop_module_t *GtkWidget * blending_body_box
Definition blend.h:322
const dt_iop_gui_blendif_channel_t * channel
Definition blend.h:357
dt_pthread_mutex_t lock
Definition blend.h:399
GtkWidget * brightness_slider
Definition blend.h:352
GtkWidget * raster_content
Definition blend.h:330
GtkWidget * blend_modes_combo
Definition blend.h:343
dt_develop_blend_colorspace_t csp
Definition blend.h:319
int blendif_support
Definition blend.h:313
GtkWidget * group_shapes_sw
Definition blend.h:382
int * masks_combo_ids
Definition blend.h:375
GtkWidget * blending_notebook
Definition blend.h:323
GtkWidget * blendif_content
Definition blend.h:331
GtkWidget * masks_invert_combo
Definition blend.h:346
gboolean output_channels_shown
Definition blend.h:363
GdkPixbuf * masks_ic_exclusion
Definition blend.h:390
GtkWidget * raster_combo
Definition blend.h:395
GtkListStore * all_shapes_store
Definition blend.h:381
GtkWidget * masks_polarity
Definition blend.h:373
int altmode[8][2]
Definition blend.h:359
GtkTreeViewColumn * all_shapes_col
Definition blend.h:383
GtkWidget * top_enable
Definition blend.h:324
GtkWidget * masks_enable
Definition blend.h:325
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
GtkWidget * suppress
Definition blend.h:341
GtkNotebook * channel_tabs
Definition blend.h:362
dt_develop_blend_colorspace_t blend_modes_csp
Definition blend.h:354
int control_button_pressed
Definition blend.h:398
Definition blend.h:269
float increment
Definition blend.h:272
gboolean boost_factor_enabled
Definition blend.h:275
const dt_iop_gui_blendif_colorstop_t * colorstops
Definition blend.h:274
void(* scale_print)(float value, float boost_factor, char *string, int n)
Definition blend.h:279
int numberstops
Definition blend.h:273
int(* altdisplay)(GtkWidget *, dt_iop_module_t *, int)
Definition blend.h:280
char * name
Definition blend.h:281
float boost_factor_offset
Definition blend.h:276
dt_develop_blendif_channels_t param_channels[2]
Definition blend.h:277
char * tooltip
Definition blend.h:271
dt_dev_pixelpipe_display_mask_t display_channel
Definition blend.h:278
char * label
Definition blend.h:270
Definition blend.h:263
GdkRGBA color
Definition blend.h:265
float stoppoint
Definition blend.h:264
Definition blend.h:285
GtkLabel * head
Definition blend.h:287
GtkWidget * polarity
Definition blend.h:290
GtkLabel * label[4]
Definition blend.h:288
GtkDarktableGradientSlider * slider
Definition blend.h:286
GtkBox * box
Definition blend.h:291
GtkLabel * picker_label
Definition blend.h:289
Definition imageop.h:220
Definition imageop.h:246
Definition iop_profile.h:52