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 CurveMappingBKE_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 CurveMappingBKE_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 CurveMapPointBKE_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 
)