[Bf-blender-cvs] [69a7ece3892] blender2.8: Depsgraph: Fix wrong remapping of compositor node tree when CoW is enabled

Sergey Sharybin noreply at git.blender.org
Thu Nov 30 12:47:41 CET 2017


Commit: 69a7ece38928cd1602c8721db6193ba56febc7c0
Author: Sergey Sharybin
Date:   Thu Nov 30 12:35:51 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB69a7ece38928cd1602c8721db6193ba56febc7c0

Depsgraph: Fix wrong remapping of compositor node tree when CoW is enabled

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

M	source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc

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

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
index cd226941278..cf77b859b5c 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
@@ -70,6 +70,12 @@ void DepsgraphNodeBuilder::build_view_layer(
         ViewLayer *view_layer,
         eDepsNode_LinkedState_Type linked_state)
 {
+	/* Scene ID block. */
+	add_id_node(&scene->id);
+	/* Time source. */
+	add_time_source();
+	/* Setup currently building context. */
+	scene_ = scene;
 	/* Expand Scene Cow datablock to get proper pointers to bases. */
 	Scene *scene_cow;
 	ViewLayer *view_layer_cow;
@@ -82,6 +88,12 @@ void DepsgraphNodeBuilder::build_view_layer(
 			Object *object = base->object;
 			add_id_node(&object->id, false);
 		}
+		/* Create ID node for nested ID of nodetree as well, otherwise remapping
+		 * will not work correct either.
+		 */
+		if (scene->nodetree != NULL) {
+			add_id_node(&scene->nodetree->id, false);
+		}
 		/* Make sure we've got ID node, so we can get pointer to CoW datablock.
 		 */
 		scene_cow = expand_cow_datablock(scene);
@@ -94,12 +106,6 @@ void DepsgraphNodeBuilder::build_view_layer(
 		scene_cow = scene;
 		view_layer_cow = view_layer;
 	}
-	/* Scene ID block. */
-	add_id_node(&scene->id);
-	/* Time source. */
-	add_time_source();
-	/* Setup currently building context. */
-	scene_ = scene;
 	/* Scene objects. */
 	int select_color = 1;
 	/* NOTE: Base is used for function bindings as-is, so need to pass CoW base,



More information about the Bf-blender-cvs mailing list