|
Blender V4.3
|
#include "BLI_math_base.h"#include "BLI_math_color.h"#include "BLI_utildefines.h"#include <math.h>Go to the source code of this file.
Macros | |
| #define | __MATH_COLOR_INLINE_C__ |
Functions | |
| MINLINE void | srgb_to_linearrgb_v4 (float linear[4], const float srgb[4]) |
| MINLINE void | linearrgb_to_srgb_v4 (float srgb[4], const float linear[4]) |
| MINLINE void | linearrgb_to_srgb_uchar3 (unsigned char srgb[3], const float linear[3]) |
| MINLINE void | linearrgb_to_srgb_uchar4 (unsigned char srgb[4], const float linear[4]) |
| MINLINE void | srgb_to_linearrgb_predivide_v4 (float linear[4], const float srgb[4]) |
| MINLINE void | linearrgb_to_srgb_predivide_v4 (float srgb[4], const float linear[4]) |
| MINLINE unsigned short | to_srgb_table_lookup (const float f) |
| MINLINE void | linearrgb_to_srgb_ushort4 (unsigned short srgb[4], const float linear[4]) |
| MINLINE void | srgb_to_linearrgb_uchar4 (float linear[4], const unsigned char srgb[4]) |
| MINLINE void | srgb_to_linearrgb_uchar4_predivide (float linear[4], const unsigned char srgb[4]) |
| MINLINE void | rgba_uchar_args_set (uchar col[4], const uchar r, const uchar g, const uchar b, const uchar a) |
| MINLINE void | rgba_float_args_set (float col[4], const float r, const float g, const float b, const float a) |
| MINLINE void | rgba_uchar_args_test_set (uchar col[4], const uchar r, const uchar g, const uchar b, const uchar a) |
| MINLINE void | cpack_cpy_3ub (unsigned char r_col[3], const unsigned int pack) |
| MINLINE int | compare_rgb_uchar (const unsigned char col_a[3], const unsigned char col_b[3], const int limit) |
| MINLINE float | dither_random_value (float s, float t) |
| MINLINE void | float_to_byte_dither_v3 (unsigned char b[3], const float f[3], float dither, float s, float t) |
| MINLINE void | premul_to_straight_v4_v4 (float straight[4], const float premul[4]) |
| MINLINE void | premul_to_straight_v4 (float color[4]) |
| MINLINE void | straight_to_premul_v4_v4 (float premul[4], const float straight[4]) |
| MINLINE void | straight_to_premul_v4 (float color[4]) |
| MINLINE void | straight_uchar_to_premul_float (float result[4], const unsigned char color[4]) |
| MINLINE void | premul_float_to_straight_uchar (unsigned char *result, const float color[4]) |
RGB/Gray-Scale Functions | |
| |
| MINLINE float | rgb_to_grayscale (const float rgb[3]) |
| MINLINE unsigned char | rgb_to_grayscale_byte (const unsigned char rgb[3]) |
Variables | |
| float | BLI_color_from_srgb_table [256] |
| unsigned short | BLI_color_to_srgb_table [0x10000] |
| #define __MATH_COLOR_INLINE_C__ |
Definition at line 20 of file math_color_inline.c.
| MINLINE int compare_rgb_uchar | ( | const unsigned char | col_a[3], |
| const unsigned char | col_b[3], | ||
| const int | limit ) |
Definition at line 217 of file math_color_inline.c.
Definition at line 185 of file math_color_inline.c.
Return triangle noise in [-0.5..1.5] range.
Definition at line 235 of file math_color_inline.c.
Referenced by float_to_byte_dither_v3(), float_to_byte_dither_v4(), and ushort_to_byte_dither_v4().
| MINLINE void float_to_byte_dither_v3 | ( | unsigned char | b[3], |
| const float | f[3], | ||
| float | dither, | ||
| float | s, | ||
| float | t ) |
Definition at line 250 of file math_color_inline.c.
References b, dither_random_value(), and unit_float_to_uchar_clamp.
Referenced by do_projectpaint_draw(), and do_projectpaint_thread().
Definition at line 80 of file math_color_inline.c.
References linearrgb_to_srgb_v3_v3().
Referenced by IMB_buffer_byte_from_byte(), IMB_buffer_float_from_byte(), and IMB_buffer_float_from_float().
Definition at line 36 of file math_color_inline.c.
References linearrgb_to_srgb_v3_v3(), and unit_float_to_uchar_clamp_v3.
Referenced by paint_2d_bucket_fill(), and project_paint_uvpixel_init().
Definition at line 44 of file math_color_inline.c.
References linearrgb_to_srgb_v4(), and unit_float_to_uchar_clamp_v4.
Referenced by blender::BLI_color_convert_to_theme4b(), blender::ed::object::convert_float_color_to_byte_color(), blender::ColorSceneLinear4f< Alpha >::encode(), and Freestyle::BlenderStrokeRenderer::GenerateStrokeMesh().
Definition at line 123 of file math_color_inline.c.
References to_srgb_table_lookup(), and unit_float_to_ushort_clamp.
Referenced by IMB_buffer_byte_from_float().
Definition at line 30 of file math_color_inline.c.
References linearrgb_to_srgb_v3_v3().
Referenced by blender::BLI_color_convert_to_theme4f(), IMB_buffer_byte_from_byte(), IMB_buffer_float_from_byte(), IMB_buffer_float_from_float(), linearrgb_to_srgb_uchar4(), and blender::io::ply::load_plydata().
Definition at line 309 of file math_color_inline.c.
References unit_float_to_uchar_clamp.
Referenced by color_balance_byte(), curves_apply_threaded(), do_projectpaint_soften(), IMB_buffer_byte_from_float(), IMB_buffer_byte_from_float_mask(), paint_2d_ibuf_rgb_set(), project_paint_PickColor(), scene_linear_to_image_chunk_byte(), blender::imbuf::transform::store_premul_float_sample(), store_premul_pixel(), and whiteBalance_apply_threaded().
Definition at line 279 of file math_color_inline.c.
References premul_to_straight_v4_v4().
Referenced by project_paint_uvpixel_init().
Definition at line 262 of file math_color_inline.c.
Referenced by copy_original_alpha_channel(), ibuftoimage(), IMB_buffer_byte_from_float(), IMB_buffer_byte_from_float_mask(), IMB_colormanagement_imbuf_to_float_texture(), partial_buffer_update_rect(), premul_to_straight_v4(), blender::ColorSceneLinear4f< Alpha >::unpremultiply_alpha(), and blender::compositor::BrightnessOperation::update_memory_buffer_partial().
ITU-R BT.709 primaries https://en.wikipedia.org/wiki/Relative_luminance
Real values are: Y = 0.2126390059(R) + 0.7151686788(G) + 0.0721923154(B) according to: "Derivation of Basic Television Color Equations", RP 177-1993
As this sums slightly above 1.0, the document recommends to use: 0.2126(R) + 0.7152(G) + 0.0722(B), as used here.
The high precision values are used to calculate the rounded byte weights so they add up to 255: 54(R) + 182(G) + 19(B)
Definition at line 203 of file math_color_inline.c.
Referenced by button2d_draw_intern(), blender::bke::color_to_bool(), blender::bke::color_to_float(), blender::bke::color_to_int(), ED_view3d_text_colors_get(), file_draw_preview(), blender::nodes::node_fn_compare_cc::get_multi_function(), ui_tooltip_region_draw_cb(), and widget_swatch().
| MINLINE unsigned char rgb_to_grayscale_byte | ( | const unsigned char | rgb[3] | ) |
Definition at line 208 of file math_color_inline.c.
Referenced by blf_glyph_cache_add_svg(), color_ensure_contrast_v3(), drw_text_cache_draw_ex(), icon_draw_size(), widget_active_color(), and widget_state_numslider().
| MINLINE void rgba_float_args_set | ( | float | col[4], |
| const float | r, | ||
| const float | g, | ||
| const float | b, | ||
| const float | a ) |
Definition at line 165 of file math_color_inline.c.
Referenced by default_paint_slot_color_get(), blender::ed::space_node::frame_node_draw_background(), blender::ed::space_node::node_draw_basis(), and blender::ed::space_node::node_draw_hidden().
| MINLINE void rgba_uchar_args_set | ( | uchar | col[4], |
| const uchar | r, | ||
| const uchar | g, | ||
| const uchar | b, | ||
| const uchar | a ) |
Definition at line 156 of file math_color_inline.c.
Referenced by action_group_colors_sync().
| MINLINE void rgba_uchar_args_test_set | ( | uchar | col[4], |
| const uchar | r, | ||
| const uchar | g, | ||
| const uchar | b, | ||
| const uchar | a ) |
Definition at line 174 of file math_color_inline.c.
Definition at line 57 of file math_color_inline.c.
References srgb_to_linearrgb_v3_v3().
Referenced by IMB_buffer_byte_from_byte(), IMB_buffer_byte_from_float(), IMB_buffer_float_from_float(), and srgb_to_linearrgb_uchar4_predivide().
Definition at line 131 of file math_color_inline.c.
References BLI_color_from_srgb_table.
Referenced by blender::BLI_color_convert_to_scene_linear(), blender::realtime_compositor::compute_marker_points(), blender::ColorSceneLinearByteEncoded4b< Alpha >::decode(), blender::io::obj::geom_add_mrgb_colors(), IMB_buffer_float_from_byte(), project_paint_uvpixel_init(), and srgb_to_linearrgb_uchar4_predivide().
Definition at line 139 of file math_color_inline.c.
References srgb_to_linearrgb_predivide_v4(), and srgb_to_linearrgb_uchar4().
Referenced by IMB_buffer_float_from_byte().
Definition at line 24 of file math_color_inline.c.
References srgb_to_linearrgb_v3_v3().
Referenced by add_ibuf_for_tile(), blender::ed::greasepencil::add_material_from_template(), blender::draw::overlay::Fade::begin_sync(), blender::draw::overlay::Grid::begin_sync(), blender::draw::overlay::MeshUVs::begin_sync(), blender::draw::overlay::ModeTransfer::begin_sync(), blf_draw_buffer__start(), blender::BLI_color_convert_to_scene_linear(), blo_do_versions_280(), buf_rectfill_area(), blender::io::ply::convert_ply_to_mesh(), DRW_globals_update(), blender::draw::overlay::EditText::end_sync(), blender::draw::overlay::MeshUVs::end_sync(), IMB_buffer_byte_from_byte(), IMB_buffer_byte_from_float(), IMB_buffer_float_from_float(), OVERLAY_edit_text_draw(), OVERLAY_edit_uv_cache_init(), OVERLAY_fade_cache_init(), OVERLAY_grid_cache_init(), OVERLAY_mode_transfer_cache_populate(), SEQ_render_pixel_from_sequencer_space_v4(), blender::io::grease_pencil::unpack_nano_color(), and use_bone_color().
Definition at line 293 of file math_color_inline.c.
References straight_to_premul_v4_v4().
Referenced by blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::call(), do_display_buffer_apply_thread(), fill_rect_alpha_under(), paint_2d_bucket_fill(), paint_2d_fill_add_pixel_byte(), paint_sample_color(), partial_buffer_update_rect(), blender::compositor::premultiply_alpha(), and blender::compositor::BrightnessOperation::update_memory_buffer_partial().
Definition at line 284 of file math_color_inline.c.
Referenced by copy_original_alpha_channel(), blender::ColorSceneLinear4f< Alpha >::premultiply_alpha(), project_paint_uvpixel_init(), and straight_to_premul_v4().
Definition at line 298 of file math_color_inline.c.
Referenced by blender::imbuf::transform::add_subsample(), color_balance_byte(), curves_apply_threaded(), do_projectpaint_soften(), load_premul_pixel(), paint_2d_ibuf_rgb_get(), pixels_to_scene_linear_byte(), project_paint_PickColor(), and whiteBalance_apply_threaded().
Definition at line 108 of file math_color_inline.c.
References BLI_color_to_srgb_table.
Referenced by linearrgb_to_srgb_ushort4().
|
extern |
Definition at line 781 of file math_color.cc.
Referenced by BLI_init_srgb_conversion(), blender::draw::AttributeConverter< ColorGeometry4b >::convert(), blender::draw::particle_pack_mcol(), and srgb_to_linearrgb_uchar4().
|
extern |
Definition at line 782 of file math_color.cc.
Referenced by BLI_init_srgb_conversion(), and to_srgb_table_lookup().