diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-06-23 12:25:52 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-06-23 12:33:58 +0400 |
commit | 3bd965bc03500c552e043ad7e0eb55853e2b0755 (patch) | |
tree | f6ff45aa97772918389add4b2fb829f3690dae8c | |
parent | 8cea610e74f4041388cd0a926de08abcea9d4092 (diff) |
Fix T40764: Keyframed Render Layers Don't Work as Intended
4 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/render/intern/include/renderpipeline.h b/source/blender/render/intern/include/renderpipeline.h index e713d4880d6..a831ab3c29c 100644 --- a/source/blender/render/intern/include/renderpipeline.h +++ b/source/blender/render/intern/include/renderpipeline.h @@ -34,11 +34,13 @@ #define __RENDERPIPELINE_H__ struct Render; +struct RenderData; struct RenderLayer; struct RenderResult; struct RenderLayer *render_get_active_layer(struct Render *re, struct RenderResult *rr); float panorama_pixel_rot(struct Render *re); +void render_update_anim_renderdata(struct Render *re, struct RenderData *rd); #endif /* __RENDERPIPELINE_H__ */ diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index b28d1debfec..3e72ef06a67 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -5146,8 +5146,10 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l lay &= 0xFF000000; /* applies changes fully */ - if ((re->r.scemode & (R_NO_FRAME_UPDATE|R_BUTS_PREVIEW|R_VIEWPORT_PREVIEW))==0) + if ((re->r.scemode & (R_NO_FRAME_UPDATE|R_BUTS_PREVIEW|R_VIEWPORT_PREVIEW))==0) { BKE_scene_update_for_newframe(re->eval_ctx, re->main, re->scene, lay); + render_update_anim_renderdata(re, &re->scene->r); + } /* if no camera, viewmat should have been set! */ if (use_camera_view && camera) { diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c index 9017e7ff92a..1df701c48eb 100644 --- a/source/blender/render/intern/source/external_engine.c +++ b/source/blender/render/intern/source/external_engine.c @@ -60,6 +60,7 @@ #include "RE_bake.h" #include "initrender.h" +#include "renderpipeline.h" #include "render_types.h" #include "render_result.h" @@ -575,6 +576,7 @@ int RE_engine_render(Render *re, int do_all) } BKE_scene_update_for_newframe(re->eval_ctx, re->main, re->scene, lay); + render_update_anim_renderdata(re, &re->scene->r); } /* create render result */ diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index d4f089d7c3b..bdd911df33b 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -730,7 +730,7 @@ void RE_ChangeResolution(Render *re, int winx, int winy, rcti *disprect) /* update some variables that can be animated, and otherwise wouldn't be due to * RenderData getting copied once at the start of animation render */ -static void render_update_anim_renderdata(Render *re, RenderData *rd) +void render_update_anim_renderdata(Render *re, RenderData *rd) { /* filter */ re->r.gauss = rd->gauss; |