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.
This commit is contained in:
Campbell Barton
2010-09-21 01:40:20 +00:00
parent efbda5c53e
commit d0e13b331f

View File

@@ -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 {