diff options
author | Richard Antalik <richardantalik@gmail.com> | 2019-05-01 19:50:12 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2019-05-01 19:58:35 +0300 |
commit | a372e5e426e46f38a5fa08affb27f7fa726775b5 (patch) | |
tree | bcd454c2ac505aaae59f9b59146055ba210e8934 | |
parent | fc040335b7a5eeaa3c57bd176656f86f9d56dc48 (diff) |
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
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 14 |
1 files changed, 10 insertions, 4 deletions
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; } |