diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-09-21 05:40:20 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-09-21 05:40:20 +0400 |
commit | d0e13b331fd3a631995453b1b08f659463e65440 (patch) | |
tree | 011d73a361a62eda66bafccbb1b942f2df936aba /source/blender/nodes | |
parent | efbda5c53e85f60221dcec8b0d8ec85da6f86bcc (diff) |
Error reported by Daniel Salazar, Compositor color is wrong since my fix.
this is because of fairly confusing logic, when an SRGB image has a float buffer added its always LINEAR, so we have to account for this elsewhere.
So the conversion from byte to float works like this:
* NONE -> NON-LINEAR
* SRGB/LINEAR -> LINEAR
...but none change the profile variable.
Diffstat (limited to 'source/blender/nodes')
-rw-r--r-- | source/blender/nodes/intern/CMP_nodes/CMP_image.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_image.c b/source/blender/nodes/intern/CMP_nodes/CMP_image.c index 545399fb2d0..266060c5cc5 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_image.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_image.c @@ -78,7 +78,7 @@ static CompBuf *node_composit_get_image(RenderData *rd, Image *ima, ImageUser *i /* now we need a float buffer from the image * with matching color management */ if(rd->color_mgt_flag & R_COLOR_MANAGEMENT) { - if(ibuf->profile == IB_PROFILE_LINEAR_RGB) { + if(ibuf->profile != IB_PROFILE_NONE) { rect= ibuf->rect_float; } else { @@ -88,7 +88,7 @@ static CompBuf *node_composit_get_image(RenderData *rd, Image *ima, ImageUser *i } } else { - if(ibuf->profile != IB_PROFILE_LINEAR_RGB) { + if(ibuf->profile == IB_PROFILE_NONE) { rect= ibuf->rect_float; } else { |