diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-08-08 20:46:40 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-08-08 20:46:40 +0400 |
commit | a0a67d298416946fff9ac824c9d9d7907a903fb5 (patch) | |
tree | e123e6950d3ca2bd66c8c4f14982939180e19e4c /source/blender/blenkernel/intern/seqcache.c | |
parent | 2a78c2d30405d17d804125e903e3fbec0f10d582 (diff) |
Sequencer: initial support of refreshing only changed sequences
Before this the the whole sequencer cache would be invalidated
when hanging sequence settings.
This was completely annoying because changing color balance
settings would re-load image file for which color balance
is happening on every change,
In fact it's still an issue if color balance is changing for
image strip itself, but if this strip has got effect and
color balance is changing for it file wouldn't be reloaded.
Diffstat (limited to 'source/blender/blenkernel/intern/seqcache.c')
-rw-r--r-- | source/blender/blenkernel/intern/seqcache.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/seqcache.c b/source/blender/blenkernel/intern/seqcache.c index 4f2eaba82a5..a4ea5d1fb26 100644 --- a/source/blender/blenkernel/intern/seqcache.c +++ b/source/blender/blenkernel/intern/seqcache.c @@ -170,6 +170,19 @@ void BKE_sequencer_cache_cleanup(void) } } +static int seqcache_key_check_seq(void *userkey, void *userdata) +{ + SeqCacheKey *key = (SeqCacheKey *) userkey; + Sequence *seq = (Sequence *) userdata; + + return key->seq == seq; +} + +void BKE_sequencer_cache_cleanup_sequence(Sequence *seq) +{ + IMB_moviecache_cleanup(moviecache, seqcache_key_check_seq, seq); +} + struct ImBuf *BKE_sequencer_cache_get(SeqRenderData context, Sequence *seq, float cfra, seq_stripelem_ibuf_t type) { if (moviecache && seq) { |