diff options
author | Brecht Van Lommel <brecht@blender.org> | 2022-05-20 18:54:43 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2022-05-23 16:34:50 +0300 |
commit | eb5e7d0a31eed698909c23ab0ca89c8fd4929365 (patch) | |
tree | 6332d3f66107492795254d4fbc0f8f3beccfb156 /source/blender/imbuf/IMB_colormanagement.h | |
parent | 469ee7ff1529a1b28ce0b300835ebc42d5c5362f (diff) |
Cleanup: clarify what is scene linear color space in conversion conversion
* Rename ambiguous rgb to scene_linear in some places
* Precompute matrices to directly go to scene instead of through XYZ
* Make function signatures more consistent
Diffstat (limited to 'source/blender/imbuf/IMB_colormanagement.h')
-rw-r--r-- | source/blender/imbuf/IMB_colormanagement.h | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/source/blender/imbuf/IMB_colormanagement.h b/source/blender/imbuf/IMB_colormanagement.h index 94036da9d22..50af946cd95 100644 --- a/source/blender/imbuf/IMB_colormanagement.h +++ b/source/blender/imbuf/IMB_colormanagement.h @@ -76,13 +76,17 @@ BLI_INLINE unsigned char IMB_colormanagement_get_luminance_byte(const unsigned c /** * Conversion between scene linear and other color spaces. */ -BLI_INLINE void IMB_colormanagement_xyz_to_rgb(float rgb[3], const float xyz[3]); -BLI_INLINE void IMB_colormanagement_rgb_to_xyz(float xyz[3], const float rgb[3]); -BLI_INLINE void IMB_colormanagement_rec709_to_rgb(float rgb[3], const float rec709[3]); -BLI_INLINE void IMB_colormanagement_rgb_to_rec709(float rec709[3], const float rgb[3]); -BLI_INLINE void IMB_colormanagement_aces_to_rgb(float rgb[3], const float aces[3]); -BLI_INLINE void IMB_colormanagement_rgb_to_aces(float aces[3], const float rgb[3]); -const float *IMB_colormanagement_get_xyz_to_rgb(void); +BLI_INLINE void IMB_colormanagement_xyz_to_scene_linear(float scene_linear[3], const float xyz[3]); +BLI_INLINE void IMB_colormanagement_scene_linear_to_xyz(float xyz[3], const float scene_linear[3]); +BLI_INLINE void IMB_colormanagement_rec709_to_scene_linear(float scene_linear[3], + const float rec709[3]); +BLI_INLINE void IMB_colormanagement_scene_linear_to_rec709(float rec709[3], + const float scene_linear[3]); +BLI_INLINE void IMB_colormanagement_aces_to_scene_linear(float scene_linear[3], + const float aces[3]); +BLI_INLINE void IMB_colormanagement_scene_linear_to_aces(float aces[3], + const float scene_linear[3]); +const float *IMB_colormanagement_get_xyz_to_scene_linear(void); /** \} */ @@ -196,15 +200,19 @@ void IMB_colormanagement_imbuf_to_float_texture(float *out_buffer, * - Color picking values 0..1 map to scene linear values in the 0..1 range, * so that picked albedo values are energy conserving. */ -void IMB_colormanagement_scene_linear_to_color_picking_v3(float pixel[3]); -void IMB_colormanagement_color_picking_to_scene_linear_v3(float pixel[3]); +void IMB_colormanagement_scene_linear_to_color_picking_v3(float color_picking[3], + const float scene_linear[3]); +void IMB_colormanagement_color_picking_to_scene_linear_v3(float scene_linear[3], + const float color_picking[3]); /** * Conversion between sRGB, for rare cases like hex color or copy/pasting * between UI theme and scene linear colors. */ -void IMB_colormanagement_scene_linear_to_srgb_v3(float pixel[3]); -void IMB_colormanagement_srgb_to_scene_linear_v3(float pixel[3]); +BLI_INLINE void IMB_colormanagement_scene_linear_to_srgb_v3(float srgb[3], + const float scene_linear[3]); +BLI_INLINE void IMB_colormanagement_srgb_to_scene_linear_v3(float scene_linear[3], + const float srgb[3]); /** * Convert pixel from scene linear to display space using default view |