fix for rendering sequencer float buffers, need to convert into linear color space for the render buffer.

This commit is contained in:
Campbell Barton 2010-07-13 19:52:04 +00:00
parent 7f8f32db40
commit c5d6665cb3

@ -2473,6 +2473,19 @@ static void do_render_seq(Render * re)
memcpy(rr->rectf, ibuf->rect_float, 4*sizeof(float)*rr->rectx*rr->recty);
/* sequencer float buffer is not in linear color space, convert
* should always be true, use a fake ibuf for the colorspace conversion */
if(ibuf->profile != IB_PROFILE_LINEAR_RGB) {
ImBuf ibuf_dummy;
memset(&ibuf_dummy, 0, sizeof(ImBuf));
ibuf_dummy.profile= ibuf->profile;
ibuf_dummy.x= rr->rectx;
ibuf_dummy.y= rr->recty;
ibuf_dummy.rect_float= rr->rectf;
/* only touch the rr->rectf */
IMB_convert_profile(&ibuf_dummy, IB_PROFILE_LINEAR_RGB);
}
/* TSK! Since sequence render doesn't free the *rr render result, the old rect32
can hang around when sequence render has rendered a 32 bits one before */
if(rr->rect32) {