[Bf-blender-cvs] [9deccce07d0] blender2.8: Depsgraph: Fix missing material update when driving property in a group

Sergey Sharybin noreply at git.blender.org
Tue Aug 29 17:03:25 CEST 2017


Commit: 9deccce07d0d60ab940f980cc81802152c882615
Author: Sergey Sharybin
Date:   Tue Aug 29 17:03:07 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB9deccce07d0d60ab940f980cc81802152c882615

Depsgraph: Fix missing material update when driving property in a group

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

M	source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc

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

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index d29b87a0742..8e39695ff15 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -1100,23 +1100,15 @@ void DepsgraphNodeBuilder::build_nodetree(bNodeTree *ntree)
 	}
 	/* nodetree itself */
 	ID *ntree_id = &ntree->id;
-	OperationDepsNode *op_node;
 	add_id_node(ntree_id);
 	bNodeTree *ntree_cow = get_cow_datablock(ntree);
 	/* Animation, */
 	build_animdata(ntree_id);
-	/* Parameters for drivers. */
-	op_node = add_operation_node(ntree_id,
-	                             DEG_NODE_TYPE_PARAMETERS,
-	                             NULL,
-	                             DEG_OPCODE_PARAMETERS_EVAL);
-	op_node->set_as_exit();
 	/* Shading update. */
 	add_operation_node(ntree_id,
 	                   DEG_NODE_TYPE_SHADING,
 	                   NULL,
 	                   DEG_OPCODE_MATERIAL_UPDATE);
-
 	add_operation_node(ntree_id,
 	                   DEG_NODE_TYPE_SHADING_PARAMETERS,
 	                   function_bind(BKE_nodetree_shading_params_eval,
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 87f7117bb14..febdd471f64 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -1094,9 +1094,7 @@ void DepsgraphRelationBuilder::build_driver(ID *id, FCurve *fcu)
 			}
 			case ID_NT:
 			{
-				OperationKey ntree_key(id,
-				                       DEG_NODE_TYPE_PARAMETERS,
-				                       DEG_OPCODE_PARAMETERS_EVAL);
+				ComponentKey ntree_key(id, DEG_NODE_TYPE_SHADING);
 				add_relation(driver_key,
 				             ntree_key,
 				             "[Driver -> NTree Shading Update]");
@@ -1786,7 +1784,7 @@ void DepsgraphRelationBuilder::build_lamp(Object *ob)
 	/* lamp's nodetree */
 	if (la->nodetree) {
 		build_nodetree(la->nodetree);
-		ComponentKey nodetree_key(&la->nodetree->id, DEG_NODE_TYPE_PARAMETERS);
+		ComponentKey nodetree_key(&la->nodetree->id, DEG_NODE_TYPE_SHADING);
 		add_relation(nodetree_key, parameters_key, "NTree->Lamp Parameters");
 	}
 
@@ -1811,17 +1809,12 @@ void DepsgraphRelationBuilder::build_lamp(Object *ob)
 
 void DepsgraphRelationBuilder::build_nodetree(bNodeTree *ntree)
 {
-	if (!ntree)
+	if (ntree == NULL) {
 		return;
-
+	}
 	ID *ntree_id = &ntree->id;
-
 	build_animdata(ntree_id);
-
-	OperationKey parameters_key(ntree_id,
-	                            DEG_NODE_TYPE_PARAMETERS,
-	                            DEG_OPCODE_PARAMETERS_EVAL);
-
+	ComponentKey shading_key(ntree_id, DEG_NODE_TYPE_SHADING);
 	/* nodetree's nodes... */
 	LINKLIST_FOREACH (bNode *, bnode, &ntree->nodes) {
 		if (bnode->id) {
@@ -1837,17 +1830,16 @@ void DepsgraphRelationBuilder::build_nodetree(bNodeTree *ntree)
 					build_nodetree(group_ntree);
 					group_ntree->id.tag |= LIB_TAG_DOIT;
 				}
-				OperationKey group_parameters_key(&group_ntree->id,
-				                                  DEG_NODE_TYPE_PARAMETERS,
-				                                  DEG_OPCODE_PARAMETERS_EVAL);
-				add_relation(group_parameters_key, parameters_key, "Group Node");
+				ComponentKey group_shading_key(&group_ntree->id,
+				                               DEG_NODE_TYPE_SHADING);
+				add_relation(group_shading_key, shading_key, "Group Node");
 			}
 		}
 	}
 
 	if (needs_animdata_node(ntree_id)) {
 		ComponentKey animation_key(ntree_id, DEG_NODE_TYPE_ANIMATION);
-		add_relation(animation_key, parameters_key, "NTree Parameters");
+		add_relation(animation_key, shading_key, "NTree Parameters");
 	}
 
 	OperationKey shading_update_key(ntree_id,
@@ -1856,7 +1848,6 @@ void DepsgraphRelationBuilder::build_nodetree(bNodeTree *ntree)
 	OperationKey shading_parameters_key(ntree_id,
 	                                    DEG_NODE_TYPE_SHADING_PARAMETERS,
 	                                    DEG_OPCODE_MATERIAL_UPDATE);
-	add_relation(parameters_key, shading_update_key, "NTree Parameters");
 	add_relation(shading_parameters_key, shading_update_key, "NTree Shading Parameters");
 }



More information about the Bf-blender-cvs mailing list