52#define DEVELOP_BLEND_VERSION (11)
443 const int old_version,
void *new_params,
const int new_version,
446 const int old_version,
void *new_params,
const int new_version,
451#define DEVELOP_BLENDIF_PARAMETER_ITEMS 6
479 gboolean *top_enabled,
480 gboolean *raster_used,
481 gboolean *drawn_used,
482 gboolean *parametric_used);
503 const float *
const b,
float *
const mask);
505 const float *
const b,
float *
const mask);
508 const float *
const a,
const float *
const b,
float *
const mask);
511 const float *
const a,
const float *
const b,
float *
const mask);
517 float *
const b,
const float *
const mask,
521 float *
const b,
const float *
const mask,
525 float *
const b,
const float *
const mask,
529 float *
const b,
const float *
const mask,
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)
void dt_iop_gui_init_blending(dt_iop_module_t *module)
void dt_iop_gui_init_blendif(GtkBox *blendw, dt_iop_module_t *module, GtkWidget *header)
dt_develop_mask_feathering_guide_t
@ DEVELOP_MASK_GUIDE_OUT_BEFORE_BLUR
@ DEVELOP_MASK_GUIDE_IN_AFTER_BLUR
@ DEVELOP_MASK_GUIDE_OUT_AFTER_BLUR
@ DEVELOP_MASK_GUIDE_IN_BEFORE_BLUR
const dt_develop_name_value_t dt_develop_invert_mask_names[]
const dt_develop_name_value_t dt_develop_mask_mode_names[]
dt_develop_blend_colorspace_t
@ DEVELOP_BLEND_CS_RGB_SCENE
@ DEVELOP_BLEND_CS_RGB_DISPLAY
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)
void dt_iop_gui_init_blending_body(GtkWidget *container, dt_iop_module_t *module)
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)
dt_develop_mask_combine_mode_t
@ DEVELOP_COMBINE_MASKS_POS
@ DEVELOP_COMBINE_NORM_INCL
@ DEVELOP_COMBINE_INV_INCL
@ DEVELOP_COMBINE_INV_EXCL
@ DEVELOP_COMBINE_NORM_EXCL
dt_blendop_cl_global_t * dt_develop_blend_init_cl_global(void)
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)
dt_iop_colorspace_type_t dt_develop_blend_colorspace(const dt_dev_pixelpipe_iop_t *const piece, dt_iop_colorspace_type_t cst)
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)
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)
dt_develop_blend_colorspace_t dt_develop_blend_default_module_blend_colorspace(dt_iop_module_t *module)
int dt_develop_blend_version(void)
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)
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)
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)
const dt_develop_name_value_t dt_develop_blend_colorspace_names[]
dt_develop_blendif_channels_t
@ DEVELOP_BLENDIF_GRAY_out
@ DEVELOP_BLENDIF_GREEN_in
@ DEVELOP_BLENDIF_RED_out
@ DEVELOP_BLENDIF_Lab_MASK
@ DEVELOP_BLENDIF_OUTPUT_MASK
@ DEVELOP_BLENDIF_BLUE_in
@ DEVELOP_BLENDIF_BLUE_out
@ DEVELOP_BLENDIF_RGB_MASK
@ DEVELOP_BLENDIF_GRAY_in
@ DEVELOP_BLENDIF_GREEN_out
void dt_iop_gui_blending_lose_focus(dt_iop_module_t *module)
gboolean dt_develop_blend_params_is_all_zero(const void *params, size_t length)
const dt_develop_name_value_t dt_develop_blend_mode_flag_names[]
@ DEVELOP_BLEND_CHROMATICITY
@ DEVELOP_BLEND_DIFFERENCE
@ DEVELOP_BLEND_LIGHTNESS
@ DEVELOP_BLEND_MODE_MASK
@ DEVELOP_BLEND_DIVIDE_INVERSE
@ DEVELOP_BLEND_MULTIPLY_REVERSE_OBSOLETE
@ DEVELOP_BLEND_HARDLIGHT
@ DEVELOP_BLEND_LAB_COLOR
@ DEVELOP_BLEND_DISABLED_OBSOLETE
@ DEVELOP_BLEND_HSV_COLOR
@ DEVELOP_BLEND_HARMONIC_MEAN
@ DEVELOP_BLEND_HSV_VALUE
@ DEVELOP_BLEND_LINEARLIGHT
@ DEVELOP_BLEND_VIVIDLIGHT
@ DEVELOP_BLEND_GEOMETRIC_MEAN
@ DEVELOP_BLEND_NORMAL_OBSOLETE
@ DEVELOP_BLEND_SOFTLIGHT
@ DEVELOP_BLEND_UNBOUNDED_OBSOLETE
@ DEVELOP_BLEND_COLORADJUST
@ DEVELOP_BLEND_INVERSE_OBSOLETE
@ DEVELOP_BLEND_LAB_LIGHTNESS
@ DEVELOP_BLEND_DIFFERENCE2
@ DEVELOP_BLEND_SUBTRACT_INVERSE
void dt_iop_gui_cleanup_blending_body(dt_iop_module_t *module)
const dt_develop_name_value_t dt_develop_combine_masks_names[]
const dt_develop_name_value_t dt_develop_blend_mode_names[]
void dt_develop_blend_init_blendif_parameters(dt_develop_blend_params_t *blend_params, dt_develop_blend_colorspace_t cst)
void dt_iop_gui_cleanup_blending(dt_iop_module_t *module)
void dt_iop_gui_blending_reload_defaults(dt_iop_module_t *module)
const dt_develop_name_value_t dt_develop_feathering_guide_names[]
struct dt_iop_blend_name_value_t dt_develop_name_value_t
@ DEVELOP_MASK_PARAMETRIC
@ DEVELOP_MASK_SHAPE_PARAMETRIC
void dt_iop_gui_update_blendif(dt_iop_module_t *module)
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
float dt_boundingbox_t[4]
static const dt_aligned_pixel_simd_t value
dt_dev_pixelpipe_display_mask_t
#define DEVELOP_BLENDIF_SIZE
#define DEVELOP_MASKS_NB_SHAPES
char dt_dev_operation_t[20]
struct _GtkWidget GtkWidget
int kernel_blendop_mask_RAW
int kernel_blendop_mask_rgb_jzczhz
int kernel_calc_scharr_mask
int kernel_blendop_display_channel
int kernel_blendop_rgb_jzczhz
int kernel_blendop_mask_rgb_hsl
int kernel_blendop_rgb_hsl
int kernel_blendop_mask_tone_curve
int kernel_blendop_set_mask
int kernel_blendop_mask_Lab
uint32_t feathering_guide
dt_dev_operation_t raster_mask_source
float blendif_parameters[4 *DEVELOP_BLENDIF_SIZE]
float blendif_boost_factors[DEVELOP_BLENDIF_SIZE]
gboolean raster_mask_invert
GtkWidget * raster_enable
GtkWidget * blendif_enable
GtkWidget * masks_content
GtkWidget * masks_treeview
GtkWidget * channel_boost_factor_slider
GtkWidget * opacity_slider
GtkWidget * raster_polarity
GtkWidget * all_shapes_sw
GtkWidget * blur_radius_slider
GdkPixbuf * masks_ic_intersection
GtkWidget * feathering_radius_slider
GtkWidget * details_slider
dt_iop_gui_blendif_filter_t filter[2]
GtkWidget * all_shapes_buttons
GtkWidget * colorpicker_set_values
GdkPixbuf * masks_ic_union
GdkPixbuf * masks_ic_inverse
GtkWidget * masks_group_treeview
int masks_type[DEVELOP_MASKS_NB_SHAPES]
GdkPixbuf * masks_ic_difference
GtkTreeViewColumn * group_shapes_col
dt_boundingbox_t picker_set_values_box
GtkWidget * contrast_slider
GtkWidget * blend_modes_blend_order
GtkWidget * masks_combine_combo
dt_develop_blend_colorspace_t channel_tabs_csp
gboolean picker_set_values_manual_boost_lock
GtkWidget * blend_mode_parameter_slider
GtkWidget * group_shapes_label
GtkWidget * masks_feathering_guide_combo
const dt_iop_gui_blendif_channel_t * channel
GtkWidget * brightness_slider
GtkWidget * masks_shapes[DEVELOP_MASKS_NB_SHAPES]
GtkWidget * raster_content
GtkWidget * blend_modes_combo
GtkWidget * contours_content
dt_develop_blend_colorspace_t csp
dt_iop_module_t *GtkWidget * blending_box
GtkTreeViewColumn * group_delete_col
GtkWidget * group_shapes_sw
dt_gui_collapsible_section_t masks_cs
GtkWidget * blending_notebook
GtkWidget * blendif_content
GtkWidget * masks_invert_combo
gboolean output_channels_shown
GdkPixbuf * masks_ic_exclusion
GtkListStore * all_shapes_store
GtkWidget * masks_polarity
GtkTreeViewColumn * all_shapes_col
GtkTreeStore * group_shapes_store
dt_dev_pixelpipe_display_mask_t save_for_leave
GtkWidget * wire_shape_toggle
GtkNotebook * channel_tabs
gboolean picker_set_values_box_valid
dt_develop_blend_colorspace_t blend_modes_csp
GtkTreeViewColumn * group_unlink_col
int control_button_pressed
gboolean boost_factor_enabled
const dt_iop_gui_blendif_colorstop_t * colorstops
void(* scale_print)(float value, float boost_factor, char *string, int n)
int(* altdisplay)(GtkWidget *, dt_iop_module_t *, int)
float boost_factor_offset
dt_develop_blendif_channels_t param_channels[2]
dt_dev_pixelpipe_display_mask_t display_channel
GtkWidget * channel_display
GtkDarktableGradientSlider * slider