Blender  V3.3
Enumerations | Functions
BKE_colortools.h 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 (struct CurveMapping *cumap, int tot, float minx, float miny, float maxx, float maxy)
 
struct CurveMapping * BKE_curvemapping_add (int tot, float minx, float miny, float maxx, float maxy)
 
void BKE_curvemapping_free_data (struct CurveMapping *cumap)
 
void BKE_curvemapping_free (struct CurveMapping *cumap)
 
void BKE_curvemapping_copy_data (struct CurveMapping *target, const struct CurveMapping *cumap)
 
struct CurveMapping * BKE_curvemapping_copy (const struct 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 (struct CurveMapping *cumap, const float black[3], const float white[3])
 
void BKE_curvemapping_reset_view (struct CurveMapping *cumap)
 
void BKE_curvemap_reset (struct CurveMap *cuma, const struct rctf *clipr, int preset, int slope)
 
void BKE_curvemap_remove (struct CurveMap *cuma, short flag)
 
bool BKE_curvemap_remove_point (struct CurveMap *cuma, struct CurveMapPoint *cmp)
 
struct CurveMapPoint * BKE_curvemap_insert (struct CurveMap *cuma, float x, float y)
 
void BKE_curvemap_handle_set (struct CurveMap *cuma, int type)
 
void BKE_curvemapping_changed (struct CurveMapping *cumap, bool rem_doubles)
 
void BKE_curvemapping_changed_all (struct CurveMapping *cumap)
 
void BKE_curvemapping_init (struct CurveMapping *cumap)
 
float BKE_curvemap_evaluateF (const struct CurveMapping *cumap, const struct CurveMap *cuma, float value)
 
float BKE_curvemapping_evaluateF (const struct CurveMapping *cumap, int cur, float value)
 
void BKE_curvemapping_evaluate3F (const struct CurveMapping *cumap, float vecout[3], const float vecin[3])
 
void BKE_curvemapping_evaluateRGBF (const struct CurveMapping *cumap, float vecout[3], const float vecin[3])
 
void BKE_curvemapping_evaluate_premulRGB (const struct CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3])
 
void BKE_curvemapping_evaluate_premulRGBF_ex (const struct CurveMapping *cumap, float vecout[3], const float vecin[3], const float black[3], const float bwmul[3])
 
void BKE_curvemapping_evaluate_premulRGBF (const struct CurveMapping *cumap, float vecout[3], const float vecin[3])
 
bool BKE_curvemapping_RGBA_does_something (const struct CurveMapping *cumap)
 
void BKE_curvemapping_table_F (const struct CurveMapping *cumap, float **array, int *size)
 
void BKE_curvemapping_table_RGBA (const struct CurveMapping *cumap, float **array, int *size)
 
void BKE_curvemapping_get_range_minimums (const struct CurveMapping *curve_mapping, float minimums[4])
 
void BKE_curvemapping_compute_range_dividers (const struct CurveMapping *curve_mapping, float dividers[4])
 
void BKE_curvemapping_compute_slopes (const struct CurveMapping *curve_mapping, float start_slopes[4], float end_slopes[4])
 
bool BKE_curvemapping_is_map_identity (const struct CurveMapping *curve_mapping, int index)
 
void BKE_curvemapping_premultiply (struct CurveMapping *cumap, bool restore)
 
void BKE_curvemapping_blend_write (struct BlendWriter *writer, const struct CurveMapping *cumap)
 
void BKE_curvemapping_curves_blend_write (struct BlendWriter *writer, const struct CurveMapping *cumap)
 
void BKE_curvemapping_blend_read (struct BlendDataReader *reader, struct CurveMapping *cumap)
 
void BKE_histogram_update_sample_line (struct Histogram *hist, struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
 
void BKE_scopes_update (struct Scopes *scopes, struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings)
 
void BKE_scopes_free (struct Scopes *scopes)
 
void BKE_scopes_new (struct Scopes *scopes)
 
void BKE_color_managed_display_settings_init (struct ColorManagedDisplaySettings *settings)
 
void BKE_color_managed_display_settings_copy (struct ColorManagedDisplaySettings *new_settings, const struct ColorManagedDisplaySettings *settings)
 
void BKE_color_managed_view_settings_init_render (struct ColorManagedViewSettings *settings, const struct ColorManagedDisplaySettings *display_settings, const char *view_transform)
 
void BKE_color_managed_view_settings_init_default (struct ColorManagedViewSettings *settings, const struct ColorManagedDisplaySettings *display_settings)
 
void BKE_color_managed_view_settings_copy (struct ColorManagedViewSettings *new_settings, const struct ColorManagedViewSettings *settings)
 
void BKE_color_managed_view_settings_free (struct ColorManagedViewSettings *settings)
 
void BKE_color_managed_view_settings_blend_write (struct BlendWriter *writer, struct ColorManagedViewSettings *settings)
 
void BKE_color_managed_view_settings_blend_read_data (struct BlendDataReader *reader, struct ColorManagedViewSettings *settings)
 
void BKE_color_managed_colorspace_settings_init (struct ColorManagedColorspaceSettings *colorspace_settings)
 
void BKE_color_managed_colorspace_settings_copy (struct ColorManagedColorspaceSettings *colorspace_settings, const struct ColorManagedColorspaceSettings *settings)
 
bool BKE_color_managed_colorspace_settings_equals (const struct ColorManagedColorspaceSettings *settings1, const struct ColorManagedColorspaceSettings *settings2)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CURVEMAP_SLOPE_NEGATIVE 
CURVEMAP_SLOPE_POSITIVE 
CURVEMAP_SLOPE_POS_NEG 

Definition at line 40 of file BKE_colortools.h.

Function Documentation

◆ BKE_color_managed_colorspace_settings_copy()

void BKE_color_managed_colorspace_settings_copy ( struct ColorManagedColorspaceSettings *  colorspace_settings,
const struct ColorManagedColorspaceSettings *  settings 
)

◆ BKE_color_managed_colorspace_settings_equals()

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

Referenced by image_save_post().

◆ BKE_color_managed_colorspace_settings_init()

void BKE_color_managed_colorspace_settings_init ( struct ColorManagedColorspaceSettings *  colorspace_settings)

◆ BKE_color_managed_display_settings_copy()

void BKE_color_managed_display_settings_copy ( struct ColorManagedDisplaySettings *  new_settings,
const struct ColorManagedDisplaySettings *  settings 
)

◆ BKE_color_managed_display_settings_init()

void BKE_color_managed_display_settings_init ( struct ColorManagedDisplaySettings *  settings)

◆ BKE_color_managed_view_settings_blend_read_data()

void BKE_color_managed_view_settings_blend_read_data ( struct BlendDataReader *  reader,
struct ColorManagedViewSettings *  settings 
)

◆ BKE_color_managed_view_settings_blend_write()

void BKE_color_managed_view_settings_blend_write ( struct BlendWriter *  writer,
struct ColorManagedViewSettings *  settings 
)

◆ BKE_color_managed_view_settings_copy()

void BKE_color_managed_view_settings_copy ( struct ColorManagedViewSettings *  new_settings,
const struct ColorManagedViewSettings *  settings 
)

◆ BKE_color_managed_view_settings_free()

void BKE_color_managed_view_settings_free ( struct ColorManagedViewSettings *  settings)

◆ BKE_color_managed_view_settings_init_default()

void BKE_color_managed_view_settings_init_default ( struct ColorManagedViewSettings *  settings,
const struct 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 1829 of file colortools.c.

References IMB_colormanagement_init_default_view_settings().

Referenced by BKE_image_format_init().

◆ BKE_color_managed_view_settings_init_render()

void BKE_color_managed_view_settings_init_render ( struct ColorManagedViewSettings *  settings,
const struct ColorManagedDisplaySettings *  display_settings,
const char *  view_transform 
)

Initialize view settings to be best suitable for render type of viewing. This will use default view transform from the OCIO configuration if none is specified.

Referenced by BKE_image_format_init(), blo_do_versions_280(), scene_init_data(), and blender::draw::color_management::viewport_settings_apply().

◆ BKE_curvemap_evaluateF()

float BKE_curvemap_evaluateF ( const struct CurveMapping *  cumap,
const struct CurveMap *  cuma,
float  value 
)

Keep these const CurveMap - to help with thread safety.

Note
Single curve, no table check.
Table should be verified.

Referenced by curve_mapping_apply_pixel().

◆ BKE_curvemap_handle_set()

void BKE_curvemap_handle_set ( struct CurveMap *  cuma,
int  type 
)

◆ BKE_curvemap_insert()

struct CurveMapPoint* BKE_curvemap_insert ( struct CurveMap *  cuma,
float  x,
float  y 
)

◆ BKE_curvemap_remove()

void BKE_curvemap_remove ( struct CurveMap *  cuma,
short  flag 
)

◆ BKE_curvemap_remove_point()

bool BKE_curvemap_remove_point ( struct CurveMap *  cuma,
struct CurveMapPoint *  cmp 
)

Remove specified point.

Definition at line 170 of file colortools.c.

References Freestyle::a, usdtokens::b(), CurveMap::curve, MEM_freeN, MEM_mallocN, point, and CurveMap::totpoint.

◆ BKE_curvemap_reset()

void BKE_curvemap_reset ( struct CurveMap *  cuma,
const struct rctf *  clipr,
int  preset,
int  slope 
)

◆ BKE_curvemapping_add()

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

◆ BKE_curvemapping_blend_read()

void BKE_curvemapping_blend_read ( struct BlendDataReader *  reader,
struct CurveMapping *  cumap 
)

◆ BKE_curvemapping_blend_write()

void BKE_curvemapping_blend_write ( struct BlendWriter *  writer,
const struct CurveMapping *  cumap 
)

◆ BKE_curvemapping_changed()

void BKE_curvemapping_changed ( struct CurveMapping *  cumap,
bool  rem_doubles 
)

◆ BKE_curvemapping_changed_all()

void BKE_curvemapping_changed_all ( struct CurveMapping *  cumap)

◆ BKE_curvemapping_compute_range_dividers()

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

Get the reciprocal of the difference between the maximum and the minimum x value of each curve map table. Evaluation parameters can be multiplied by this value to be normalized. If the difference is zero, 1^8 is returned.

Referenced by blender::nodes::node_shader_curves_cc::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_rgb(), and blender::nodes::node_shader_curves_cc::gpu_shader_curve_vec().

◆ BKE_curvemapping_compute_slopes()

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

Compute the slopes at the start and end points of each curve map. The slopes are multiplied by the range of the curve map to compensate for parameter normalization. If the slope is vertical, 1^8 is returned.

Referenced by blender::nodes::node_shader_curves_cc::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_rgb(), and blender::nodes::node_shader_curves_cc::gpu_shader_curve_vec().

◆ BKE_curvemapping_copy()

struct CurveMapping* BKE_curvemapping_copy ( const struct CurveMapping *  cumap)

◆ BKE_curvemapping_copy_data()

void BKE_curvemapping_copy_data ( struct CurveMapping *  target,
const struct CurveMapping *  cumap 
)

◆ BKE_curvemapping_curves_blend_write()

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

Referenced by scene_blend_write().

◆ BKE_curvemapping_evaluate3F()

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

◆ BKE_curvemapping_evaluate_premulRGB()

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

◆ BKE_curvemapping_evaluate_premulRGBF()

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

◆ BKE_curvemapping_evaluate_premulRGBF_ex()

void BKE_curvemapping_evaluate_premulRGBF_ex ( const struct 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

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

◆ BKE_curvemapping_evaluateF()

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

◆ BKE_curvemapping_evaluateRGBF()

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

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

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

◆ BKE_curvemapping_free()

void BKE_curvemapping_free ( struct CurveMapping *  cumap)

◆ BKE_curvemapping_free_data()

void BKE_curvemapping_free_data ( struct CurveMapping *  cumap)

◆ BKE_curvemapping_get_range_minimums()

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

◆ BKE_curvemapping_init()

void BKE_curvemapping_init ( struct CurveMapping *  cumap)

Call before all evaluation functions.

Definition at line 1235 of file colortools.c.

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

Referenced by BKE_brush_gen_radial_control_imbuf(), BKE_gpencil_brush_preset_set(), BKE_gpencil_modifier_blend_read_data(), BKE_particlesettings_clump_curve_init(), BKE_particlesettings_rough_curve_init(), BKE_particlesettings_twist_curve_init(), blo_do_versions_270(), blo_do_versions_280(), blo_do_versions_290(), blo_do_versions_pre250(), blo_update_defaults_scene(), cloth_brush_apply_brush_foces(), blender::compositor::TimeNode::convert_to_operations(), createTransGPencil(), curve_mapping_to_ocio_settings(), curves_apply(), deformVerts_do(), density_falloff(), ED_gpencil_add_defaults(), Freestyle_evaluateCurveMappingF(), gpencil_init_drawing_brush(), gpencil_interpolate_seq_exec(), gpencil_primitive_update_strokes(), gpencil_sculpt_brush_init(), gpencil_vertexpaint_brush_init(), gpencil_weightpaint_brush_init(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_rgb(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_vec(), hue_correct_apply(), blender::compositor::CurveBaseOperation::init_execution(), initData(), light_init_data(), load_tex_cursor(), node_initexec_curves(), paint_stroke_new(), paint_weight_gradient_exec(), psys_sim_data_init(), radial_control_paint_curve(), scene_init_data(), sculpt_boundary_falloff_factor_init(), SCULPT_do_displacement_eraser_brush(), SCULPT_do_displacement_smear_brush(), SCULPT_do_draw_brush(), SCULPT_do_draw_face_sets_brush(), SCULPT_do_draw_sharp_brush(), SCULPT_do_paint_brush(), SCULPT_do_slide_relax_brush(), SCULPT_do_smear_brush(), sculpt_expand_cache_initial_config_set(), sculpt_pose_do_translate_deform(), sculpt_pose_do_twist_deform(), blender::nodes::node_shader_curves_cc::sh_node_curve_float_build_multi_function(), blender::nodes::node_shader_curves_cc::sh_node_curve_rgb_build_multi_function(), blender::nodes::node_shader_curves_cc::sh_node_curve_vec_build_multi_function(), 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 struct 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.

Referenced by blender::nodes::node_shader_curves_cc::gpu_shader_curve_rgb().

◆ BKE_curvemapping_premultiply()

void BKE_curvemapping_premultiply ( struct CurveMapping *  cumap,
bool  restore 
)

◆ BKE_curvemapping_reset_view()

void BKE_curvemapping_reset_view ( struct CurveMapping *  cumap)

Reset the view for current curve.

Definition at line 946 of file colortools.c.

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

Referenced by curvemap_tools_dofunc().

◆ BKE_curvemapping_RGBA_does_something()

bool BKE_curvemapping_RGBA_does_something ( const struct CurveMapping *  cumap)

◆ BKE_curvemapping_set_black_white()

void BKE_curvemapping_set_black_white ( struct 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()

void BKE_curvemapping_set_defaults ( struct CurveMapping *  cumap,
int  tot,
float  minx,
float  miny,
float  maxx,
float  maxy 
)

◆ BKE_curvemapping_table_F()

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

◆ BKE_curvemapping_table_RGBA()

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

◆ BKE_histogram_update_sample_line()

void BKE_histogram_update_sample_line ( struct Histogram *  hist,
struct ImBuf *  ibuf,
const struct ColorManagedViewSettings *  view_settings,
const struct ColorManagedDisplaySettings *  display_settings 
)

◆ BKE_scopes_free()

void BKE_scopes_free ( struct Scopes *  scopes)

◆ BKE_scopes_new()

void BKE_scopes_new ( struct Scopes *  scopes)

◆ BKE_scopes_update()

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