From 9375c941b75462b1e03274b7f7a23a0ae81d00e4 Mon Sep 17 00:00:00 2001 From: Glenn Tester Date: Wed, 5 Dec 2018 17:44:29 +0100 Subject: Fix T57939: animated values in compositing nodes not working. For now this is not part of copy-on-write, and needs extra animation evaluation. Differential Revision: https://developer.blender.org/D4019 --- source/blender/render/intern/source/pipeline.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index a30a72d9dc8..c135d7021e7 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1517,16 +1517,6 @@ static void do_render_seq(Render *re) re->i.cfra = cfra; - if (recurs_depth == 0) { - /* otherwise sequencer animation isn't updated */ - /* TODO(sergey): Currently depsgraph is only used to check whether it is an active - * edit window or not to deal with unkeyed changes. We don't have depsgraph here yet, - * but we also dont' deal with unkeyed changes. But still nice to get proper depsgraph - * within tjhe render pipeline, somehow. - */ - BKE_animsys_evaluate_all_animation(re->main, NULL, re->scene, (float)cfra); // XXX, was BKE_scene_frame_get(re->scene) - } - recurs_depth++; if ((re->r.mode & R_BORDER) && (re->r.mode & R_CROP) == 0) { @@ -1631,6 +1621,7 @@ static void do_render_all_options(Render *re) { Object *camera; bool render_seq = false; + int cfra = re->r.cfra; re->current_scene_update(re->suh, re->scene); @@ -1642,6 +1633,12 @@ static void do_render_all_options(Render *re) BKE_image_all_free_anim_ibufs(re->main, re->r.cfra); BKE_sequencer_all_free_anim_ibufs(re->main, re->r.cfra); + /* Update for sequencer and compositing animation. + * TODO: ideally we would create a depsgraph with a copy of the scene + * like the render engine, but sequencer and compositing do not (yet?) + * work with copy-on-write. */ + BKE_animsys_evaluate_all_animation(re->main, NULL, re->scene, (float)cfra); + if (RE_engine_render(re, 1)) { /* in this case external render overrides all */ } -- cgit v1.2.3