[Bf-blender-cvs] [224d17f] depsgraph_refactor: Depsgraph: Fix some node trees being wrongly skipped from building

Sergey Sharybin noreply at git.blender.org
Mon Mar 23 14:41:09 CET 2015


Commit: 224d17f6a65a1ed47723d1bb4b00b796f3a1adcc
Author: Sergey Sharybin
Date:   Mon Mar 23 18:40:00 2015 +0500
Branches: depsgraph_refactor
https://developer.blender.org/rB224d17f6a65a1ed47723d1bb4b00b796f3a1adcc

Depsgraph: Fix some node trees being wrongly skipped from building

This is because not all node trees are in bmain actually.

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

M	source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
M	source/blender/depsgraph/intern/depsgraph_build_relations.cpp

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

diff --git a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
index 2d4c50a..796397b 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
@@ -1052,9 +1052,6 @@ void DepsgraphNodeBuilder::build_nodetree(DepsNode *owner_node, bNodeTree *ntree
 
 	/* nodetree itself */
 	ID *ntree_id = &ntree->id;
-	if (ntree_id->flag & LIB_DOIT) {
-		return;
-	}
 
 	build_animdata(ntree_id);
 
@@ -1072,7 +1069,10 @@ void DepsgraphNodeBuilder::build_nodetree(DepsNode *owner_node, bNodeTree *ntree
 				build_texture(owner_node, (Tex *)bnode->id);
 			}
 			else if (bnode->type == NODE_GROUP) {
-				build_nodetree(owner_node, (bNodeTree *)bnode->id);
+				bNodeTree *ntree = (bNodeTree *)bnode->id;
+				if ((ntree_id->flag & LIB_DOIT) == 0) {
+					build_nodetree(owner_node, ntree);
+				}
 			}
 		}
 	}
diff --git a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
index 56ca11d..3f6af4c 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -1686,10 +1686,6 @@ void DepsgraphRelationBuilder::build_nodetree(ID *owner, bNodeTree *ntree)
 		return;
 
 	ID *ntree_id = &ntree->id;
-	if (ntree_id->flag & LIB_DOIT) {
-		return;
-	}
-	ntree_id->flag |= LIB_DOIT;
 
 	build_animdata(ntree_id);
 
@@ -1703,7 +1699,11 @@ void DepsgraphRelationBuilder::build_nodetree(ID *owner, bNodeTree *ntree)
 				build_texture(owner, (Tex *)bnode->id);
 			}
 			else if (bnode->type == NODE_GROUP) {
-				build_nodetree(owner, (bNodeTree *)bnode->id);
+				bNodeTree *ntree = (bNodeTree *)bnode->id;
+				if ((ntree_id->flag & LIB_DOIT) == 0) {
+					build_nodetree(owner, ntree);
+					ntree_id->flag |= LIB_DOIT;
+				}
 			}
 		}
 	}




More information about the Bf-blender-cvs mailing list