Commit: 345175082b1387270988f0d61fd43f09bbcf6afd
Author: Philipp Oeser
Date:   Tue Oct 16 12:45:41 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB345175082b1387270988f0d61fd43f09bbcf6afd

Fix T57247: Render animation does not respect render single view layer

Reviewers: brecht

Maniphest Tasks: T57247

Differential Revision: https://developer.blender.org/D3800

===================================================================

M       source/blender/editors/render/render_internal.c
M       source/blender/render/extern/include/RE_pipeline.h
M       source/blender/render/intern/source/pipeline.c
M       source/creator/creator_args.c

===================================================================

diff --git a/source/blender/editors/render/render_internal.c 
b/source/blender/editors/render/render_internal.c
index a73f3dd1be6..1ca06beefad 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -342,7 +342,7 @@ static int screen_render_exec(bContext *C, wmOperator *op)
 
        BLI_threaded_malloc_begin();
        if (is_animation)
-               RE_BlenderAnim(re, mainp, scene, camera_override, 
scene->r.sfra, scene->r.efra, scene->r.frame_step);
+               RE_BlenderAnim(re, mainp, scene, single_layer, camera_override, 
scene->r.sfra, scene->r.efra, scene->r.frame_step);
        else
                RE_BlenderFrame(re, mainp, scene, single_layer, 
camera_override, scene->r.cfra, is_write_still);
        BLI_threaded_malloc_end();
@@ -617,7 +617,7 @@ static void render_startjob(void *rjv, short *stop, short 
*do_update, float *pro
        RE_SetReports(rj->re, rj->reports);
 
        if (rj->anim)
-               RE_BlenderAnim(rj->re, rj->main, rj->scene, 
rj->camera_override, rj->scene->r.sfra, rj->scene->r.efra, 
rj->scene->r.frame_step);
+               RE_BlenderAnim(rj->re, rj->main, rj->scene, rj->single_layer, 
rj->camera_override, rj->scene->r.sfra, rj->scene->r.efra, 
rj->scene->r.frame_step);
        else
                RE_BlenderFrame(rj->re, rj->main, rj->scene, rj->single_layer, 
rj->camera_override, rj->scene->r.cfra, rj->write_still);
 
diff --git a/source/blender/render/extern/include/RE_pipeline.h 
b/source/blender/render/extern/include/RE_pipeline.h
index 84e6c9ddd55..cc2bd01718a 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -279,7 +279,8 @@ bool RE_WriteRenderViewsMovie(
 void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene 
*scene,
                      struct ViewLayer *single_layer, struct Object 
*camera_override,
                      int frame, const bool write_still);
-void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene 
*scene, struct Object *camera_override,
+void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene,
+                    struct ViewLayer *single_layer, struct Object 
*camera_override,
                     int sfra, int efra, int tfra);
 #ifdef WITH_FREESTYLE
 void RE_RenderFreestyleStrokes(struct Render *re, struct Main *bmain, struct 
Scene *scene, int render);
diff --git a/source/blender/render/intern/source/pipeline.c 
b/source/blender/render/intern/source/pipeline.c
index b9ebaa8c184..81679caddd9 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -2349,7 +2349,7 @@ static void re_movie_free_all(Render *re, bMovieHandle 
*mh, int totvideos)
 }
 
 /* saves images to disk */
-void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object 
*camera_override,
+void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, ViewLayer 
*single_layer, Object *camera_override,
                     int sfra, int efra, int tfra)
 {
        RenderData rd = scene->r;
@@ -2364,7 +2364,7 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene 
*scene, Object *camera_overri
        BLI_callback_exec(re->main, (ID *)scene, BLI_CB_EVT_RENDER_INIT);
 
        /* do not fully call for each frame, it initializes & pops output 
window */
-       if (!render_initialize_from_main(re, &rd, bmain, scene, NULL, 
camera_override, 0, 1))
+       if (!render_initialize_from_main(re, &rd, bmain, scene, single_layer, 
camera_override, 0, 1))
                return;
 
        if (is_movie) {
@@ -2451,7 +2451,7 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene 
*scene, Object *camera_overri
 
                        /* only border now, todo: camera lens. (ton) */
                        render_initialize_from_main(re, &rd, bmain, scene,
-                                                   NULL, camera_override, 1, 
0);
+                                                   single_layer, 
camera_override, 1, 0);
 
                        if (nfra != scene->r.cfra) {
                                /* Skip this frame, but could update for 
physics and particles system. */
diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c
index 2c80d0205f1..b276a1d884a 100644
--- a/source/creator/creator_args.c
+++ b/source/creator/creator_args.c
@@ -1419,7 +1419,7 @@ static int arg_handle_render_frame(int argc, const char 
**argv, void *data)
                                }
 
                                for (int frame = frame_range_arr[i][0]; frame 
<= frame_range_arr[i][1]; frame++) {
-                                       RE_BlenderAnim(re, bmain, scene, NULL, 
frame, frame, scene->r.frame_step);
+                                       RE_BlenderAnim(re, bmain, scene, NULL, 
NULL, frame, frame, scene->r.frame_step);
                                }
                        }
                        RE_SetReports(re, NULL);
@@ -1453,7 +1453,7 @@ static int arg_handle_render_animation(int UNUSED(argc), 
const char **UNUSED(arg
                BLI_threaded_malloc_begin();
                BKE_reports_init(&reports, RPT_STORE);
                RE_SetReports(re, &reports);
-               RE_BlenderAnim(re, bmain, scene, NULL, scene->r.sfra, 
scene->r.efra, scene->r.frame_step);
+               RE_BlenderAnim(re, bmain, scene, NULL, NULL, scene->r.sfra, 
scene->r.efra, scene->r.frame_step);
                RE_SetReports(re, NULL);
                BKE_reports_clear(&reports);
                BLI_threaded_malloc_end();

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to