![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/colorspaces_inline_conversions.h"
#include "common/imagebuf.h"
#include "common/math.h"
#include "develop/blend.h"
#include "develop/imageop.h"
#include "develop/openmp_maths.h"
Macros | |
#define | DT_BLENDIF_RGB_CH 4 |
#define | DT_BLENDIF_RGB_BCH 3 |
Typedefs | |
typedef void() | _blend_row_func(const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
Functions | |
static void | _CLAMP_XYZ (float *const restrict XYZ) |
static void | _PX_COPY (const float *const restrict src, float *const restrict dst) |
static float | _blendif_compute_factor (const float value, const unsigned int invert_mask, const float *const restrict parameters) |
static void | _blendif_gray (const float *const restrict pixels, float *const restrict mask, const size_t stride, const float *const restrict parameters, const unsigned int invert_mask, const dt_iop_order_iccprofile_info_t *const restrict profile) |
static void | _blendif_gray_fb (const float *const restrict pixels, float *const restrict mask, const size_t stride, const float *const restrict parameters, const unsigned int invert_mask) |
static void | _blendif_rgb_red (const float *const restrict pixels, float *const restrict mask, const size_t stride, const float *const restrict parameters, const unsigned int invert_mask) |
static void | _blendif_rgb_green (const float *const restrict pixels, float *const restrict mask, const size_t stride, const float *const restrict parameters, const unsigned int invert_mask) |
static void | _blendif_rgb_blue (const float *const restrict pixels, float *const restrict mask, const size_t stride, const float *const restrict parameters, const unsigned int invert_mask) |
static void | _blendif_hsl (const float *const restrict pixels, float *const restrict mask, const size_t stride, const float *const restrict parameters, const unsigned int *const restrict invert_mask) |
static void | _blendif_combine_channels (const float *const restrict pixels, float *const restrict mask, const size_t stride, const unsigned int blendif, const float *const restrict parameters, const dt_iop_order_iccprofile_info_t *const restrict profile) |
void | dt_develop_blendif_rgb_hsl_make_mask (struct dt_dev_pixelpipe_iop_t *piece, const float *const restrict a, const float *const restrict b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, float *const restrict mask) |
static void | _blend_normal_bounded (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_normal_unbounded (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_lighten (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_darken (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_multiply (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_average (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_add (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_subtract (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_difference (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_screen (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_overlay (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_softlight (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_hardlight (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_vividlight (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_linearlight (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_pinlight (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_lightness (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_chromaticity (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_hue (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_color (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_coloradjust (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_HSV_value (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_HSV_color (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_RGB_R (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_RGB_G (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_RGB_B (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
static _blend_row_func * | _choose_blend_func (const unsigned int blend_mode) |
static float | _rgb_luminance (const float *const restrict rgb, const dt_iop_order_iccprofile_info_t *const restrict profile) |
static void | _display_channel (const float *const restrict a, float *const restrict b, const float *const restrict mask, const size_t stride, const int channel, const float *const restrict boost_factors, const dt_iop_order_iccprofile_info_t *const profile) |
static void | _copy_mask (const float *const restrict a, float *const restrict b, const size_t stride) |
void | dt_develop_blendif_rgb_hsl_blend (struct dt_dev_pixelpipe_iop_t *piece, const float *const restrict a, float *const restrict b, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out, const float *const restrict mask, const dt_dev_pixelpipe_display_mask_t request_mask_display) |
#define DT_BLENDIF_RGB_BCH 3 |
#define DT_BLENDIF_RGB_CH 4 |
typedef void() _blend_row_func(const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride) |
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References _CLAMP_XYZ(), _PX_COPY(), DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, dt_HSL_2_RGB(), and dt_RGB_2_HSL().
Referenced by _choose_blend_func().
|
static |
References _CLAMP_XYZ(), _PX_COPY(), DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, dt_HSL_2_RGB(), and dt_RGB_2_HSL().
Referenced by _choose_blend_func().
|
static |
References _CLAMP_XYZ(), _PX_COPY(), DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, dt_HSL_2_RGB(), and dt_RGB_2_HSL().
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, dt_HSV_2_RGB(), DT_M_PI_F, and dt_RGB_2_HSV().
Referenced by _choose_blend_func().
|
static |
References DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, dt_HSV_2_RGB(), and dt_RGB_2_HSV().
Referenced by _choose_blend_func().
|
static |
References _CLAMP_XYZ(), _PX_COPY(), DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, dt_HSL_2_RGB(), and dt_RGB_2_HSL().
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References _CLAMP_XYZ(), _PX_COPY(), DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, dt_HSL_2_RGB(), and dt_RGB_2_HSL().
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References clamp_simd(), DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References _blendif_gray(), _blendif_gray_fb(), _blendif_hsl(), _blendif_rgb_blue(), _blendif_rgb_green(), _blendif_rgb_red(), DEVELOP_BLENDIF_BLUE_in, DEVELOP_BLENDIF_GRAY_in, DEVELOP_BLENDIF_GREEN_in, DEVELOP_BLENDIF_H_in, DEVELOP_BLENDIF_l_in, DEVELOP_BLENDIF_PARAMETER_ITEMS, DEVELOP_BLENDIF_RED_in, DEVELOP_BLENDIF_S_in, and DT_ALIGNED_PIXEL.
Referenced by dt_develop_blendif_rgb_hsl_make_mask().
|
inlinestatic |
References factor.
Referenced by _blendif_gray(), _blendif_gray_fb(), _blendif_hsl(), _blendif_rgb_blue(), _blendif_rgb_green(), and _blendif_rgb_red().
|
inlinestatic |
References _blendif_compute_factor(), DT_BLENDIF_RGB_CH, and dt_ioppr_get_rgb_matrix_luminance().
Referenced by _blendif_combine_channels().
|
inlinestatic |
References _blendif_compute_factor(), and DT_BLENDIF_RGB_CH.
Referenced by _blendif_combine_channels().
|
inlinestatic |
References _blendif_compute_factor(), DEVELOP_BLENDIF_PARAMETER_ITEMS, DT_BLENDIF_RGB_CH, dt_RGB_2_HSL(), factor, and HSL.
Referenced by _blendif_combine_channels().
|
inlinestatic |
References _blendif_compute_factor(), and DT_BLENDIF_RGB_CH.
Referenced by _blendif_combine_channels().
|
inlinestatic |
References _blendif_compute_factor(), and DT_BLENDIF_RGB_CH.
Referenced by _blendif_combine_channels().
|
inlinestatic |
References _blendif_compute_factor(), and DT_BLENDIF_RGB_CH.
Referenced by _blendif_combine_channels().
|
static |
References _blend_add(), _blend_average(), _blend_chromaticity(), _blend_color(), _blend_coloradjust(), _blend_darken(), _blend_difference(), _blend_hardlight(), _blend_HSV_color(), _blend_HSV_value(), _blend_hue(), _blend_lighten(), _blend_lightness(), _blend_linearlight(), _blend_multiply(), _blend_normal_bounded(), _blend_normal_unbounded(), _blend_overlay(), _blend_pinlight(), _blend_RGB_B(), _blend_RGB_G(), _blend_RGB_R(), _blend_screen(), _blend_softlight(), _blend_subtract(), _blend_vividlight(), DEVELOP_BLEND_ADD, DEVELOP_BLEND_AVERAGE, DEVELOP_BLEND_BOUNDED, DEVELOP_BLEND_CHROMATICITY, DEVELOP_BLEND_COLOR, DEVELOP_BLEND_COLORADJUST, DEVELOP_BLEND_DARKEN, DEVELOP_BLEND_DIFFERENCE, DEVELOP_BLEND_DIFFERENCE2, DEVELOP_BLEND_HARDLIGHT, DEVELOP_BLEND_HSV_COLOR, DEVELOP_BLEND_HSV_VALUE, DEVELOP_BLEND_HUE, DEVELOP_BLEND_LIGHTEN, DEVELOP_BLEND_LIGHTNESS, DEVELOP_BLEND_LINEARLIGHT, DEVELOP_BLEND_MODE_MASK, DEVELOP_BLEND_MULTIPLY, DEVELOP_BLEND_NORMAL2, DEVELOP_BLEND_OVERLAY, DEVELOP_BLEND_PINLIGHT, DEVELOP_BLEND_RGB_B, DEVELOP_BLEND_RGB_G, DEVELOP_BLEND_RGB_R, DEVELOP_BLEND_SCREEN, DEVELOP_BLEND_SOFTLIGHT, DEVELOP_BLEND_SUBTRACT, and DEVELOP_BLEND_VIVIDLIGHT.
Referenced by dt_develop_blendif_rgb_hsl_blend().
|
inlinestatic |
References clamp_simd().
Referenced by _blend_chromaticity(), _blend_color(), _blend_coloradjust(), _blend_hue(), and _blend_lightness().
|
inlinestatic |
References DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by dt_develop_blendif_rgb_hsl_blend().
|
static |
References _rgb_luminance(), clamp_simd(), DEVELOP_BLENDIF_BLUE_in, DEVELOP_BLENDIF_BLUE_out, DEVELOP_BLENDIF_GRAY_in, DEVELOP_BLENDIF_GRAY_out, DEVELOP_BLENDIF_GREEN_in, DEVELOP_BLENDIF_GREEN_out, DEVELOP_BLENDIF_RED_in, DEVELOP_BLENDIF_RED_out, DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, DT_DEV_PIXELPIPE_DISPLAY_B, DT_DEV_PIXELPIPE_DISPLAY_G, DT_DEV_PIXELPIPE_DISPLAY_GRAY, DT_DEV_PIXELPIPE_DISPLAY_HSL_H, DT_DEV_PIXELPIPE_DISPLAY_HSL_l, DT_DEV_PIXELPIPE_DISPLAY_HSL_S, DT_DEV_PIXELPIPE_DISPLAY_OUTPUT, DT_DEV_PIXELPIPE_DISPLAY_R, dt_RGB_2_HSL(), factor, and HSL.
Referenced by dt_develop_blendif_rgb_hsl_blend().
|
inlinestatic |
Referenced by _blend_chromaticity(), _blend_color(), _blend_coloradjust(), _blend_hue(), and _blend_lightness().
|
inlinestatic |
References dt_ioppr_get_rgb_matrix_luminance().
Referenced by _display_channel().
void dt_develop_blendif_rgb_hsl_blend | ( | struct dt_dev_pixelpipe_iop_t * | piece, |
const float *const restrict | a, | ||
float *const restrict | b, | ||
const struct dt_iop_roi_t *const | roi_in, | ||
const struct dt_iop_roi_t *const | roi_out, | ||
const float *const restrict | mask, | ||
const dt_dev_pixelpipe_display_mask_t | request_mask_display | ||
) |
References _choose_blend_func(), _copy_mask(), _display_channel(), dt_develop_blend_params_t::blend_mode, dt_develop_blend_params_t::blendif_boost_factors, dt_dev_pixelpipe_iop_t::blendop_data, dt_dev_pixelpipe_iop_t::colors, DEVELOP_BLEND_CS_RGB_DISPLAY, DEVELOP_BLEND_REVERSE, dt_alloc_align_float(), DT_BLENDIF_RGB_CH, DT_DEV_PIXELPIPE_DISPLAY_ANY, DT_DEV_PIXELPIPE_DISPLAY_MASK, dt_develop_blendif_init_masking_profile(), dt_free_align, dt_iop_image_copy(), dt_iop_roi_t::height, dt_dev_pixelpipe_iop_t::pipe, dt_iop_roi_t::width, dt_iop_roi_t::x, and dt_iop_roi_t::y.
void dt_develop_blendif_rgb_hsl_make_mask | ( | struct dt_dev_pixelpipe_iop_t * | piece, |
const float *const restrict | a, | ||
const float *const restrict | b, | ||
const struct dt_iop_roi_t *const | roi_in, | ||
const struct dt_iop_roi_t *const | roi_out, | ||
float *const restrict | mask | ||
) |
References _blendif_combine_channels(), dt_develop_blend_params_t::blendif, dt_dev_pixelpipe_iop_t::blendop_data, clamp_simd(), dt_dev_pixelpipe_iop_t::colors, DEVELOP_BLEND_CS_RGB_DISPLAY, DEVELOP_BLENDIF_GRAY_out, DEVELOP_BLENDIF_PARAMETER_ITEMS, DEVELOP_BLENDIF_RGB_MASK, DEVELOP_BLENDIF_SIZE, DEVELOP_COMBINE_INCL, DEVELOP_COMBINE_INV, DEVELOP_MASK_CONDITIONAL, DT_ALIGNED_ARRAY, dt_alloc_align_float(), DT_BLENDIF_RGB_CH, dt_develop_blendif_init_masking_profile(), dt_develop_blendif_process_parameters(), dt_free_align, dt_iop_image_fill(), dt_iop_image_mul_const(), dt_iop_roi_t::height, dt_develop_blend_params_t::mask_combine, dt_develop_blend_params_t::mask_mode, dt_develop_blend_params_t::opacity, dt_iop_roi_t::width, dt_iop_roi_t::x, and dt_iop_roi_t::y.