Blender V4.3
BKE_colortools.hh File Reference

Go to the source code of this file.

Enumerations

enum  { CURVEMAP_SLOPE_NEGATIVE = 0 , CURVEMAP_SLOPE_POSITIVE = 1 , CURVEMAP_SLOPE_POS_NEG = 2 }
 

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])
 
void BKE_curvemapping_reset_view (CurveMapping *cumap)
 
void BKE_curvemap_reset (CurveMap *cuma, const rctf *clipr, int preset, int slope)
 
void BKE_curvemap_remove (CurveMap *cuma, short flag)
 
bool BKE_curvemap_remove_point (CurveMap *cuma, CurveMapPoint *point)
 
CurveMapPointBKE_curvemap_insert (CurveMap *cuma, float x, float y)
 
void BKE_curvemap_handle_set (CurveMap *cuma, int type)
 
void BKE_curvemapping_changed (CurveMapping *cumap, bool rem_doubles)
 
void BKE_curvemapping_changed_all (CurveMapping *cumap)
 
void BKE_curvemapping_init (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])
 
void BKE_curvemapping_evaluate_premulRGB (const CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3])
 
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])
 
bool BKE_curvemapping_RGBA_does_something (const 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_get_range_minimums (const CurveMapping *curve_mapping, float minimums[4])
 
void BKE_curvemapping_compute_range_dividers (const CurveMapping *curve_mapping, float dividers[4])
 
void BKE_curvemapping_compute_slopes (const CurveMapping *curve_mapping, float start_slopes[4], float end_slopes[4])
 
bool BKE_curvemapping_is_map_identity (const CurveMapping *curve_mapping, int index)
 
void BKE_curvemapping_premultiply (CurveMapping *cumap, bool restore)
 
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)
 
void BKE_histogram_update_sample_line (Histogram *hist, ImBuf *ibuf, const ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings)
 
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_render (ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings, const char *view_transform)
 
void BKE_color_managed_view_settings_init_default (ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings)
 
void BKE_color_managed_view_settings_copy (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, 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)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CURVEMAP_SLOPE_NEGATIVE 
CURVEMAP_SLOPE_POSITIVE 
CURVEMAP_SLOPE_POS_NEG 

Definition at line 42 of file BKE_colortools.hh.

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 2007 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()

void BKE_color_managed_display_settings_init ( ColorManagedDisplaySettings * settings)

◆ BKE_color_managed_view_settings_blend_read_data()

void BKE_color_managed_view_settings_blend_read_data ( BlendDataReader * reader,
ColorManagedViewSettings * settings )

◆ BKE_color_managed_view_settings_blend_write()

void BKE_color_managed_view_settings_blend_write ( BlendWriter * writer,
ColorManagedViewSettings * settings )

Definition at line 1976 of file colortools.cc.

References BKE_curvemapping_blend_write().

Referenced by BKE_image_format_blend_write(), and scene_blend_write().

◆ BKE_color_managed_view_settings_copy()

◆ BKE_color_managed_view_settings_free()

◆ BKE_color_managed_view_settings_init_default()

void BKE_color_managed_view_settings_init_default ( ColorManagedViewSettings * view_settings,
const ColorManagedDisplaySettings * display_settings )

Initialize view settings which are best suitable for viewing non-render images. For example,s movie clips while tracking.

Definition at line 1942 of file colortools.cc.

References IMB_colormanagement_init_default_view_settings().

Referenced by BKE_image_format_init().

◆ BKE_color_managed_view_settings_init_render()

◆ 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 219 of file colortools.cc.

References b, CurveMap::curve, CurveMapPoint::flag, flag, MEM_freeN(), MEM_mallocN, 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 189 of file colortools.cc.

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

◆ BKE_curvemap_reset()

◆ BKE_curvemapping_add()

CurveMapping * BKE_curvemapping_add ( int tot,
float minx,
float miny,
float maxx,
float maxy )

◆ 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[4] )

◆ BKE_curvemapping_compute_slopes()

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

◆ 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()

◆ 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 1169 of file colortools.cc.

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

Referenced by BKE_curvemapping_evaluate_premulRGBF(), and blender::compositor::ColorCurveOperation::update_memory_buffer_partial().

◆ 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 1073 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(), BKE_brush_calc_curve_factors(), BKE_brush_curve_strength(), BKE_curvemapping_integrate_clamped(), BKE_gpencil_multiframe_falloff_calc(), blender::ed::sculpt_paint::greasepencil::brush_radius(), blender::nodes::node_shader_curves_cc::flt::CurveFloatFunction::call(), blender::eevee::Sampling::cdf_from_curvemapping(), blender::ed::sculpt_paint::CombOperationExecutor::comb_projected(), blender::ed::sculpt_paint::CombOperationExecutor::comb_spherical(), blender::compositor::TimeNode::convert_to_operations(), blender::deform_drawing(), blender::deform_drawing(), density_falloff(), 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::greasepencil::get_multi_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(), hue_correct_apply_threaded(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::ed::greasepencil::opacity_from_input_sample(), blender::ed::sculpt_paint::auto_mask::process_cavity_factor(), project_paint_uvpixel_mask(), blender::ed::greasepencil::radius_from_input_sample(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::randomize_color(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::randomize_opacity(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::randomize_radius(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::randomize_rotation(), time_colorfn(), blender::compositor::HueSaturationValueCorrectOperation::update_memory_buffer_partial(), 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 1098 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()

◆ BKE_curvemapping_init()

void BKE_curvemapping_init ( CurveMapping * cumap)

Call before all evaluation functions.

Definition at line 1338 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_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::nodes::node_composite_huecorrect_cc::HueCorrectShaderNode::compile(), blender::nodes::node_composite_rgb_curves_cc::RGBCurvesShaderNode::compile(), blender::nodes::node_composite_vector_curves_cc::VectorCurvesShaderNode::compile(), blender::compositor::TimeNode::convert_to_operations(), createTransGPencil(), curve_mapping_to_ocio_settings(), curves_apply(), deformVerts_do(), density_falloff(), 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(), hue_correct_apply(), blender::ed::sculpt_paint::greasepencil::init_brush(), init_data(), init_data(), blender::compositor::CurveBaseOperation::init_execution(), 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(), 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_new(), paint_weight_gradient_exec(), psys_sim_data_init(), radial_control_paint_curve(), 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(), SEQ_sound_equalizermodifier_recreator(), 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(), 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 1311 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_composite_rgb_curves_cc::RGBCurvesShaderNode::compile(), and blender::nodes::node_shader_curves_cc::rgb::gpu_shader_curve_rgb().

◆ BKE_curvemapping_premultiply()

◆ BKE_curvemapping_reset_view()

void BKE_curvemapping_reset_view ( CurveMapping * cumap)

Reset the view for current curve.

Definition at line 1046 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()

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