Blender V5.0
colortools.cc File Reference
#include <algorithm>
#include <cfloat>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_color_types.h"
#include "DNA_curve_types.h"
#include "BLI_math_base.hh"
#include "BLI_math_vector.hh"
#include "BLI_rect.h"
#include "BLI_string_utf8.h"
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "BKE_colortools.hh"
#include "BKE_curve.hh"
#include "BKE_fcurve.hh"
#include "IMB_colormanagement.hh"
#include "IMB_imbuf_types.hh"
#include "BLO_read_write.hh"

Go to the source code of this file.

Classes

struct  ScopesUpdateData
struct  ScopesUpdateDataChunk

Macros

#define p2_h1   ((p2) - 3)
#define p2_h2   ((p2) + 3)
#define INV_255   (1.0f / 255.0f)

Functions

void BKE_curvemapping_set_defaults (CurveMapping *cumap, int tot, float minx, float miny, float maxx, float maxy, short default_handle_type)
CurveMappingBKE_curvemapping_add (int tot, float minx, float miny, float maxx, float maxy)
void BKE_curvemapping_free_data (CurveMapping *cumap)
void BKE_curvemapping_free (CurveMapping *cumap)
void BKE_curvemapping_copy_data (CurveMapping *target, const CurveMapping *cumap)
CurveMappingBKE_curvemapping_copy (const CurveMapping *cumap)
void BKE_curvemapping_set_black_white_ex (const float black[3], const float white[3], float r_bwmul[3])
void BKE_curvemapping_set_black_white (CurveMapping *cumap, const float black[3], const float white[3])
bool BKE_curvemap_remove_point (CurveMap *cuma, CurveMapPoint *point)
void BKE_curvemap_remove (CurveMap *cuma, const short flag)
CurveMapPointBKE_curvemap_insert (CurveMap *cuma, float x, float y)
void BKE_curvemap_reset (CurveMap *cuma, const rctf *clipr, int preset, CurveMapSlopeType slope)
void BKE_curvemap_handle_set (CurveMap *cuma, int type)
static void calchandle_curvemap (BezTriple *bezt, const BezTriple *prev, const BezTriple *next)
static float curvemap_calc_extend (const CurveMapping *cumap, const CurveMap *cuma, float x, const float first[2], const float last[2])
static void curve_eval_bezier_point (float start[3][3], float end[3][3], float *point)
static void curvemap_make_table (const CurveMapping *cumap, CurveMap *cuma)
void BKE_curvemapping_premultiply (CurveMapping *cumap, bool restore)
void BKE_curvemapping_changed (CurveMapping *cumap, const bool rem_doubles)
void BKE_curvemapping_changed_all (CurveMapping *cumap)
void BKE_curvemapping_reset_view (CurveMapping *cumap)
float BKE_curvemap_evaluateF (const CurveMapping *cumap, const CurveMap *cuma, float value)
float BKE_curvemapping_evaluateF (const CurveMapping *cumap, int cur, float value)
void BKE_curvemapping_evaluate3F (const CurveMapping *cumap, float vecout[3], const float vecin[3])
void BKE_curvemapping_evaluateRGBF (const CurveMapping *cumap, float vecout[3], const float vecin[3])
static blender::float3 evaluate_film_like (const CurveMapping *curve_mapping, blender::float3 input)
void BKE_curvemapping_evaluate_premulRGBF_ex (const CurveMapping *cumap, float vecout[3], const float vecin[3], const float black[3], const float bwmul[3])
void BKE_curvemapping_evaluate_premulRGBF (const CurveMapping *cumap, float vecout[3], const float vecin[3])
void BKE_curvemapping_evaluate_premulRGB (const CurveMapping *cumap, uchar vecout_byte[3], const uchar vecin_byte[3])
bool BKE_curvemapping_RGBA_does_something (const CurveMapping *cumap)
void BKE_curvemapping_get_range_minimums (const CurveMapping *curve_mapping, float minimums[CM_TOT])
void BKE_curvemapping_compute_range_dividers (const CurveMapping *curve_mapping, float dividers[CM_TOT])
void BKE_curvemapping_compute_slopes (const CurveMapping *curve_mapping, float start_slopes[CM_TOT], float end_slopes[CM_TOT])
bool BKE_curvemapping_is_map_identity (const CurveMapping *curve_mapping, int index)
void BKE_curvemapping_init (CurveMapping *cumap)
void BKE_curvemapping_table_F (const CurveMapping *cumap, float **array, int *size)
void BKE_curvemapping_table_RGBA (const CurveMapping *cumap, float **array, int *size)
void BKE_curvemapping_blend_write (BlendWriter *writer, const CurveMapping *cumap)
void BKE_curvemapping_curves_blend_write (BlendWriter *writer, const CurveMapping *cumap)
void BKE_curvemapping_blend_read (BlendDataReader *reader, CurveMapping *cumap)
BLI_INLINE int get_bin_float (float f)
static void save_sample_line (Scopes *scopes, const int idx, const float fx, const float rgb[3], const float ycc[3])
void BKE_histogram_update_sample_line (Histogram *hist, ImBuf *ibuf, const ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings)
static void scopes_update_cb (void *__restrict userdata, const int y, const TaskParallelTLS *__restrict tls)
static void scopes_update_reduce (const void *__restrict, void *__restrict chunk_join, void *__restrict chunk)
void BKE_scopes_update (Scopes *scopes, ImBuf *ibuf, const ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings)
void BKE_scopes_free (Scopes *scopes)
void BKE_scopes_new (Scopes *scopes)
void BKE_color_managed_display_settings_init (ColorManagedDisplaySettings *settings)
void BKE_color_managed_display_settings_copy (ColorManagedDisplaySettings *new_settings, const ColorManagedDisplaySettings *settings)
void BKE_color_managed_view_settings_init (ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings, const char *view_transform)
void BKE_color_managed_view_settings_copy (ColorManagedViewSettings *new_settings, const ColorManagedViewSettings *settings)
void BKE_color_managed_view_settings_copy_keep_curve_mapping (ColorManagedViewSettings *new_settings, const ColorManagedViewSettings *settings)
void BKE_color_managed_view_settings_free (ColorManagedViewSettings *settings)
void BKE_color_managed_view_settings_blend_write (BlendWriter *writer, const ColorManagedViewSettings *settings)
void BKE_color_managed_view_settings_blend_read_data (BlendDataReader *reader, ColorManagedViewSettings *settings)
void BKE_color_managed_colorspace_settings_init (ColorManagedColorspaceSettings *colorspace_settings)
void BKE_color_managed_colorspace_settings_copy (ColorManagedColorspaceSettings *colorspace_settings, const ColorManagedColorspaceSettings *settings)
bool BKE_color_managed_colorspace_settings_equals (const ColorManagedColorspaceSettings *settings1, const ColorManagedColorspaceSettings *settings2)

Macro Definition Documentation

◆ INV_255

#define INV_255   (1.0f / 255.0f)

Definition at line 1439 of file colortools.cc.

Referenced by scopes_update_cb().

◆ p2_h1

#define p2_h1   ((p2) - 3)

◆ p2_h2

#define p2_h2   ((p2) + 3)

Function Documentation

◆ BKE_color_managed_colorspace_settings_copy()

◆ BKE_color_managed_colorspace_settings_equals()

bool BKE_color_managed_colorspace_settings_equals ( const ColorManagedColorspaceSettings * settings1,
const ColorManagedColorspaceSettings * settings2 )

Definition at line 2017 of file colortools.cc.

References ColorManagedColorspaceSettings::name, and STREQ.

Referenced by image_save_post().

◆ BKE_color_managed_colorspace_settings_init()

void BKE_color_managed_colorspace_settings_init ( ColorManagedColorspaceSettings * colorspace_settings)

◆ BKE_color_managed_display_settings_copy()

◆ BKE_color_managed_display_settings_init()

◆ BKE_color_managed_view_settings_blend_read_data()

◆ BKE_color_managed_view_settings_blend_write()

◆ BKE_color_managed_view_settings_copy()

◆ BKE_color_managed_view_settings_copy_keep_curve_mapping()

void BKE_color_managed_view_settings_copy_keep_curve_mapping ( ColorManagedViewSettings * new_settings,
const ColorManagedViewSettings * settings )

◆ BKE_color_managed_view_settings_free()

◆ BKE_color_managed_view_settings_init()

◆ BKE_curvemap_evaluateF()

◆ BKE_curvemap_handle_set()

void BKE_curvemap_handle_set ( CurveMap * cuma,
int type )

◆ BKE_curvemap_insert()

◆ BKE_curvemap_remove()

void BKE_curvemap_remove ( CurveMap * cuma,
short flag )

Removes with flag set.

Definition at line 217 of file colortools.cc.

References b, CurveMap::curve, CurveMapPoint::flag, flag, MEM_freeN(), MEM_malloc_arrayN(), and CurveMap::totpoint.

Referenced by BKE_curvemapping_changed(), and curvemap_buttons_layout().

◆ BKE_curvemap_remove_point()

bool BKE_curvemap_remove_point ( CurveMap * cuma,
CurveMapPoint * point )

Remove specified point.

Definition at line 188 of file colortools.cc.

References b, CurveMap::curve, MEM_freeN(), MEM_malloc_arrayN(), and CurveMap::totpoint.

◆ BKE_curvemap_reset()

◆ BKE_curvemapping_add()

◆ BKE_curvemapping_blend_read()

◆ BKE_curvemapping_blend_write()

◆ BKE_curvemapping_changed()

◆ BKE_curvemapping_changed_all()

void BKE_curvemapping_changed_all ( CurveMapping * cumap)

◆ BKE_curvemapping_compute_range_dividers()

void BKE_curvemapping_compute_range_dividers ( const CurveMapping * curve_mapping,
float dividers[CM_TOT] )

◆ BKE_curvemapping_compute_slopes()

void BKE_curvemapping_compute_slopes ( const CurveMapping * curve_mapping,
float start_slopes[CM_TOT],
float end_slopes[CM_TOT] )

◆ BKE_curvemapping_copy()

◆ BKE_curvemapping_copy_data()

◆ BKE_curvemapping_curves_blend_write()

void BKE_curvemapping_curves_blend_write ( BlendWriter * writer,
const CurveMapping * cumap )

◆ BKE_curvemapping_evaluate3F()

void BKE_curvemapping_evaluate3F ( const CurveMapping * cumap,
float vecout[3],
const float vecin[3] )

◆ BKE_curvemapping_evaluate_premulRGB()

void BKE_curvemapping_evaluate_premulRGB ( const CurveMapping * cumap,
unsigned char vecout_byte[3],
const unsigned char vecin_byte[3] )

◆ BKE_curvemapping_evaluate_premulRGBF()

void BKE_curvemapping_evaluate_premulRGBF ( const CurveMapping * cumap,
float vecout[3],
const float vecin[3] )

◆ BKE_curvemapping_evaluate_premulRGBF_ex()

void BKE_curvemapping_evaluate_premulRGBF_ex ( const CurveMapping * cumap,
float vecout[3],
const float vecin[3],
const float black[3],
const float bwmul[3] )

Same as BKE_curvemapping_evaluate_premulRGBF but black/bwmul are passed as args for the compositor where they can change per pixel.

Use in conjunction with BKE_curvemapping_set_black_white_ex

Parameters
blackUse instead of cumap->black
bwmulUse instead of cumap->bwmul

Definition at line 1191 of file colortools.cc.

References b, BKE_curvemap_evaluateF(), CurveMapping::cm, copy_v3_v3(), CURVE_TONE_FILMLIKE, CURVE_TONE_STANDARD, evaluate_film_like(), output, and CurveMapping::tone.

Referenced by BKE_curvemapping_evaluate_premulRGBF(), and blender::nodes::node_composite_rgb_curves_cc::node_build_multi_function().

◆ BKE_curvemapping_evaluateF()

float BKE_curvemapping_evaluateF ( const CurveMapping * cumap,
int cur,
float value )

Single curve, with table check. Works with curve 'cur'.

Definition at line 1095 of file colortools.cc.

References BKE_curvemap_evaluateF(), CurveMapping::clipr, CurveMapping::cm, CUMA_DO_CLIP, CurveMapping::flag, rctf::ymax, and rctf::ymin.

Referenced by blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::active_jitter(), blender::seq::HueCorrectApplyOp::apply(), BKE_brush_calc_curve_factors(), BKE_brush_curve_strength(), BKE_curvemapping_integrate_clamped(), BKE_paint_randomize_color(), blender::ed::sculpt_paint::brush_dynamic_size_get(), blender::ed::sculpt_paint::greasepencil::brush_radius(), blender::ed::sculpt_paint::brush_radius_factor(), brush_strength(), blender::ed::sculpt_paint::brush_strength_factor(), blender::nodes::node_shader_curves_cc::flt::CurveFloatFunction::call(), blender::draw::gpencil::cdf_from_curvemapping(), blender::eevee::Sampling::cdf_from_curvemapping(), blender::ed::sculpt_paint::CombOperationExecutor::comb_projected(), blender::ed::sculpt_paint::CombOperationExecutor::comb_spherical(), blender::deform_drawing(), blender::deform_drawing(), do_clump_level(), do_rough_curve(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::execute(), blender::nodes::node_composite_time_curves_cc::TimeCurveOperation::execute(), Freestyle_evaluateCurveMappingF(), blender::ed::sculpt_paint::vwpaint::get_brush_alpha_data(), blender::ed::greasepencil::get_frame_falloff(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_easing_calc(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), blender::hook_falloff(), hook_falloff(), blender::nodes::node_composite_huecorrect_cc::hue_correct(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::ed::greasepencil::opacity_from_input_sample(), blender::ed::sculpt_paint::paint_brush_update(), blender::ed::sculpt_paint::paint_space_stroke_spacing_variable(), blender::ed::sculpt_paint::paint_stroke_jitter_pos(), blender::ed::sculpt_paint::image::ops::paint::paint_stroke_update_step(), blender::ed::sculpt_paint::auto_mask::process_cavity_factor(), project_paint_uvpixel_mask(), blender::ed::greasepencil::radius_from_input_sample(), blender::ed::greasepencil::randomize_opacity(), blender::ed::greasepencil::randomize_radius(), blender::ed::greasepencil::randomize_rotation(), blender::ed::greasepencil::randomize_rotation(), time_colorfn(), blender::ed::sculpt_paint::vwpaint::update_cache_variants(), warpModifier_do(), and weightvg_do_map().

◆ BKE_curvemapping_evaluateRGBF()

void BKE_curvemapping_evaluateRGBF ( const CurveMapping * cumap,
float vecout[3],
const float vecin[3] )

RGB case, no black/white points, no pre-multiply.

Definition at line 1120 of file colortools.cc.

References BKE_curvemap_evaluateF(), and CurveMapping::cm.

Referenced by blender::nodes::node_shader_curves_cc::rgb::CurveRGBFunction::call(), and rgb_colorfn().

◆ BKE_curvemapping_free()

◆ BKE_curvemapping_free_data()

◆ BKE_curvemapping_get_range_minimums()

void BKE_curvemapping_get_range_minimums ( const CurveMapping * curve_mapping,
float minimums[CM_TOT] )

Definition at line 1286 of file colortools.cc.

References CurveMapping::cm, CM_TOT, i, and CurveMap::mintable.

◆ BKE_curvemapping_init()

void BKE_curvemapping_init ( CurveMapping * cumap)

Call before all evaluation functions.

Definition at line 1360 of file colortools.cc.

References CurveMapping::cm, CM_TOT, curvemap_make_table(), and CurveMap::table.

Referenced by BKE_brush_gen_radial_control_imbuf(), BKE_gpencil_modifier_blend_read_data(), BKE_paint_blend_read_data(), BKE_paint_default_curve(), BKE_particlesettings_clump_curve_init(), BKE_particlesettings_rough_curve_init(), BKE_particlesettings_twist_curve_init(), BKE_sculpt_default_cavity_curve(), BKE_toolsettings_copy(), blo_do_versions_270(), blo_do_versions_280(), blo_do_versions_290(), blo_update_defaults_scene(), blender::ed::sculpt_paint::auto_mask::cache_init(), blender::ed::sculpt_paint::expand::cache_initial_config_set(), blender::ed::sculpt_paint::pose::calc_twist_deform(), blender::ed::sculpt_paint::CombOperationExecutor::comb_projected(), blender::ed::sculpt_paint::CombOperationExecutor::comb_spherical(), blender::ed::sculpt_paint::greasepencil::create_fill_guide_brush(), blender::seq::curves_apply(), deformVerts_do(), blender::ed::sculpt_paint::color::do_paint_brush(), blender::nodes::node_composite_time_curves_cc::TimeCurveOperation::execute(), Freestyle_evaluateCurveMappingF(), blender::ed::sculpt_paint::greasepencil::WeightPaintOperation::get_brush_settings(), blender::nodes::node_shader_curves_cc::flt::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::rgb::gpu_shader_curve_rgb(), blender::nodes::node_shader_curves_cc::vec::gpu_shader_curve_vec(), blender::ed::sculpt_paint::grease_pencil_fill_init(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::greasepencil::grease_pencil_primitive_invoke(), blender::seq::hue_correct_apply(), blender::ed::sculpt_paint::greasepencil::init_brush(), init_data(), init_data(), blender::ed::sculpt_paint::boundary::init_falloff_bmesh(), blender::ed::sculpt_paint::boundary::init_falloff_grids(), blender::ed::sculpt_paint::boundary::init_falloff_mesh(), blender::modifier::greasepencil::init_influence_data(), blender::ed::sculpt_paint::load_tex_cursor(), blender::nodes::node_composite_huecorrect_cc::node_build_multi_function(), blender::nodes::node_composite_rgb_curves_cc::node_build_multi_function(), blender::nodes::node_composite_huecorrect_cc::node_gpu_material(), blender::nodes::node_composite_rgb_curves_cc::node_gpu_material(), node_initexec_curves(), blender::ed::sculpt_paint::greasepencil::EraseOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::TintOperation::on_stroke_begin(), blender::ed::sculpt_paint::paint_stroke_modal(), blender::ed::sculpt_paint::paint_stroke_new(), paint_weight_gradient_exec(), psys_sim_data_init(), radial_control_paint_curve(), blender::ocio::internal::GPUCurveMappping::rasterize(), blender::modifier::greasepencil::read_influence_data(), blender::ed::greasepencil::retrieve_editable_drawings_from_layer_with_falloff(), blender::ed::greasepencil::retrieve_editable_drawings_grouped_per_frame(), blender::ed::greasepencil::retrieve_editable_drawings_with_falloff(), scene_blend_read_data(), scene_init_data(), blender::ed::sculpt_paint::pose::sculpt_pose_do_translate_deform(), blender::nodes::node_shader_curves_cc::flt::sh_node_curve_float_build_multi_function(), blender::nodes::node_shader_curves_cc::rgb::sh_node_curve_rgb_build_multi_function(), blender::nodes::node_shader_curves_cc::vec::sh_node_curve_vec_build_multi_function(), blender::ed::sculpt_paint::smooth_brush_toggle_on(), blender::ed::sculpt_paint::vwpaint::smooth_brush_toggle_on(), blender::seq::sound_equalizermodifier_recreator(), time_colorfn(), uv_sculpt_stroke_init(), warpModifier_do(), and weightvg_do_map().

◆ BKE_curvemapping_is_map_identity()

bool BKE_curvemapping_is_map_identity ( const CurveMapping * curve_mapping,
int index )

Check if the curve map at the index is identity, that is, does nothing. A curve map is said to be identity if:

  • The curve mapping uses extrapolation.
  • Its range is 1.
  • The slope at its start point is 1.
  • The slope at its end point is 1.
  • The number of points is 2.
  • The start point is at (0, 0).
  • The end point is at (1, 1). Note that this could return false even if the curve map is identity, this happens in the case when more than 2 points exist in the curve map but all points are collinear.

Definition at line 1333 of file colortools.cc.

References CurveMapping::cm, CUMA_EXTEND_EXTRAPOLATE, CurveMap::curve, CurveMap::ext_in, CurveMap::ext_out, CurveMapping::flag, CurveMap::maxtable, CurveMap::mintable, CurveMap::totpoint, CurveMapPoint::x, and CurveMapPoint::y.

Referenced by blender::nodes::node_shader_curves_cc::rgb::gpu_shader_curve_rgb(), and blender::nodes::node_composite_rgb_curves_cc::node_gpu_material().

◆ BKE_curvemapping_premultiply()

◆ BKE_curvemapping_reset_view()

void BKE_curvemapping_reset_view ( CurveMapping * cumap)

Reset the view for current curve.

Definition at line 1068 of file colortools.cc.

References CurveMapping::clipr, and CurveMapping::curr.

Referenced by curvemap_tools_func().

◆ BKE_curvemapping_RGBA_does_something()

bool BKE_curvemapping_RGBA_does_something ( const CurveMapping * cumap)

◆ BKE_curvemapping_set_black_white()

void BKE_curvemapping_set_black_white ( CurveMapping * cumap,
const float black[3],
const float white[3] )

◆ BKE_curvemapping_set_black_white_ex()

void BKE_curvemapping_set_black_white_ex ( const float black[3],
const float white[3],
float r_bwmul[3] )

◆ BKE_curvemapping_set_defaults()

◆ BKE_curvemapping_table_F()

void BKE_curvemapping_table_F ( const CurveMapping * cumap,
float ** array,
int * size )

◆ BKE_curvemapping_table_RGBA()

◆ BKE_histogram_update_sample_line()

◆ BKE_scopes_free()

void BKE_scopes_free ( Scopes * scopes)

◆ BKE_scopes_new()

◆ BKE_scopes_update()

void BKE_scopes_update ( Scopes * scopes,
ImBuf * ibuf,
const ColorManagedViewSettings * view_settings,
const ColorManagedDisplaySettings * display_settings )

Definition at line 1732 of file colortools.cc.

References Scopes::accuracy, ScopesUpdateDataChunk::bin_a, ScopesUpdateDataChunk::bin_b, ScopesUpdateDataChunk::bin_g, ScopesUpdateDataChunk::bin_lum, ScopesUpdateDataChunk::bin_r, BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), BLI_YCC_ITU_BT601, BLI_YCC_ITU_BT709, BLI_YCC_JFIF_0_255, ImBuf::byte_buffer, Histogram::channels, ImBuf::channels, CLAMP_MIN, data, ImBufByteBuffer::data, ImBufFloatBuffer::data, Histogram::data_a, Histogram::data_b, Histogram::data_g, Histogram::data_luma, Histogram::data_r, ELEM, ImBuf::float_buffer, TaskParallelSettings::func_reduce, Scopes::hist, IMB_colormanagement_display_processor_new(), IMB_colormanagement_processor_free(), IMB_display_buffer_acquire(), IMB_display_buffer_release(), INIT_MINMAX, ScopesUpdateDataChunk::max, MEM_calloc_arrayN(), MEM_freeN(), ScopesUpdateDataChunk::min, Scopes::minmax, Scopes::ok, Scopes::sample_full, Scopes::sample_lines, scopes_update_cb(), scopes_update_reduce(), SCOPES_WAVEFRM_LUMA, SCOPES_WAVEFRM_RGB, SCOPES_WAVEFRM_RGB_PARADE, SCOPES_WAVEFRM_YCC_601, SCOPES_WAVEFRM_YCC_709, SCOPES_WAVEFRM_YCC_JPEG, TaskParallelSettings::use_threading, TaskParallelSettings::userdata_chunk, TaskParallelSettings::userdata_chunk_size, Scopes::vecscope, Scopes::vecscope_rgb, Scopes::waveform_1, Scopes::waveform_2, Scopes::waveform_3, Scopes::waveform_tot, Scopes::wavefrm_mode, ImBuf::x, Histogram::x_resolution, ImBuf::y, and Histogram::ymax.

Referenced by ED_space_image_scopes_update().

◆ calchandle_curvemap()

void calchandle_curvemap ( BezTriple * bezt,
const BezTriple * prev,
const BezTriple * next )
static

◆ curve_eval_bezier_point()

void curve_eval_bezier_point ( float start[3][3],
float end[3][3],
float * point )
static

◆ curvemap_calc_extend()

float curvemap_calc_extend ( const CurveMapping * cumap,
const CurveMap * cuma,
float x,
const float first[2],
const float last[2] )
static

◆ curvemap_make_table()

◆ evaluate_film_like()

◆ get_bin_float()

BLI_INLINE int get_bin_float ( float f)

Definition at line 1441 of file colortools.cc.

References BLI_INLINE, and CLAMP.

Referenced by scopes_update_cb().

◆ save_sample_line()

◆ scopes_update_cb()

◆ scopes_update_reduce()

void scopes_update_reduce ( const void * __restrict,
void *__restrict chunk_join,
void *__restrict chunk )
static