40 const float *in_factor = p.
ins[0];
41 const float *in_color = p.
ins[1];
42 const float fac = std::min(1.0f, in_factor[0]);
43 const float fac_m = 1.0f - fac;
44 p.
out[0] = fac_m * in_color[0] +
46 p.
out[1] = fac_m * in_color[1] +
48 p.
out[2] = fac_m * in_color[2] +
50 p.
out[3] = in_color[3];
float srgb_to_linearrgb(float c)
float linearrgb_to_srgb(float c)
void update_memory_buffer_row(PixelCursor &p) override
ColorBalanceLGGOperation()
void add_output_socket(DataType datatype)
NodeOperationFlags flags_
void add_input_socket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
void set_canvas_input_index(unsigned int index)
set the index of the input socket that will determine the canvas of this operation
float colorbalance_lgg(float in, float lift_lgg, float gamma_inv, float gain)
Array< const float * > ins