![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/colorspaces_inline_conversions.h"
#include "common/imagebuf.h"
#include "develop/blend.h"
#include "develop/imageop.h"
#include "develop/openmp_maths.h"
#include <math.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, const float p, float *const restrict out, const float *const restrict mask, const size_t stride) |
Functions | |
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_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_jzczhz (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, const dt_iop_order_iccprofile_info_t *const restrict profile) |
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_jzczhz_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 (const float *const restrict a, const float *const restrict b, const float p, 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, const float p, 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, const float p, 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, const float p, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_subtract_inverse (const float *const restrict a, const float *const restrict b, const float p, 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, const float p, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_divide (const float *const restrict a, const float *const restrict b, const float p, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_divide_inverse (const float *const restrict a, const float *const restrict b, const float p, 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, const float p, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_geometric_mean (const float *const restrict a, const float *const restrict b, const float p, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_harmonic_mean (const float *const restrict a, const float *const restrict b, const float p, 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, const float p, float *const restrict out, const float *const restrict mask, const size_t stride) |
static void | _blend_luminance (const float *const restrict a, const float *const restrict b, const float p, 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, const float p, 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, const float p, 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, const float p, 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 | _rgb_to_JzCzhz (const dt_aligned_pixel_t rgb, dt_aligned_pixel_t JzCzhz, 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_jzczhz_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, const float p, float *const restrict out, const float *const restrict mask, const size_t stride) |
|
static |
References 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 DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, and sqf().
Referenced by _choose_blend_func().
|
static |
References 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 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 DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by _choose_blend_func().
|
static |
References DT_BLENDIF_RGB_BCH, DT_BLENDIF_RGB_CH, and sqf().
Referenced by _choose_blend_func().
|
static |
References 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 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_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 _blendif_gray(), _blendif_jzczhz(), _blendif_rgb_blue(), _blendif_rgb_green(), _blendif_rgb_red(), DEVELOP_BLENDIF_BLUE_in, DEVELOP_BLENDIF_Cz_in, DEVELOP_BLENDIF_GRAY_in, DEVELOP_BLENDIF_GREEN_in, DEVELOP_BLENDIF_hz_in, DEVELOP_BLENDIF_Jz_in, DEVELOP_BLENDIF_PARAMETER_ITEMS, DEVELOP_BLENDIF_RED_in, and DT_ALIGNED_PIXEL.
Referenced by dt_develop_blendif_rgb_jzczhz_make_mask().
|
inlinestatic |
References factor.
Referenced by _blendif_gray(), _blendif_jzczhz(), _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(), DEVELOP_BLENDIF_PARAMETER_ITEMS, DT_BLENDIF_RGB_CH, dt_ioppr_rgb_matrix_to_xyz(), dt_JzAzBz_2_JzCzhz(), dt_XYZ_2_JzAzBz(), and factor.
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_difference(), _blend_divide(), _blend_divide_inverse(), _blend_geometric_mean(), _blend_harmonic_mean(), _blend_luminance(), _blend_multiply(), _blend_normal(), _blend_RGB_B(), _blend_RGB_G(), _blend_RGB_R(), _blend_subtract(), _blend_subtract_inverse(), DEVELOP_BLEND_ADD, DEVELOP_BLEND_AVERAGE, DEVELOP_BLEND_CHROMATICITY, DEVELOP_BLEND_DIFFERENCE, DEVELOP_BLEND_DIFFERENCE2, DEVELOP_BLEND_DIVIDE, DEVELOP_BLEND_DIVIDE_INVERSE, DEVELOP_BLEND_GEOMETRIC_MEAN, DEVELOP_BLEND_HARMONIC_MEAN, DEVELOP_BLEND_LIGHTNESS, DEVELOP_BLEND_MODE_MASK, DEVELOP_BLEND_MULTIPLY, DEVELOP_BLEND_RGB_B, DEVELOP_BLEND_RGB_G, DEVELOP_BLEND_RGB_R, DEVELOP_BLEND_SUBTRACT, and DEVELOP_BLEND_SUBTRACT_INVERSE.
Referenced by dt_develop_blendif_rgb_jzczhz_blend().
|
inlinestatic |
References DT_BLENDIF_RGB_BCH, and DT_BLENDIF_RGB_CH.
Referenced by dt_develop_blendif_rgb_jzczhz_blend().
|
static |
References _rgb_luminance(), _rgb_to_JzCzhz(), clamp_simd(), DEVELOP_BLENDIF_BLUE_in, DEVELOP_BLENDIF_BLUE_out, DEVELOP_BLENDIF_Cz_in, DEVELOP_BLENDIF_Cz_out, DEVELOP_BLENDIF_GRAY_in, DEVELOP_BLENDIF_GRAY_out, DEVELOP_BLENDIF_GREEN_in, DEVELOP_BLENDIF_GREEN_out, DEVELOP_BLENDIF_Jz_in, DEVELOP_BLENDIF_Jz_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_JzCzhz_Cz, DT_DEV_PIXELPIPE_DISPLAY_JzCzhz_hz, DT_DEV_PIXELPIPE_DISPLAY_JzCzhz_Jz, DT_DEV_PIXELPIPE_DISPLAY_OUTPUT, DT_DEV_PIXELPIPE_DISPLAY_R, and factor.
Referenced by dt_develop_blendif_rgb_jzczhz_blend().
|
inlinestatic |
References dt_ioppr_get_rgb_matrix_luminance().
Referenced by _display_channel().
|
inlinestatic |
References dt_ioppr_rgb_matrix_to_xyz(), dt_JzAzBz_2_JzCzhz(), and dt_XYZ_2_JzAzBz().
Referenced by _display_channel().
void dt_develop_blendif_rgb_jzczhz_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::blend_parameter, 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_SCENE, 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_jzczhz_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_SCENE, 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.