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:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-06-23 12:25:52 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-06-23 12:33:58 +0400
commit3bd965bc03500c552e043ad7e0eb55853e2b0755 (patch)
treef6ff45aa97772918389add4b2fb829f3690dae8c
parent8cea610e74f4041388cd0a926de08abcea9d4092 (diff)
Fix T40764: Keyframed Render Layers Don't Work as Intended
-rw-r--r--source/blender/render/intern/include/renderpipeline.h2
-rw-r--r--source/blender/render/intern/source/convertblender.c4
-rw-r--r--source/blender/render/intern/source/external_engine.c2
-rw-r--r--source/blender/render/intern/source/pipeline.c2
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;