![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "develop/pipeline_notify.h"#include "system/macros.h"#include "develop/iop_profile.h"#include "system/openmp.h"#include "system/mem_alloc.h"#include "common/logging.h"#include "caches/pixelpipe_cache_alloc.h"#include "blend.h"#include "pixel/gaussian.h"#include "pixel/guided_filter.h"#include "common/imagebuf.h"#include "common/opencl.h"#include "develop/imageop.h"#include "develop/masks.h"#include "develop/masks_detail.h"#include "develop/pixelpipe_hb.h"#include "develop/supervisor.h"#include "develop/tiling.h"#include <inttypes.h>#include <limits.h>#include <math.h>#include <string.h>
Include dependency graph for blend.c:Go to the source code of this file.
Typedefs | |
| typedef enum _develop_mask_post_processing | _develop_mask_post_processing |
Enumerations | |
| enum | _develop_mask_post_processing { DEVELOP_MASK_POST_NONE = 0 , DEVELOP_MASK_POST_BLUR = 1 , DEVELOP_MASK_POST_FEATHER_IN = 2 , DEVELOP_MASK_POST_FEATHER_OUT = 3 , DEVELOP_MASK_POST_TONE_CURVE = 4 } |
|
inlinestatic |
Definition at line 126 of file blend.c.
References DEVELOP_BLEND_CS_LAB, DEVELOP_BLEND_CS_NONE, DEVELOP_BLEND_CS_RAW, DEVELOP_BLEND_CS_RGB_DISPLAY, DEVELOP_BLEND_CS_RGB_SCENE, IOP_CS_HSL, IOP_CS_JZCZHZ, IOP_CS_LAB, IOP_CS_LCH, IOP_CS_RAW, IOP_CS_RGB, IOP_CS_RGB_DISPLAY, IOP_FLAGS_SUPPORTS_BLENDING, and L.
Referenced by dt_develop_blend_default_module_blend_colorspace(), and dt_develop_blend_legacy_params().
|
static |
Definition at line 188 of file blend.c.
References dt_develop_blend_params_t::blendif_boost_factors, DEVELOP_BLEND_CS_RGB_SCENE, DEVELOP_BLENDIF_Cz_in, DEVELOP_BLENDIF_Cz_out, DEVELOP_BLENDIF_Jz_in, and DEVELOP_BLENDIF_Jz_out.
Referenced by dt_develop_blend_init_blend_parameters(), dt_develop_blend_init_blendif_parameters(), and dt_develop_blend_resolve_default_colorspace().
|
static |
Definition at line 1750 of file blend.c.
References DEVELOP_BLEND_BOUNDED, DEVELOP_BLEND_DISABLED_OBSOLETE, DEVELOP_BLEND_INVERSE_OBSOLETE, DEVELOP_BLEND_MODE_MASK, DEVELOP_BLEND_MULTIPLY, DEVELOP_BLEND_MULTIPLY_REVERSE_OBSOLETE, DEVELOP_BLEND_NORMAL2, DEVELOP_BLEND_NORMAL_OBSOLETE, DEVELOP_BLEND_REVERSE, DEVELOP_BLEND_UNBOUNDED_OBSOLETE, FALSE, L, and TRUE.
Referenced by dt_develop_blend_legacy_params().
Definition at line 394 of file blend.c.
References L.
Referenced by _refine_with_detail_mask(), and _refine_with_detail_mask_cl().
|
static |
Definition at line 640 of file blend.c.
References __OMP_FOR_SIMD__, i, and L.
Referenced by dt_develop_blend_process(), and dt_develop_blend_process_cl().
|
static |
Definition at line 537 of file blend.c.
References dt_iop_module_t::dev, dt_develop_t::iop, IS_NULL_PTR, L, dt_iop_module_t::multi_priority, dt_iop_module_t::op, params, dt_iop_module_t::raster_mask, dt_iop_module_t::sink, and dt_iop_module_t::source.
Referenced by _develop_blend_init_raster_mask().
|
static |
Definition at line 600 of file blend.c.
References dt_iop_module_t::dev, DEVELOP_COMBINE_INCL, DEVELOP_COMBINE_MASKS_POS, DEVELOP_MASK_SHAPE, dt_iop_image_fill(), dt_iop_image_invert(), dt_masks_get_from_id(), dt_masks_get_from_id_ext(), dt_masks_group_render_roi(), DT_MASKS_RASTER_ERROR, dt_dev_pixelpipe_t::forms, IOP_FLAGS_NO_MASKS, IS_NULL_PTR, L, params, piece, and pipe.
Referenced by dt_develop_blend_process(), and dt_develop_blend_process_cl().
|
static |
Definition at line 560 of file blend.c.
References __OMP_FOR_SIMD__, _develop_blend_get_raster_source_module(), dt_dev_get_raster_mask(), dt_iop_image_fill(), dt_iop_image_scaled_copy(), dt_pixelpipe_cache_free_align, i, IS_NULL_PTR, L, params, pipe, and value.
Referenced by dt_develop_blend_process(), and dt_develop_blend_process_cl().
|
inlinestatic |
Definition at line 510 of file blend.c.
References __OMP_PARALLEL_FOR__, dt_pixelpipe_cache_alloc_align_float_cache, IS_NULL_PTR, and L.
Referenced by dt_develop_blend_process().
|
static |
Definition at line 650 of file blend.c.
References ch, dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_free_align, guided_filter(), height, IS_NULL_PTR, L, and width.
Referenced by dt_develop_blend_process().
Definition at line 532 of file blend.c.
References dt_pixelpipe_cache_free_align.
Referenced by dt_develop_blend_process().
|
static |
Definition at line 673 of file blend.c.
References __OMP_PARALLEL_FOR_SIMD__, clamp_range_f(), k, L, and x.
Referenced by dt_develop_blend_process().
|
static |
Definition at line 705 of file blend.c.
References dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_wrlock_entry(), FALSE, IS_NULL_PTR, and L.
Referenced by dt_develop_blend_process(), and dt_develop_blend_process_cl().
|
static |
Definition at line 466 of file blend.c.
References DEVELOP_MASK_GUIDE_IN_BEFORE_BLUR, DEVELOP_MASK_GUIDE_OUT_AFTER_BLUR, DEVELOP_MASK_GUIDE_OUT_BEFORE_BLUR, DEVELOP_MASK_POST_BLUR, DEVELOP_MASK_POST_FEATHER_IN, DEVELOP_MASK_POST_FEATHER_OUT, DEVELOP_MASK_POST_TONE_CURVE, L, params, and piece.
Referenced by dt_develop_blend_process(), and dt_develop_blend_process_cl().
|
static |
Definition at line 400 of file blend.c.
References __OMP_PARALLEL_FOR_SIMD__, _detail_mask_threshold(), DT_DEBUG_MASKS, dt_dev_distort_detail_mask(), DT_DEV_PIXELPIPE_FULL, dt_dev_retrieve_rawdetail_mask(), dt_get_debug_flags(), dt_masks_calc_detail_mask(), dt_pipeline_message(), dt_pixelpipe_cache_alloc_align_float, dt_pixelpipe_cache_free_align, error(), dt_iop_roi_t::height, IS_NULL_PTR, L, MAX, dt_iop_module_t::op, p, piece, pipe, threshold, dt_dev_pixelpipe_t::type, and dt_iop_roi_t::width.
Referenced by dt_develop_blend_process().
|
static |
Definition at line 1020 of file blend.c.
References __OMP_PARALLEL_FOR_SIMD__, _blendop_cl_global, _detail_mask_threshold(), DT_DEBUG_MASKS, dt_dev_distort_detail_mask(), dt_dev_retrieve_rawdetail_mask(), dt_get_debug_flags(), dt_masks_blur_9x9_coeff(), dt_opencl_alloc_device(), dt_opencl_alloc_device_buffer(), dt_opencl_copy_host_to_device_constant(), dt_opencl_enqueue_kernel_2d(), dt_opencl_read_host_from_device(), dt_opencl_release_mem_object(), dt_opencl_set_kernel_arg(), dt_opencl_write_host_to_device(), dt_pipeline_message(), dt_pixelpipe_cache_alloc_align_float, dt_pixelpipe_cache_free_align, error(), dt_iop_roi_t::height, IS_NULL_PTR, kernel(), dt_blendop_cl_global_t::kernel_calc_blend, dt_blendop_cl_global_t::kernel_mask_blur, dt_blendop_cl_global_t::kernel_read_mask, dt_blendop_cl_global_t::kernel_write_mask, L, dt_iop_module_t::op, out, p, piece, pipe, ROUNDUPDHT, ROUNDUPDWD, threshold, and dt_iop_roi_t::width.
Referenced by dt_develop_blend_process_cl().
| dt_iop_colorspace_type_t dt_develop_blend_colorspace | ( | const dt_dev_pixelpipe_iop_t *const | piece, |
| dt_iop_colorspace_type_t | cst | ||
| ) |
returns the color space for the given module
Definition at line 234 of file blend.c.
References DEVELOP_BLEND_CS_LAB, DEVELOP_BLEND_CS_RAW, DEVELOP_BLEND_CS_RGB_DISPLAY, DEVELOP_BLEND_CS_RGB_SCENE, IOP_CS_LAB, IOP_CS_RAW, IOP_CS_RGB, IS_NULL_PTR, L, and piece.
Referenced by dt_dev_pixelpipe_transform_for_blend(), dt_develop_blend_process(), dt_develop_blend_process_cl(), pixelpipe_process_on_CPU(), and pixelpipe_process_on_GPU().
| gboolean dt_develop_blend_colorspace_is_compatible | ( | dt_iop_module_t * | module, |
| dt_develop_blend_colorspace_t | cst | ||
| ) |
Whether the given module may blend in the given color space.
Answered from the module's own color space and, for Lab, from its position against colorin and colorout: the blend reaches Lab through the working profile, which describes neither camera RGB nor the display encoding. The module must belong to a develop with an iop order list.
| module | The module to blend. |
| cst | The candidate blending color space. |
Definition at line 158 of file blend.c.
References DEVELOP_BLEND_CS_LAB, DEVELOP_BLEND_CS_RAW, DEVELOP_BLEND_CS_RGB_DISPLAY, DEVELOP_BLEND_CS_RGB_SCENE, dt_develop_blend_default_module_blend_colorspace(), dt_ioppr_get_module_profile_stage(), DT_IOPPR_PROFILE_STAGE_WORK, FALSE, L, and TRUE.
Referenced by _blendif_append_colorspace_item(), and _blendif_change_blend_colorspace().
| dt_develop_blend_colorspace_t dt_develop_blend_default_module_blend_colorspace | ( | dt_iop_module_t * | module | ) |
returns the default blend color space for the given module
Definition at line 153 of file blend.c.
References _blend_default_module_blend_colorspace(), L, and TRUE.
Referenced by _blendif_change_blend_colorspace(), _blendif_options_callback(), dt_develop_blend_colorspace_is_compatible(), dt_develop_blend_resolve_default_colorspace(), dt_iop_gui_update_blending(), and dt_iop_load_default_params().
global cleanup of blendops
Definition at line 1684 of file blend.c.
References _blendop_cl_global, dt_free, dt_opencl_free_kernel(), IS_NULL_PTR, and L.
Referenced by dt_opencl_cleanup().
| dt_blendop_cl_global_t * dt_develop_blend_get_cl_global | ( | void | ) |
The blend OpenCL kernels, for the two IOPs that reuse them (iop/detailmask.c, iop/demosaic/dual.c). NULL when OpenCL is unavailable or not yet initialised.
Definition at line 72 of file blend.c.
References _blendop_cl_global.
Referenced by dual_demosaic_cl(), and process_cl().
| 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 | ||
| ) |
Return effective mask usage for current blending parameters.
This inspects mask mode bits and payload state to decide whether raster, drawn and/or parametric masks are actually contributing, so callers can skip mask computation branches when modes are enabled but still at default.
State rules:
Definition at line 301 of file blend.c.
References ch, DEVELOP_BLEND_CS_LAB, DEVELOP_BLENDIF_Lab_MASK, DEVELOP_BLENDIF_RGB_MASK, DEVELOP_BLENDIF_SIZE, DEVELOP_MASK_ENABLED, DEVELOP_MASK_PARAMETRIC, DEVELOP_MASK_RASTER, DEVELOP_MASK_SHAPE, dt_masks_get_from_id(), DT_MASKS_GROUP, FALSE, IS_NULL_PTR, L, params, and top.
Referenced by _mask_indicator_get_usage(), dt_develop_blend_process(), dt_develop_blend_process_cl(), dt_iop_module_needs_mask_history_ext(), and dt_iop_set_mask_mode().
| void dt_develop_blend_init_blend_parameters | ( | dt_develop_blend_params_t * | blend_params, |
| dt_develop_blend_colorspace_t | cst | ||
| ) |
initializes the default blend parameters for the given color space in blend_params
Definition at line 212 of file blend.c.
References _blend_init_blendif_boost_parameters(), _default_blendop_params, dt_develop_blend_params_t::blend_cst, and L.
Referenced by dt_develop_blend_legacy_params(), dt_gui_presets_add_generic(), and dt_iop_load_default_params().
| void dt_develop_blend_init_blendif_parameters | ( | dt_develop_blend_params_t * | blend_params, |
| dt_develop_blend_colorspace_t | cst | ||
| ) |
initializes the default blendif parameters for the given color space in blend_params
Definition at line 220 of file blend.c.
References _blend_init_blendif_boost_parameters(), _default_blendop_params, dt_develop_blend_params_t::blend_cst, dt_develop_blend_params_t::blend_mode, dt_develop_blend_params_t::blend_parameter, dt_develop_blend_params_t::blendif, dt_develop_blend_params_t::blendif_boost_factors, dt_develop_blend_params_t::blendif_parameters, and L.
Referenced by _blendif_change_blend_colorspace().
global init of blendops
Definition at line 1653 of file blend.c.
References _blendop_cl_global, dt_opencl_create_kernel(), and L.
Referenced by dt_opencl_init().
| 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 | ||
| ) |
update blendop params from older versions
blend legacy parameters version 1
blend legacy parameters version 2
blending mode
mixing opacity
id of mask in current pipeline
blendif mask
blendif parameters
blend legacy parameters version 3
blending mode
mixing opacity
id of mask in current pipeline
blendif mask
blendif parameters
blend legacy parameters version 4
blending mode
mixing opacity
id of mask in current pipeline
blendif mask
blur radius
blendif parameters
blend legacy parameters version 5 (identical to version 6)
what kind of masking to use: off, non-mask (uniformly), hand-drawn mask and/or conditional mask
blending mode
mixing opacity
how masks are combined
id of mask in current pipeline
blendif mask
blur radius
some reserved fields for future use
blendif parameters
blend legacy parameters version 6 (identical to version 7)
what kind of masking to use: off, non-mask (uniformly), hand-drawn mask and/or conditional mask
blending mode
mixing opacity
how masks are combined
id of mask in current pipeline
blendif mask
blur radius
some reserved fields for future use
blendif parameters
blend legacy parameters version 7
what kind of masking to use: off, non-mask (uniformly), hand-drawn mask and/or conditional mask
blending mode
mixing opacity
how masks are combined
id of mask in current pipeline
blendif mask
blur radius
some reserved fields for future use
blendif parameters
blend legacy parameters version 8
what kind of masking to use: off, non-mask (uniformly), hand-drawn mask and/or conditional mask
blending mode
mixing opacity
how masks are combined
id of mask in current pipeline
blendif mask
feathering radius
feathering guide
blur radius
mask contrast enhancement
mask brightness adjustment
some reserved fields for future use
blendif parameters
blend legacy parameters version 9
what kind of masking to use: off, non-mask (uniformly), hand-drawn mask and/or conditional mask or raster mask
blending mode
mixing opacity
how masks are combined
id of mask in current pipeline
blendif mask
feathering radius
feathering guide
blur radius
mask contrast enhancement
mask brightness adjustment
some reserved fields for future use
blendif parameters
blend legacy parameters version 10
what kind of masking to use: off, non-mask (uniformly), hand-drawn mask and/or conditional mask or raster mask
blending color space type
blending mode
parameter for the blending
mixing opacity
how masks are combined
id of mask in current pipeline
blendif mask
feathering radius
feathering guide
blur radius
mask contrast enhancement
mask brightness adjustment
some reserved fields for future use
blendif parameters
Definition at line 1777 of file blend.c.
References _blend_default_module_blend_colorspace(), _blend_legacy_blend_mode(), DEVELOP_BLEND_DISABLED_OBSOLETE, DEVELOP_BLENDIF_active, DEVELOP_BLENDIF_SIZE, DEVELOP_MASK_DISABLED, DEVELOP_MASK_ENABLED, DEVELOP_MASK_PARAMETRIC, dt_develop_blend_init_blend_parameters(), dt_develop_blend_params_is_all_zero(), i, L, mask_id, dt_develop_blend_params_t::mask_mode, and n.
Referenced by _dt_styles_apply_item_to_module(), _init_presets(), _sync_blendop_params(), dt_develop_blend_legacy_params_from_so(), and dt_gui_presets_apply_preset().
| 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 at line 2263 of file blend.c.
References dt_develop_blend_legacy_params(), dt_develop_blend_version(), dt_free, dt_iop_cleanup_module(), dt_iop_load_module_by_so(), L, and res.
Referenced by add_preset().
| 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 | ||
| ) |
apply blend. Return 0 if ok, 1 if error
Definition at line 717 of file blend.c.
References _develop_blend_combine_masks(), _develop_blend_init_drawn_mask(), _develop_blend_init_raster_mask(), _develop_blend_process_copy_region(), _develop_blend_process_feather(), _develop_blend_process_free_region(), _develop_blend_process_mask_tone_curve(), _develop_blend_release_mask_entry(), _develop_mask_get_post_operations(), _refine_with_detail_mask(), dt_dev_pixelpipe_t::bypass_blendif, ch, d, dt_iop_module_t::dev, DEVELOP_BLEND_CS_LAB, DEVELOP_BLEND_CS_RAW, DEVELOP_BLEND_CS_RGB_DISPLAY, DEVELOP_BLEND_CS_RGB_SCENE, DEVELOP_COMBINE_INCL, DEVELOP_MASK_POST_BLUR, DEVELOP_MASK_POST_FEATHER_IN, DEVELOP_MASK_POST_FEATHER_OUT, DEVELOP_MASK_POST_TONE_CURVE, DT_DEBUG_MASKS, dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_wrlock_entry(), DT_DEV_PIXELPIPE_DISPLAY_CHANNEL, DT_DEV_PIXELPIPE_DISPLAY_MASK, DT_DEV_PIXELPIPE_DISPLAY_NONE, dt_dev_pixelpipe_raster_mask_hash(), dt_develop_blend_colorspace(), dt_develop_blend_get_mask_usage(), dt_develop_blendif_lab_blend(), dt_develop_blendif_lab_make_mask(), dt_develop_blendif_raw_blend(), dt_develop_blendif_raw_make_mask(), dt_develop_blendif_rgb_hsl_blend(), dt_develop_blendif_rgb_hsl_make_mask(), dt_develop_blendif_rgb_jzczhz_blend(), dt_develop_blendif_rgb_jzczhz_make_mask(), dt_gaussian_blur(), dt_gaussian_free(), dt_gaussian_init(), dt_iop_colorspace_is_rgb(), dt_iop_image_fill(), dt_iop_image_mul_const(), dt_iop_is_raster_mask_used(), dt_pipe_type_to_str(), dt_pipeline_message(), dt_pixelpipe_cache_alloc_align_float, dt_pixelpipe_cache_free_align, dt_print(), dt_supervisor_active(), dt_supervisor_cacheline_create(), dt_supervisor_node_key(), FALSE, g, dt_develop_t::gui_attached, dt_develop_t::gui_module, dt_dev_pixelpipe_t::hash, dt_iop_roi_t::height, dt_dev_pixelpipe_t::imgid, IOP_CS_NONE, IS_NULL_PTR, iscale, L, dt_dev_pixelpipe_t::mask_display, dt_iop_module_t::op, ovoid, piece, dt_develop_t::pipe, pipe, dt_dev_pixelpipe_t::raster_mask_hashes, dt_iop_module_t::request_mask_display, dt_iop_roi_t::scale, sigma, dt_dev_pixelpipe_t::store_all_raster_masks, TRUE, dt_dev_pixelpipe_t::type, dt_iop_roi_t::width, dt_iop_roi_t::x, and dt_iop_roi_t::y.
Referenced by pixelpipe_process_on_CPU(), and pixelpipe_process_on_GPU().
| 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 | ||
| ) |
apply blend for opencl modules. Return 0 if ok, 1 on error
Definition at line 1166 of file blend.c.
References _blend_process_cl_exchange(), _blendop_cl_global, _develop_blend_combine_masks(), _develop_blend_init_drawn_mask(), _develop_blend_init_raster_mask(), _develop_blend_release_mask_entry(), _develop_mask_get_post_operations(), _refine_with_detail_mask_cl(), dt_dev_pixelpipe_t::bypass_blendif, ch, d, dt_iop_module_t::dev, DEVELOP_BLEND_CS_LAB, DEVELOP_BLEND_CS_RAW, DEVELOP_BLEND_CS_RGB_DISPLAY, DEVELOP_BLEND_CS_RGB_SCENE, DEVELOP_BLENDIF_PARAMETER_ITEMS, DEVELOP_BLENDIF_SIZE, DEVELOP_COMBINE_INCL, DEVELOP_MASK_POST_BLUR, DEVELOP_MASK_POST_FEATHER_IN, DEVELOP_MASK_POST_FEATHER_OUT, DEVELOP_MASK_POST_TONE_CURVE, dt_dev_pixelpipe_t::devid, DT_ALIGNED_ARRAY, DT_DEBUG_MASKS, DT_DEBUG_OPENCL, dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_wrlock_entry(), DT_DEV_PIXELPIPE_DISPLAY_ANY, DT_DEV_PIXELPIPE_DISPLAY_CHANNEL, DT_DEV_PIXELPIPE_DISPLAY_MASK, DT_DEV_PIXELPIPE_DISPLAY_NONE, dt_dev_pixelpipe_raster_mask_hash(), dt_develop_blend_colorspace(), dt_develop_blend_get_mask_usage(), dt_develop_blendif_init_masking_profile(), dt_develop_blendif_process_parameters(), dt_gaussian_blur_cl(), dt_gaussian_free_cl(), dt_gaussian_init_cl(), dt_iop_colorspace_is_rgb(), dt_iop_image_fill(), dt_iop_image_mul_const(), dt_iop_is_raster_mask_used(), dt_ioppr_build_iccprofile_params_cl(), dt_ioppr_free_iccprofile_params_cl(), dt_ioppr_get_pipe_work_profile_info(), dt_opencl_alloc_device(), dt_opencl_copy_device_to_host(), dt_opencl_copy_host_to_device_constant(), dt_opencl_enqueue_copy_image(), dt_opencl_enqueue_kernel_2d(), dt_opencl_release_mem_object(), dt_opencl_set_kernel_arg(), dt_opencl_write_host_to_device(), dt_pipe_type_to_str(), dt_pipeline_message(), dt_pixelpipe_cache_alloc_align_float, dt_pixelpipe_cache_free_align, dt_print(), dt_supervisor_active(), dt_supervisor_cacheline_create(), dt_supervisor_node_key(), error(), FALSE, g, dt_develop_t::gui_attached, dt_develop_t::gui_module, guided_filter_cl(), dt_dev_pixelpipe_t::hash, dt_iop_roi_t::height, dt_dev_pixelpipe_t::imgid, IOP_CS_NONE, IS_NULL_PTR, iscale, kernel(), dt_blendop_cl_global_t::kernel_blendop_display_channel, dt_blendop_cl_global_t::kernel_blendop_Lab, dt_blendop_cl_global_t::kernel_blendop_mask_Lab, dt_blendop_cl_global_t::kernel_blendop_mask_RAW, dt_blendop_cl_global_t::kernel_blendop_mask_rgb_hsl, dt_blendop_cl_global_t::kernel_blendop_mask_rgb_jzczhz, dt_blendop_cl_global_t::kernel_blendop_mask_tone_curve, dt_blendop_cl_global_t::kernel_blendop_RAW, dt_blendop_cl_global_t::kernel_blendop_rgb_hsl, dt_blendop_cl_global_t::kernel_blendop_rgb_jzczhz, dt_blendop_cl_global_t::kernel_blendop_set_mask, L, dt_dev_pixelpipe_t::mask_display, dt_iop_module_t::op, piece, dt_develop_t::pipe, pipe, dt_dev_pixelpipe_t::raster_mask_hashes, dt_iop_module_t::request_mask_display, ROUNDUPDHT, ROUNDUPDWD, dt_iop_roi_t::scale, sigma, dt_dev_pixelpipe_t::store_all_raster_masks, TRUE, dt_dev_pixelpipe_t::type, dt_iop_roi_t::width, dt_iop_roi_t::x, and dt_iop_roi_t::y.
Referenced by pixelpipe_process_on_GPU().
| void dt_develop_blend_resolve_default_colorspace | ( | dt_iop_module_t * | module, |
| dt_develop_blend_params_t * | blend_params | ||
| ) |
Replace DEVELOP_BLEND_CS_NONE, which stands for "whichever space this module blends in", by the module's own blending space and the boost factors that space starts from.
Any other space is left alone, boost factors included: it is the space the edit or the preset chose.
| module | Module the space is read from. |
| blend_params | Blending parameters, rewritten in place when they carry NONE. |
Definition at line 205 of file blend.c.
References _blend_init_blendif_boost_parameters(), dt_develop_blend_params_t::blend_cst, DEVELOP_BLEND_CS_NONE, dt_develop_blend_default_module_blend_colorspace(), and L.
Referenced by _resolve_presets_blend_colorspace(), and dt_iop_commit_blend_params().
| int dt_develop_blend_version | ( | void | ) |
blend version
Definition at line 1713 of file blend.c.
References DEVELOP_BLEND_VERSION.
Referenced by _dt_styles_apply_item_to_module(), _edit_preset_response(), _init_presets(), _menuitem_update_preset(), _resolve_presets_blend_colorspace(), _sync_blendop_params(), add_preset(), dt_dev_history_item_update_from_params(), dt_dev_write_history_item(), dt_develop_blend_legacy_params_from_so(), dt_gui_presets_add_with_blendop(), and dt_gui_presets_apply_preset().
| 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 | ||
| ) |
Set up a profile adapted to the blending.
darktable built-in color profiles are chroma-adjusted such that they define a [D65 RGB -> D50 XYZ] transform, which is expected by CIE Lab and the ICC pipeline. Since JzAzBz expects an XYZ vector adjusted for D65, we apply a Bradford transform on the profile primaries to output D65 XYZ. The updated primaries are stored in matrix_out. This is valid only in the context of blending with JzAzBz color space. The resulting XYZ is used only to define masks and not re-injected into the pipeline.
The initialized profile may only be used to convert from RGB to XYZ.
Definition at line 361 of file blend.c.
References dt_dev_pixelpipe_t::dev, DEVELOP_BLEND_CS_RGB_SCENE, dt_ioppr_get_iop_work_profile_info(), dt_ioppr_get_pipe_current_profile_info(), i, dt_develop_t::iop, IS_NULL_PTR, L, M, dt_iop_order_iccprofile_info_t::matrix_in, piece, pipe, and x.
Referenced by dt_develop_blend_process_cl(), dt_develop_blendif_rgb_hsl_blend(), dt_develop_blendif_rgb_hsl_make_mask(), dt_develop_blendif_rgb_jzczhz_blend(), and dt_develop_blendif_rgb_jzczhz_make_mask().
| void dt_develop_blendif_process_parameters | ( | float *const restrict | parameters, |
| const dt_develop_blend_params_t *const | params | ||
| ) |
Definition at line 253 of file blend.c.
References DEVELOP_BLEND_CS_LAB, DEVELOP_BLENDIF_A_in, DEVELOP_BLENDIF_A_out, DEVELOP_BLENDIF_B_in, DEVELOP_BLENDIF_B_out, DEVELOP_BLENDIF_PARAMETER_ITEMS, DEVELOP_BLENDIF_SIZE, i, L, and params.
Referenced by dt_develop_blend_process_cl(), dt_develop_blendif_lab_make_mask(), dt_develop_blendif_rgb_hsl_make_mask(), and dt_develop_blendif_rgb_jzczhz_make_mask().
|
static |
Definition at line 86 of file blend.c.
References DT_DEV_PIXELPIPE_EXPORT, DT_DEV_PIXELPIPE_FULL, DT_DEV_PIXELPIPE_PREVIEW, and DT_DEV_PIXELPIPE_THUMBNAIL.
Referenced by dt_develop_blend_process(), and dt_develop_blend_process_cl().
| void tiling_callback_blendop | ( | struct dt_iop_module_t * | self, |
| const struct dt_dev_pixelpipe_t * | pipe, | ||
| const struct dt_dev_pixelpipe_iop_t * | piece, | ||
| struct dt_develop_tiling_t * | tiling | ||
| ) |
report back specific memory requirements for blend step (only relevant for OpenCL path)
Definition at line 1719 of file blend.c.
References IS_NULL_PTR, L, and piece.
Referenced by dt_dev_pixelpipe_process_rec().
|
static |
Definition at line 70 of file blend.c.
Referenced by _refine_with_detail_mask_cl(), dt_develop_blend_free_cl_global(), dt_develop_blend_get_cl_global(), dt_develop_blend_init_cl_global(), and dt_develop_blend_process_cl().
|
static |
Definition at line 103 of file blend.c.
Referenced by dt_develop_blend_init_blend_parameters(), and dt_develop_blend_init_blendif_parameters().
| const dt_develop_name_value_t dt_develop_blend_colorspace_names[] |
Definition at line 2343 of file blend.c.
Referenced by _blendop_json(), and _create_tooltip_text().
| const dt_develop_name_value_t dt_develop_blend_mode_flag_names[] |
Definition at line 2338 of file blend.c.
Referenced by _blendop_json(), and _create_tooltip_text().
| const dt_develop_name_value_t dt_develop_blend_mode_names[] |
Definition at line 2296 of file blend.c.
Referenced by _add_blendmode_combo(), _blendop_json(), and _create_tooltip_text().
| const dt_develop_name_value_t dt_develop_combine_masks_names[] |
Definition at line 2360 of file blend.c.
Referenced by _blendop_json(), _create_tooltip_text(), and dt_iop_gui_init_blending_body().
| const dt_develop_name_value_t dt_develop_feathering_guide_names[] |
Definition at line 2367 of file blend.c.
Referenced by _blendop_json(), _create_tooltip_text(), and dt_iop_gui_init_blending_body().
| const dt_develop_name_value_t dt_develop_invert_mask_names[] |
Definition at line 2374 of file blend.c.
Referenced by _blendop_json(), and _create_tooltip_text().
| const dt_develop_name_value_t dt_develop_mask_mode_names[] |
Definition at line 2351 of file blend.c.
Referenced by _blendop_json(), and _create_tooltip_text().