[Bf-blender-cvs] [1949ed558b2] blender2.8: Depsgraph: Pass base to build_object()

Sergey Sharybin noreply at git.blender.org
Fri Nov 24 10:45:28 CET 2017


Commit: 1949ed558b2f1963bc71ffe326fdad93bc8d9ab1
Author: Sergey Sharybin
Date:   Fri Nov 24 10:06:26 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB1949ed558b2f1963bc71ffe326fdad93bc8d9ab1

Depsgraph: Pass base to build_object()

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

M	source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M	source/blender/depsgraph/intern/builder/deg_builder_nodes.h
M	source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
M	source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc

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

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 0f68f317984..3442f040bba 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -127,7 +127,9 @@ static void modifier_walk(void *user_data,
 {
 	BuilderWalkUserData *data = (BuilderWalkUserData *)user_data;
 	if (*obpoin) {
-		data->builder->build_object(*obpoin, DEG_ID_LINKED_INDIRECTLY);
+		data->builder->build_object(NULL,
+		                            *obpoin,
+		                            DEG_ID_LINKED_INDIRECTLY);
 	}
 }
 
@@ -140,7 +142,9 @@ void constraint_walk(bConstraint * /*con*/,
 	if (*idpoin) {
 		ID *id = *idpoin;
 		if (GS(id->name) == ID_OB) {
-			data->builder->build_object((Object *)id, DEG_ID_LINKED_INDIRECTLY);
+			data->builder->build_object(NULL,
+			                            (Object *)id,
+			                            DEG_ID_LINKED_INDIRECTLY);
 		}
 	}
 }
@@ -392,13 +396,15 @@ void DepsgraphNodeBuilder::build_group(Group *group)
 	group_id->tag |= LIB_TAG_DOIT;
 
 	LINKLIST_FOREACH (GroupObject *, go, &group->gobject) {
-		build_object(go->ob, DEG_ID_LINKED_INDIRECTLY);
+		build_object(NULL, go->ob, DEG_ID_LINKED_INDIRECTLY);
 	}
 }
 
-void DepsgraphNodeBuilder::build_object(Object *object,
+void DepsgraphNodeBuilder::build_object(Base *base,
+                                        Object *object,
                                         eDepsNode_LinkedState_Type linked_state)
 {
+	(void)base;
 	/* Skip rest of components if the ID node was already there. */
 	if (object->id.tag & LIB_TAG_DOIT) {
 		IDDepsNode *id_node = find_id_node(&object->id);
@@ -406,17 +412,15 @@ void DepsgraphNodeBuilder::build_object(Object *object,
 		return;
 	}
 	object->id.tag |= LIB_TAG_DOIT;
-
 	/* Create ID node for object and begin init. */
 	IDDepsNode *id_node = add_id_node(&object->id);
 	id_node->linked_state = linked_state;
-
 	object->customdata_mask = 0;
 	/* Transform. */
 	build_object_transform(object);
 	/* Parent. */
 	if (object->parent != NULL) {
-		build_object(object->parent, linked_state);
+		build_object(NULL, object->parent, linked_state);
 	}
 	/* Modifiers. */
 	if (object->modifiers.first != NULL) {
@@ -450,7 +454,7 @@ void DepsgraphNodeBuilder::build_object(Object *object,
 	/* Object that this is a proxy for. */
 	if (object->proxy) {
 		object->proxy->proxy_from = object;
-		build_object(object->proxy, DEG_ID_LINKED_INDIRECTLY);
+		build_object(NULL, object->proxy, DEG_ID_LINKED_INDIRECTLY);
 	}
 	/* Object dupligroup. */
 	if (object->dup_group != NULL) {
@@ -1025,13 +1029,13 @@ void DepsgraphNodeBuilder::build_obdata_geom(Object *object)
 			 */
 			Curve *cu = (Curve *)obdata;
 			if (cu->bevobj != NULL) {
-				build_object(cu->bevobj, DEG_ID_LINKED_INDIRECTLY);
+				build_object(NULL, cu->bevobj, DEG_ID_LINKED_INDIRECTLY);
 			}
 			if (cu->taperobj != NULL) {
-				build_object(cu->taperobj, DEG_ID_LINKED_INDIRECTLY);
+				build_object(NULL, cu->taperobj, DEG_ID_LINKED_INDIRECTLY);
 			}
 			if (object->type == OB_FONT && cu->textoncurve != NULL) {
-				build_object(cu->textoncurve, DEG_ID_LINKED_INDIRECTLY);
+				build_object(NULL, cu->textoncurve, DEG_ID_LINKED_INDIRECTLY);
 			}
 			break;
 		}
@@ -1172,7 +1176,7 @@ void DepsgraphNodeBuilder::build_nodetree(bNodeTree *ntree)
 			build_image((Image *)id);
 		}
 		else if (id_type == ID_OB) {
-			build_object((Object *)id, DEG_ID_LINKED_INDIRECTLY);
+			build_object(NULL, (Object *)id, DEG_ID_LINKED_INDIRECTLY);
 		}
 		else if (id_type == ID_SCE) {
 			/* Scenes are used by compositor trees, and handled by render
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
index 84ae993ba17..853a6b7f15d 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
@@ -34,6 +34,7 @@
 
 #include "DEG_depsgraph.h"  /* used for DEG_depsgraph_use_copy_on_write() */
 
+struct Base;
 struct CacheFile;
 struct bGPdata;
 struct ListBase;
@@ -161,7 +162,8 @@ struct DepsgraphNodeBuilder {
 	                       ViewLayer *view_layer,
 	                       eDepsNode_LinkedState_Type linked_state);
 	void build_group(Group *group);
-	void build_object(Object *object,
+	void build_object(Base *base,
+	                  Object *object,
 	                  eDepsNode_LinkedState_Type linked_state);
 	void build_object_data(Object *object);
 	void build_object_transform(Object *object);
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
index 70dfb3b8007..c4542660c8b 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
@@ -302,7 +302,8 @@ void DepsgraphNodeBuilder::build_rig(Object *object)
 		/* Custom shape. */
 		/* NOTE: Custom shape datablock is already remapped to CoW version. */
 		if (pchan->custom != NULL) {
-			build_object(get_orig_datablock(pchan->custom),
+			build_object(NULL,
+			             get_orig_datablock(pchan->custom),
 			             DEG_ID_LINKED_INDIRECTLY);
 		}
 	}
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 96a7108d153..092dec1f65e 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
@@ -104,13 +104,13 @@ void DepsgraphNodeBuilder::build_view_layer(Scene *scene,
 
 	/* scene objects */
 	int select_color = 1;
-	LINKLIST_FOREACH(Base *, base, &view_layer->object_bases) {
+	LINKLIST_FOREACH(Base *, base, &view_layer_cow->object_bases) {
 		/* object itself */
-		build_object(base->object, linked_state);
+		build_object(base, base->object, linked_state);
 		base->object->select_color = select_color++;
 	}
 	if (scene->camera != NULL) {
-		build_object(scene->camera, linked_state);
+		build_object(NULL, scene->camera, linked_state);
 	}
 
 	/* rigidbody */



More information about the Bf-blender-cvs mailing list