diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-08-27 13:01:36 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-08-27 13:01:36 +0400 |
commit | d6a92c9c31423168d3facb747cc215e7b33b6e7b (patch) | |
tree | 3be5d72f1b6154179e3c3811ddb3ddac00ca2b95 /source | |
parent | 1216dcffaaeb9691715fa33e2a160690b3885990 (diff) |
Sequencer: proper cache invalidation when deleting sequences
Solves issue with effects not being recalculated when deleting their input.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 3bcef50a3b4..8aab622148b 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -207,8 +207,10 @@ void BKE_sequence_free(Scene *scene, Sequence *seq) /* free modifiers */ BKE_sequence_modifier_clear(seq); - BKE_sequencer_cache_cleanup_sequence(seq); - BKE_sequencer_preprocessed_cache_cleanup_sequence(seq); + /* free cached data used by this strip, + * also invalidate cache for all dependent sequences + */ + BKE_sequence_invalidate_cache(scene, seq); MEM_freeN(seq); } @@ -2936,6 +2938,9 @@ static void free_anim_seq(Sequence *seq) /* check whether sequence cur depends on seq */ int BKE_sequence_check_depend(Sequence *seq, Sequence *cur) { + if (cur->seq1 == seq || cur->seq2 == seq || cur->seq3 == seq) + return TRUE; + /* sequences are not intersecting in time, assume no dependency exists between them */ if (cur->enddisp < seq->startdisp || cur->startdisp > seq->enddisp) return FALSE; |