Fix T57247: Render animation does not respect render single view layer
Reviewers: brecht Maniphest Tasks: T57247 Differential Revision: https://developer.blender.org/D3800
This commit is contained in:
@@ -342,7 +342,7 @@ static int screen_render_exec(bContext *C, wmOperator *op)
|
|||||||
|
|
||||||
BLI_threaded_malloc_begin();
|
BLI_threaded_malloc_begin();
|
||||||
if (is_animation)
|
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
|
else
|
||||||
RE_BlenderFrame(re, mainp, scene, single_layer, camera_override, scene->r.cfra, is_write_still);
|
RE_BlenderFrame(re, mainp, scene, single_layer, camera_override, scene->r.cfra, is_write_still);
|
||||||
BLI_threaded_malloc_end();
|
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);
|
RE_SetReports(rj->re, rj->reports);
|
||||||
|
|
||||||
if (rj->anim)
|
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
|
else
|
||||||
RE_BlenderFrame(rj->re, rj->main, rj->scene, rj->single_layer, rj->camera_override, rj->scene->r.cfra, rj->write_still);
|
RE_BlenderFrame(rj->re, rj->main, rj->scene, rj->single_layer, rj->camera_override, rj->scene->r.cfra, rj->write_still);
|
||||||
|
|
||||||
|
@@ -279,7 +279,8 @@ bool RE_WriteRenderViewsMovie(
|
|||||||
void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene *scene,
|
void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene *scene,
|
||||||
struct ViewLayer *single_layer, struct Object *camera_override,
|
struct ViewLayer *single_layer, struct Object *camera_override,
|
||||||
int frame, const bool write_still);
|
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);
|
int sfra, int efra, int tfra);
|
||||||
#ifdef WITH_FREESTYLE
|
#ifdef WITH_FREESTYLE
|
||||||
void RE_RenderFreestyleStrokes(struct Render *re, struct Main *bmain, struct Scene *scene, int render);
|
void RE_RenderFreestyleStrokes(struct Render *re, struct Main *bmain, struct Scene *scene, int render);
|
||||||
|
@@ -2349,7 +2349,7 @@ static void re_movie_free_all(Render *re, bMovieHandle *mh, int totvideos)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* saves images to disk */
|
/* 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)
|
int sfra, int efra, int tfra)
|
||||||
{
|
{
|
||||||
RenderData rd = scene->r;
|
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);
|
BLI_callback_exec(re->main, (ID *)scene, BLI_CB_EVT_RENDER_INIT);
|
||||||
|
|
||||||
/* do not fully call for each frame, it initializes & pops output window */
|
/* 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;
|
return;
|
||||||
|
|
||||||
if (is_movie) {
|
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) */
|
/* only border now, todo: camera lens. (ton) */
|
||||||
render_initialize_from_main(re, &rd, bmain, scene,
|
render_initialize_from_main(re, &rd, bmain, scene,
|
||||||
NULL, camera_override, 1, 0);
|
single_layer, camera_override, 1, 0);
|
||||||
|
|
||||||
if (nfra != scene->r.cfra) {
|
if (nfra != scene->r.cfra) {
|
||||||
/* Skip this frame, but could update for physics and particles system. */
|
/* Skip this frame, but could update for physics and particles system. */
|
||||||
|
@@ -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++) {
|
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);
|
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();
|
BLI_threaded_malloc_begin();
|
||||||
BKE_reports_init(&reports, RPT_STORE);
|
BKE_reports_init(&reports, RPT_STORE);
|
||||||
RE_SetReports(re, &reports);
|
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);
|
RE_SetReports(re, NULL);
|
||||||
BKE_reports_clear(&reports);
|
BKE_reports_clear(&reports);
|
||||||
BLI_threaded_malloc_end();
|
BLI_threaded_malloc_end();
|
||||||
|
Reference in New Issue
Block a user