[Bf-blender-cvs] [9a9ca5e40bd] blender2.8: Depsgraph: Build all type of IDs for modifiers and constraints

Sergey Sharybin noreply at git.blender.org
Thu Nov 15 12:48:57 CET 2018


Commit: 9a9ca5e40bd88a5444ca322d12c4544f659e5a29
Author: Sergey Sharybin
Date:   Thu Nov 15 12:47:58 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB9a9ca5e40bd88a5444ca322d12c4544f659e5a29

Depsgraph: Build all type of IDs for modifiers and constraints

It was missing handling of collections there, which caused collection
used for smoke colliders to not be in the dependency graph.

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

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 c705f229669..adf67c5a8b1 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -412,6 +412,9 @@ void DepsgraphNodeBuilder::build_id(ID *id)
 		return;
 	}
 	switch (GS(id->name)) {
+		case ID_AC:
+			build_action((bAction *)id);
+			break;
 		case ID_AR:
 			build_armature((bArmature *)id);
 			break;
@@ -1663,17 +1666,15 @@ void DepsgraphNodeBuilder::modifier_walk(void *user_data,
 	}
 	switch (GS(id->name)) {
 		case ID_OB:
-			/* TODO(sergey): Use visibility of owner of modifier stack. */
+			/* Special case for object, so we take owner visibility into
+			 * account. */
 			data->builder->build_object(-1,
 			                            (Object *)id,
 			                            DEG_ID_LINKED_INDIRECTLY,
 			                            data->is_parent_visible);
 			break;
-		case ID_TE:
-			data->builder->build_texture((Tex *)id);
-			break;
 		default:
-			/* pass */
+			data->builder->build_id(id);
 			break;
 	}
 }
@@ -1690,14 +1691,15 @@ void DepsgraphNodeBuilder::constraint_walk(bConstraint * /*con*/,
 	}
 	switch (GS(id->name)) {
 		case ID_OB:
-			/* TODO(sergey): Use visibility of owner of modifier stack. */
+			/* Special case for object, so we take owner visibility into
+			 * account. */
 			data->builder->build_object(-1,
 			                            (Object *)id,
 			                            DEG_ID_LINKED_INDIRECTLY,
 			                            data->is_parent_visible);
 			break;
 		default:
-			/* pass */
+			data->builder->build_id(id);
 			break;
 	}
 }
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index b6eb0af589c..7a26121801a 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -427,6 +427,9 @@ void DepsgraphRelationBuilder::build_id(ID *id)
 		return;
 	}
 	switch (GS(id->name)) {
+		case ID_AC:
+			build_action((bAction *)id);
+			break;
 		case ID_AR:
 			build_armature((bArmature *)id);
 			break;
@@ -2510,17 +2513,7 @@ void DepsgraphRelationBuilder::modifier_walk(void *user_data,
 	if (id == NULL) {
 		return;
 	}
-	switch (GS(id->name)) {
-		case ID_OB:
-			data->builder->build_object(NULL, (Object *)id);
-			break;
-		case ID_TE:
-			data->builder->build_texture((Tex *)id);
-			break;
-		default:
-			/* pass */
-			break;
-	}
+	data->builder->build_id(id);
 }
 
 void DepsgraphRelationBuilder::constraint_walk(bConstraint * /*con*/,
@@ -2529,12 +2522,11 @@ void DepsgraphRelationBuilder::constraint_walk(bConstraint * /*con*/,
                                                void *user_data)
 {
 	BuilderWalkUserData *data = (BuilderWalkUserData *)user_data;
-	if (*idpoin) {
-		ID *id = *idpoin;
-		if (GS(id->name) == ID_OB) {
-			data->builder->build_object(NULL, (Object *)id);
-		}
+	ID *id = *idpoin;
+	if (id == NULL) {
+		return;
 	}
+	data->builder->build_id(id);
 }
 
 }  // namespace DEG



More information about the Bf-blender-cvs mailing list