From a372e5e426e46f38a5fa08affb27f7fa726775b5 Mon Sep 17 00:00:00 2001 From: Richard Antalik Date: Wed, 1 May 2019 09:50:12 -0700 Subject: Fix T61619: Some VSE attributes with keyframes are not sensibly evaluated when the scene is referenced as a strip from another VSE scene Fix T49658: Evaluation / animation of f-curves does not correct for a scene's position within another scene Solution: Evaluate animdata before rendering scene seqbase. Reviewed By: brecht Differential Revision: https://developer.blender.org/D4755 --- source/blender/blenkernel/intern/sequencer.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'source/blender/blenkernel/intern/sequencer.c') diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index f629f6a6d00..19b94977762 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3662,6 +3662,12 @@ static ImBuf *do_render_strip_seqbase(const SeqRenderData *context, seqbase = BKE_sequence_seqbase_get(seq, &offset); if (seqbase && !BLI_listbase_is_empty(seqbase)) { + + if (seq->flag & SEQ_SCENE_STRIPS && seq->scene) { + BKE_animsys_evaluate_all_animation( + context->bmain, context->depsgraph, seq->scene, nr + offset); + } + meta_ibuf = seq_render_strip_stack(context, state, seqbase, @@ -3731,11 +3737,11 @@ static ImBuf *do_render_strip_uncached(const SeqRenderData *context, else { /* scene can be NULL after deletions */ ibuf = seq_render_scene_strip(context, seq, nr, cfra); - - /* Scene strips update all animation, so we need to restore original state.*/ - BKE_animsys_evaluate_all_animation( - context->bmain, context->depsgraph, context->scene, cfra); } + + /* Scene strips update all animation, so we need to restore original state.*/ + BKE_animsys_evaluate_all_animation(context->bmain, context->depsgraph, context->scene, cfra); + break; } -- cgit v1.2.3