Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/sequencer.c')
-rw-r--r--source/blender/blenkernel/intern/sequencer.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index d5a766ef97e..1488c1c2188 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -2711,6 +2711,33 @@ static void free_anim_seq(Sequence *seq)
}
}
+void BKE_sequence_invalidate_cache(Scene *scene, Sequence *seq)
+{
+ Editing *ed = scene->ed;
+ Sequence *cur;
+ int left = seq->start, right = seq->start + seq->len;
+
+ /* invalidate cache for current sequence */
+ BKE_sequencer_cache_cleanup_sequence(seq);
+
+ /* invalidate cache for all dependent sequences */
+ SEQ_BEGIN (ed, cur)
+ {
+ int cur_left = cur->start, cur_right = cur->start + cur->len;
+
+ /* sequence is outside of changed one, shouldn't be invalidated */
+ if (cur_right < left || cur_left > right)
+ continue;
+
+ /* sequence is below changed one, not dependent on it */
+ if (cur->machine < seq->machine)
+ continue;
+
+ BKE_sequencer_cache_cleanup_sequence(cur);
+ }
+ SEQ_END
+}
+
void BKE_sequencer_free_imbuf(Scene *scene, ListBase *seqbase, int check_mem_usage, int keep_file_handles)
{
Sequence *seq;