Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
blendif_lab.c File Reference
+ Include dependency graph for blendif_lab.c:

Macros

#define DT_BLENDIF_LAB_CH   4
 
#define DT_BLENDIF_LAB_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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 

Functions

static float _CLAMP (const float x, const float min, const float max)
 
static void _CLAMP_XYZ (dt_aligned_pixel_t XYZ, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
static float _blendif_compute_factor (const float value, const unsigned int invert_mask, const float *const restrict parameters)
 
static void _blendif_lab_l (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_lab_a (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_lab_b (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_lch (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)
 
void dt_develop_blendif_lab_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_Lab_scale (const float *i, float *o)
 
static void _blend_Lab_rescale (const float *i, float *o)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
static void _blend_difference2 (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
static void _blend_Lab_lightness (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
static void _blend_Lab_a (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
static void _blend_Lab_b (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
static void _blend_Lab_color (const float *const restrict a, const float *const restrict b, float *const restrict out, const float *const restrict mask, const size_t stride, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)
 
static _blend_row_func_choose_blend_func (const unsigned int blend_mode)
 
static void _display_channel_value (dt_aligned_pixel_t out, const float value, const float mask)
 
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)
 
static void _copy_mask (const float *const restrict a, float *const restrict b, const size_t stride)
 
void dt_develop_blendif_lab_blend (struct dt_dev_pixelpipe_iop_t *piece, const float *const a, float *const 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)
 

Macro Definition Documentation

◆ DT_BLENDIF_LAB_BCH

#define DT_BLENDIF_LAB_BCH   3

◆ DT_BLENDIF_LAB_CH

#define DT_BLENDIF_LAB_CH   4

Typedef Documentation

◆ _blend_row_func

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, const dt_aligned_pixel_t min, const dt_aligned_pixel_t max)

Function Documentation

◆ _blend_add()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_average()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_chromaticity()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_color()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_coloradjust()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_darken()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_difference()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_difference2()

static void _blend_difference2 ( const float *const restrict  a,
const float *const restrict  b,
float *const restrict  out,
const float *const restrict  mask,
const size_t  stride,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_hardlight()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_hue()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_Lab_a()

static void _blend_Lab_a ( const float *const restrict  a,
const float *const restrict  b,
float *const restrict  out,
const float *const restrict  mask,
const size_t  stride,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_Lab_b()

static void _blend_Lab_b ( const float *const restrict  a,
const float *const restrict  b,
float *const restrict  out,
const float *const restrict  mask,
const size_t  stride,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_Lab_color()

static void _blend_Lab_color ( const float *const restrict  a,
const float *const restrict  b,
float *const restrict  out,
const float *const restrict  mask,
const size_t  stride,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_Lab_lightness()

static void _blend_Lab_lightness ( const float *const restrict  a,
const float *const restrict  b,
float *const restrict  out,
const float *const restrict  mask,
const size_t  stride,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_Lab_rescale()

◆ _blend_Lab_scale()

◆ _blend_lighten()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_lightness()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_linearlight()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_multiply()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_normal_bounded()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_normal_unbounded()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_overlay()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_pinlight()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_screen()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_softlight()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_subtract()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blend_vividlight()

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,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
static

◆ _blendif_combine_channels()

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 
)
static

◆ _blendif_compute_factor()

static float _blendif_compute_factor ( const float  value,
const unsigned int  invert_mask,
const float *const restrict  parameters 
)
inlinestatic

◆ _blendif_lab_a()

static void _blendif_lab_a ( const float *const restrict  pixels,
float *const restrict  mask,
const size_t  stride,
const float *const restrict  parameters,
const unsigned int  invert_mask 
)
inlinestatic

◆ _blendif_lab_b()

static void _blendif_lab_b ( const float *const restrict  pixels,
float *const restrict  mask,
const size_t  stride,
const float *const restrict  parameters,
const unsigned int  invert_mask 
)
inlinestatic

◆ _blendif_lab_l()

static void _blendif_lab_l ( const float *const restrict  pixels,
float *const restrict  mask,
const size_t  stride,
const float *const restrict  parameters,
const unsigned int  invert_mask 
)
inlinestatic

◆ _blendif_lch()

static void _blendif_lch ( 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 
)
inlinestatic

◆ _choose_blend_func()

◆ _CLAMP()

◆ _CLAMP_XYZ()

static void _CLAMP_XYZ ( dt_aligned_pixel_t  XYZ,
const dt_aligned_pixel_t  min,
const dt_aligned_pixel_t  max 
)
inlinestatic

◆ _copy_mask()

static void _copy_mask ( const float *const restrict  a,
float *const restrict  b,
const size_t  stride 
)
inlinestatic

◆ _display_channel()

◆ _display_channel_value()

static void _display_channel_value ( dt_aligned_pixel_t  out,
const float  value,
const float  mask 
)
inlinestatic

Referenced by _display_channel().

◆ dt_develop_blendif_lab_blend()

◆ dt_develop_blendif_lab_make_mask()