diff options
author | Richard Antalik <richardantalik@gmail.com> | 2021-01-11 13:28:49 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2021-01-11 13:38:33 +0300 |
commit | 445ebcaa308eebfd7f4c3e3e63bfb2cd1dab6a2d (patch) | |
tree | 7764b01f35732e09032f4d6ac3959a94d4908edb /source | |
parent | 54f8a5dd737388d89332f3074eba01edc9efa8c1 (diff) |
VSE: store raw images in cache
Previously raw images were not cached if image wasn't preprocessed.
This caused issue, that image had to be read from disk on every redraw.
Effect strips must be excluded, because this would cause problem with
invalidation. Effect strips can use preprocessing however. This is
mainly to allow usimg modifiers on them.
This change should follow rBf448ff2afe7a77, but I have wrongly assumed,
that it has been implemented already.
ref T80278
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/sequencer/intern/render.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/sequencer/intern/render.c b/source/blender/sequencer/intern/render.c index 8d6a61f3c5d..cd993ae45c1 100644 --- a/source/blender/sequencer/intern/render.c +++ b/source/blender/sequencer/intern/render.c @@ -728,12 +728,12 @@ static ImBuf *seq_render_preprocess_ibuf(const SeqRenderData *context, use_preprocess = true; } - if (use_preprocess) { - /* Proxies are not stored in cache. */ - if (!is_proxy_image) { - seq_cache_put(context, seq, timeline_frame, SEQ_CACHE_STORE_RAW, ibuf, false); - } + /* Proxies and effect strips are not stored in cache. */ + if (!is_proxy_image && (seq->type & SEQ_TYPE_EFFECT) == 0) { + seq_cache_put(context, seq, timeline_frame, SEQ_CACHE_STORE_RAW, ibuf, false); + } + if (use_preprocess) { ibuf = input_preprocess(context, seq, timeline_frame, ibuf); } |