[Bf-blender-cvs] [b82954f6f4e] master: Fix T51455: Render Layers in compositor from a different scene not working
Lukas Stockner
noreply at git.blender.org
Wed May 10 22:42:56 CEST 2017
Commit: b82954f6f4e17c201859f9f15b2d73bd11fb68f2
Author: Lukas Stockner
Date: Wed May 10 22:39:43 2017 +0200
Branches: master
https://developer.blender.org/rBb82954f6f4e17c201859f9f15b2d73bd11fb68f2
Fix T51455: Render Layers in compositor from a different scene not working
The code only updated nodes in the nodetree of the scene to which the render layer belongs. Therefore, when using scene B in the compositor setup of scene A, A's node wouldn't be updated.
With this fix, the update function loops over all scenes and checks them for relevant nodes.
===================================================================
M source/blender/render/intern/source/external_engine.c
===================================================================
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index ee6dc96276c..a581f7bd198 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -783,7 +783,13 @@ void RE_engine_register_pass(struct RenderEngine *engine, struct Scene *scene, s
return;
}
- if (scene->nodetree) {
- ntreeCompositRegisterPass(scene->nodetree, scene, srl, name, type);
+ /* Register the pass in all scenes that have a render layer node for this layer.
+ * Since multiple scenes can be used in the compositor, the code must loop over all scenes
+ * and check whether their nodetree has a node that needs to be updated. */
+ Scene *sce;
+ for (sce = G.main->scene.first; sce; sce = sce->id.next) {
+ if (sce->nodetree) {
+ ntreeCompositRegisterPass(sce->nodetree, scene, srl, name, type);
+ }
}
}
More information about the Bf-blender-cvs
mailing list