Skip allocating any display buffer and starting any threads

in case image buffer contains byte buffer only and it's
color space matches display space.

It was already check for this case, but it happened later
in color management routines, which is needed for saving
files, but not fast enough for realtime playback of 4K.
This commit is contained in:
Sergey Sharybin 2013-03-15 09:35:12 +00:00
parent 9d5c3264da
commit 42660a204a

@ -1853,6 +1853,14 @@ unsigned char *IMB_display_buffer_acquire(ImBuf *ibuf, const ColorManagedViewSet
applied_view_settings = &default_view_settings;
}
/* early out: no float buffer and byte buffer is already in display space,
* let's just use if
*/
if (ibuf->rect_float == NULL && ibuf->rect_colorspace) {
if (is_ibuf_rect_in_display_space(ibuf, applied_view_settings, display_settings))
return (unsigned char *) ibuf->rect;
}
colormanage_view_settings_to_cache(&cache_view_settings, applied_view_settings);
colormanage_display_settings_to_cache(&cache_display_settings, display_settings);