diff options
Diffstat (limited to 'source/blender/blenlib/intern/math_color_inline.c')
-rw-r--r-- | source/blender/blenlib/intern/math_color_inline.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/source/blender/blenlib/intern/math_color_inline.c b/source/blender/blenlib/intern/math_color_inline.c index 2c7b13b86a2..386452ed592 100644 --- a/source/blender/blenlib/intern/math_color_inline.c +++ b/source/blender/blenlib/intern/math_color_inline.c @@ -62,32 +62,20 @@ MINLINE void linearrgb_to_srgb_v4(float srgb[4], const float linear[4]) srgb[3] = linear[3]; } -MINLINE void linearrgb_to_srgb_uchar3(unsigned char srgb[4], const float linear[4]) +MINLINE void linearrgb_to_srgb_uchar3(unsigned char srgb[3], const float linear[3]) { - int r, g, b; + float srgb_f[3]; - r = 255 * linearrgb_to_srgb(linear[0]); - g = 255 * linearrgb_to_srgb(linear[1]); - b = 255 * linearrgb_to_srgb(linear[2]); - - srgb[0] = FTOCHAR(r); - srgb[1] = FTOCHAR(g); - srgb[2] = FTOCHAR(b); + linearrgb_to_srgb_v3_v3(srgb_f, linear); + F3TOCHAR3(srgb_f, srgb); } MINLINE void linearrgb_to_srgb_uchar4(unsigned char srgb[4], const float linear[4]) { - int r, g, b, a; - - r = 255 * linearrgb_to_srgb(linear[0]); - g = 255 * linearrgb_to_srgb(linear[1]); - b = 255 * linearrgb_to_srgb(linear[2]); - a = 255 * linear[3]; + float srgb_f[4]; - srgb[0] = FTOCHAR(r); - srgb[1] = FTOCHAR(g); - srgb[2] = FTOCHAR(b); - srgb[3] = FTOCHAR(a); + linearrgb_to_srgb_v4(srgb_f, linear); + F4TOCHAR4(srgb_f, srgb); } /* predivide versions to work on associated/premultipled alpha. if this should |