Fix T58859: render with compositor does not render other scenes.
This commit is contained in:
@@ -1209,9 +1209,6 @@ static void render_scene(Render *re, Scene *sce, int cfra)
|
|||||||
resc->main = re->main;
|
resc->main = re->main;
|
||||||
resc->scene = sce;
|
resc->scene = sce;
|
||||||
|
|
||||||
/* ensure scene has depsgraph, base flags etc OK */
|
|
||||||
BKE_scene_set_background(re->main, sce);
|
|
||||||
|
|
||||||
/* copy callbacks */
|
/* copy callbacks */
|
||||||
resc->display_update = re->display_update;
|
resc->display_update = re->display_update;
|
||||||
resc->duh = re->duh;
|
resc->duh = re->duh;
|
||||||
@@ -1260,7 +1257,6 @@ static void ntree_render_scenes(Render *re)
|
|||||||
bNode *node;
|
bNode *node;
|
||||||
int cfra = re->scene->r.cfra;
|
int cfra = re->scene->r.cfra;
|
||||||
Scene *restore_scene = re->scene;
|
Scene *restore_scene = re->scene;
|
||||||
bool scene_changed = false;
|
|
||||||
|
|
||||||
if (re->scene->nodetree == NULL) return;
|
if (re->scene->nodetree == NULL) return;
|
||||||
|
|
||||||
@@ -1269,22 +1265,15 @@ static void ntree_render_scenes(Render *re)
|
|||||||
for (node = re->scene->nodetree->nodes.first; node; node = node->next) {
|
for (node = re->scene->nodetree->nodes.first; node; node = node->next) {
|
||||||
if (node->type == CMP_NODE_R_LAYERS && (node->flag & NODE_MUTED) == 0) {
|
if (node->type == CMP_NODE_R_LAYERS && (node->flag & NODE_MUTED) == 0) {
|
||||||
if (node->id && node->id != (ID *)re->scene) {
|
if (node->id && node->id != (ID *)re->scene) {
|
||||||
if (node->flag & NODE_TEST) {
|
Scene *scene = (Scene *)node->id;
|
||||||
Scene *scene = (Scene *)node->id;
|
|
||||||
|
|
||||||
scene_changed |= scene != restore_scene;
|
if (render_scene_has_layers_to_render(scene, false)) {
|
||||||
render_scene(re, scene, cfra);
|
render_scene(re, scene, cfra);
|
||||||
node->flag &= ~NODE_TEST;
|
|
||||||
|
|
||||||
nodeUpdate(restore_scene->nodetree, node);
|
nodeUpdate(restore_scene->nodetree, node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* restore scene if we rendered another last */
|
|
||||||
if (scene_changed)
|
|
||||||
BKE_scene_set_background(re->main, re->scene);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* bad call... need to think over proper method still */
|
/* bad call... need to think over proper method still */
|
||||||
|
Reference in New Issue
Block a user