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
path: root/source
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-05-29 13:48:59 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-05-29 13:50:04 +0300
commitb0278b24868d7cd6326577fcbae5ace13a0e9200 (patch)
treed5fab531bc4241fa8c3aaffefdd2873d53b8e26b /source
parentd6b340b99962f90fa5c5af405ef5317da529085e (diff)
Depsgraph: Fix IDs being remapped in original compositor
Happens with files from T65223. Caused by CoW scene still pointing to the original compositor. Happens when scene was referenced for parameters only.
Diffstat (limited to 'source')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc
index b092799e692..64f841d56fc 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc
@@ -47,6 +47,17 @@ void DepsgraphNodeBuilder::build_scene_parameters(Scene *scene)
}
add_operation_node(&scene->id, NodeType::PARAMETERS, OperationCode::SCENE_EVAL);
add_operation_node(&scene->id, NodeType::PARAMETERS, OperationCode::PARAMETERS_EVAL);
+ /* NOTE: This is a bit overkill and can potentially pull a bit too much into the graph, but:
+ *
+ * - We definitely need an ID node for the scene's compositor, othetrwise re-mapping will no
+ * happen correct and we will risk remapping pointers in the main database.
+ * - Alternatively, we should discard compositor tree, but this might cause other headache like
+ * drivers which are coming from the tree.
+ *
+ * Would be nice to find some reliable way of ignoring compositor here, but it's already pulled
+ * in when building scene from view layer, so this particular case does not make things
+ * marginally worse. */
+ build_scene_compositor(scene);
}
void DepsgraphNodeBuilder::build_scene_compositor(Scene *scene)