diff options
author | Olly Funkster <> | 2017-05-16 10:44:20 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-05-16 11:36:33 +0300 |
commit | 06ac6ded66fbbbce6d316ff44880897661b8e276 (patch) | |
tree | fe807af0f96fa4a5f943bcde77f6a3fe341a6b21 /source/blender/imbuf | |
parent | f6afd1b73c99b5141212b55f911bc2ddca2d6afc (diff) |
Fix byte-to-float conversion when using scene strips in sequencer with identical color spaces
Fix T50882: VSE: Blend Modes on Scenes do not layer properly
Fix T51002: Scene strip with Alpha over not working as expected
The byte-to-float conversion was being skipped if the color spaces of the sequence and the scene
are the same, which is the default, resulting in any non-float strips becoming invisible.
Reviewers: sergey
Differential Revision: https://developer.blender.org/D2635
Diffstat (limited to 'source/blender/imbuf')
-rw-r--r-- | source/blender/imbuf/intern/colormanagement.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/imbuf/intern/colormanagement.c b/source/blender/imbuf/intern/colormanagement.c index fc382f02b2c..cdb8f2c6fa2 100644 --- a/source/blender/imbuf/intern/colormanagement.c +++ b/source/blender/imbuf/intern/colormanagement.c @@ -1759,9 +1759,14 @@ void IMB_colormanagement_transform_from_byte_threaded(float *float_buffer, unsig return; } if (STREQ(from_colorspace, to_colorspace)) { - /* If source and destination color spaces are identical, skip - * threading overhead and simply do nothing + /* Because this function always takes a byte buffer and returns a float buffer, it must + * always do byte-to-float conversion of some kind. To avoid threading overhead + * IMB_buffer_float_from_byte is used when color spaces are identical. See T51002. */ + IMB_buffer_float_from_byte(float_buffer, byte_buffer, + IB_PROFILE_SRGB, IB_PROFILE_SRGB, + true, + width, height, width, width); return; } cm_processor = IMB_colormanagement_colorspace_processor_new(from_colorspace, to_colorspace); |