[Bf-blender-cvs] [f424d5b5c9d] master: Depsgraph: Cleanup, remove scene being passed all over

Sergey Sharybin noreply at git.blender.org
Thu Nov 9 10:38:02 CET 2017


Commit: f424d5b5c9da1e8ce79ce34e5854e8d90ffe2460
Author: Sergey Sharybin
Date:   Wed Nov 8 18:06:51 2017 +0100
Branches: master
https://developer.blender.org/rBf424d5b5c9da1e8ce79ce34e5854e8d90ffe2460

Depsgraph: Cleanup, remove scene being passed all over

Use the state one instead.

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

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_scene.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations.h

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

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 89a2dba87c8..fdbd4100640 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -117,7 +117,6 @@ namespace {
 
 struct BuilderWalkUserData {
 	DepsgraphNodeBuilder *builder;
-	Scene *scene;
 };
 
 static void modifier_walk(void *user_data,
@@ -127,7 +126,7 @@ static void modifier_walk(void *user_data,
 {
 	BuilderWalkUserData *data = (BuilderWalkUserData *)user_data;
 	if (*obpoin) {
-		data->builder->build_object(data->scene, NULL, *obpoin);
+		data->builder->build_object(NULL, *obpoin);
 	}
 }
 
@@ -140,7 +139,7 @@ void constraint_walk(bConstraint * /*con*/,
 	if (*idpoin) {
 		ID *id = *idpoin;
 		if (GS(id->name) == ID_OB) {
-			data->builder->build_object(data->scene, NULL, (Object *)id);
+			data->builder->build_object(NULL, (Object *)id);
 		}
 	}
 }
@@ -154,7 +153,8 @@ void constraint_walk(bConstraint * /*con*/,
 
 DepsgraphNodeBuilder::DepsgraphNodeBuilder(Main *bmain, Depsgraph *graph)
     : bmain_(bmain),
-      graph_(graph)
+      graph_(graph),
+      scene_(NULL)
 {
 }
 
@@ -296,9 +296,7 @@ void DepsgraphNodeBuilder::begin_build() {
 	FOREACH_NODETREE_END;
 }
 
-void DepsgraphNodeBuilder::build_group(Scene *scene,
-                                       Base *base,
-                                       Group *group)
+void DepsgraphNodeBuilder::build_group(Base *base, Group *group)
 {
 	ID *group_id = &group->id;
 	if (group_id->tag & LIB_TAG_DOIT) {
@@ -307,11 +305,11 @@ void DepsgraphNodeBuilder::build_group(Scene *scene,
 	group_id->tag |= LIB_TAG_DOIT;
 
 	LINKLIST_FOREACH (GroupObject *, go, &group->gobject) {
-		build_object(scene, base, go->ob);
+		build_object(base, go->ob);
 	}
 }
 
-void DepsgraphNodeBuilder::build_object(Scene *scene, Base *base, Object *ob)
+void DepsgraphNodeBuilder::build_object(Base *base, Object *ob)
 {
 	const bool has_object = (ob->id.tag & LIB_TAG_DOIT);
 	IDDepsNode *id_node = (has_object)
@@ -339,21 +337,19 @@ void DepsgraphNodeBuilder::build_object(Scene *scene, Base *base, Object *ob)
 	ob->customdata_mask = 0;
 
 	/* Standard components. */
-	build_object_transform(scene, ob);
+	build_object_transform(ob);
 
 	if (ob->parent != NULL) {
-		build_object(scene, NULL, ob->parent);
+		build_object(NULL, ob->parent);
 	}
 	if (ob->modifiers.first != NULL) {
 		BuilderWalkUserData data;
 		data.builder = this;
-		data.scene = scene;
 		modifiers_foreachObjectLink(ob, modifier_walk, &data);
 	}
 	if (ob->constraints.first != NULL) {
 		BuilderWalkUserData data;
 		data.builder = this;
-		data.scene = scene;
 		BKE_constraints_id_loop(&ob->constraints, constraint_walk, &data);
 	}
 
@@ -367,7 +363,7 @@ void DepsgraphNodeBuilder::build_object(Scene *scene, Base *base, Object *ob)
 			case OB_SURF:
 			case OB_MBALL:
 			case OB_LATTICE:
-				build_obdata_geom(scene, ob);
+				build_obdata_geom(ob);
 				/* TODO(sergey): Only for until we support granular
 				 * update of curves.
 				 */
@@ -384,7 +380,7 @@ void DepsgraphNodeBuilder::build_object(Scene *scene, Base *base, Object *ob)
 					build_proxy_rig(ob);
 				}
 				else {
-					build_rig(scene, ob);
+					build_rig(ob);
 				}
 				break;
 
@@ -417,7 +413,7 @@ void DepsgraphNodeBuilder::build_object(Scene *scene, Base *base, Object *ob)
 
 	/* particle systems */
 	if (ob->particlesystem.first != NULL) {
-		build_particles(scene, ob);
+		build_particles(ob);
 	}
 
 	/* Grease pencil. */
@@ -428,35 +424,35 @@ void DepsgraphNodeBuilder::build_object(Scene *scene, Base *base, Object *ob)
 	/* Object that this is a proxy for. */
 	if (ob->proxy) {
 		ob->proxy->proxy_from = ob;
-		build_object(scene, base, ob->proxy);
+		build_object(base, ob->proxy);
 	}
 
 	/* Object dupligroup. */
 	if (ob->dup_group != NULL) {
-		build_group(scene, base, ob->dup_group);
+		build_group(base, ob->dup_group);
 	}
 }
 
-void DepsgraphNodeBuilder::build_object_transform(Scene *scene, Object *ob)
+void DepsgraphNodeBuilder::build_object_transform(Object *ob)
 {
 	OperationDepsNode *op_node;
 
 	/* local transforms (from transform channels - loc/rot/scale + deltas) */
 	op_node = add_operation_node(&ob->id, DEG_NODE_TYPE_TRANSFORM,
-	                             function_bind(BKE_object_eval_local_transform, _1, scene, ob),
+	                             function_bind(BKE_object_eval_local_transform, _1, scene_, ob),
 	                             DEG_OPCODE_TRANSFORM_LOCAL);
 	op_node->set_as_entry();
 
 	/* object parent */
 	if (ob->parent) {
 		add_operation_node(&ob->id, DEG_NODE_TYPE_TRANSFORM,
-		                   function_bind(BKE_object_eval_parent, _1, scene, ob),
+		                   function_bind(BKE_object_eval_parent, _1, scene_, ob),
 		                   DEG_OPCODE_TRANSFORM_PARENT);
 	}
 
 	/* object constraints */
 	if (ob->constraints.first) {
-		build_object_constraints(scene, ob);
+		build_object_constraints(ob);
 	}
 
 	/* Temporary uber-update node, which does everything.
@@ -467,7 +463,7 @@ void DepsgraphNodeBuilder::build_object_transform(Scene *scene, Object *ob)
 	 * TODO(sergey): Get rid of this node.
 	 */
 	add_operation_node(&ob->id, DEG_NODE_TYPE_TRANSFORM,
-	                   function_bind(BKE_object_eval_uber_transform, _1, scene, ob),
+	                   function_bind(BKE_object_eval_uber_transform, _1, scene_, ob),
 	                   DEG_OPCODE_TRANSFORM_OBJECT_UBEREVAL);
 
 	/* object transform is done */
@@ -494,11 +490,11 @@ void DepsgraphNodeBuilder::build_object_transform(Scene *scene, Object *ob)
  *
  * -- Aligorith, August 2013
  */
-void DepsgraphNodeBuilder::build_object_constraints(Scene *scene, Object *ob)
+void DepsgraphNodeBuilder::build_object_constraints(Object *ob)
 {
 	/* create node for constraint stack */
 	add_operation_node(&ob->id, DEG_NODE_TYPE_TRANSFORM,
-	                   function_bind(BKE_object_eval_constraints, _1, scene, ob),
+	                   function_bind(BKE_object_eval_constraints, _1, scene_, ob),
 	                   DEG_OPCODE_TRANSFORM_CONSTRAINTS);
 }
 
@@ -650,7 +646,7 @@ void DepsgraphNodeBuilder::build_rigidbody(Scene *scene)
 	}
 }
 
-void DepsgraphNodeBuilder::build_particles(Scene *scene, Object *ob)
+void DepsgraphNodeBuilder::build_particles(Object *ob)
 {
 	/**
 	 * Particle Systems Nodes
@@ -674,7 +670,7 @@ void DepsgraphNodeBuilder::build_particles(Scene *scene, Object *ob)
 	add_operation_node(psys_comp,
 	                   function_bind(BKE_particle_system_eval_init,
 	                                 _1,
-	                                 scene,
+	                                 scene_,
 	                                 ob),
 	                   DEG_OPCODE_PARTICLE_SYSTEM_EVAL_INIT);
 
@@ -698,13 +694,13 @@ void DepsgraphNodeBuilder::build_particles(Scene *scene, Object *ob)
 	// TODO...
 }
 
-void DepsgraphNodeBuilder::build_cloth(Scene *scene, Object *object)
+void DepsgraphNodeBuilder::build_cloth(Object *object)
 {
 	add_operation_node(&object->id,
 	                   DEG_NODE_TYPE_CACHE,
 	                   function_bind(BKE_object_eval_cloth,
 	                                 _1,
-	                                 scene,
+	                                 scene_,
 	                                 object),
 	                   DEG_OPCODE_GEOMETRY_CLOTH_MODIFIER);
 }
@@ -721,7 +717,7 @@ void DepsgraphNodeBuilder::build_shapekeys(Key *key)
 
 /* ObData Geometry Evaluation */
 // XXX: what happens if the datablock is shared!
-void DepsgraphNodeBuilder::build_obdata_geom(Scene *scene, Object *ob)
+void DepsgraphNodeBuilder::build_obdata_geom(Object *ob)
 {
 	ID *obdata = (ID *)ob->data;
 	OperationDepsNode *op_node;
@@ -746,7 +742,10 @@ void DepsgraphNodeBuilder::build_obdata_geom(Scene *scene, Object *ob)
 	 */
 	op_node = add_operation_node(&ob->id,
 	                             DEG_NODE_TYPE_GEOMETRY,
-	                             function_bind(BKE_object_eval_uber_data, _1, scene, ob),
+								 function_bind(BKE_object_eval_uber_data,
+								               _1,
+								               scene_,
+								               ob),
 	                             DEG_OPCODE_GEOMETRY_UBEREVAL);
 	op_node->set_as_exit();
 
@@ -762,7 +761,7 @@ void DepsgraphNodeBuilder::build_obdata_geom(Scene *scene, Object *ob)
 	/* Cloyth modifier. */
 	LINKLIST_FOREACH (ModifierData *, md, &ob->modifiers) {
 		if (md->type == eModifierType_Cloth) {
-			build_cloth(scene, ob);
+			build_cloth(ob);
 		}
 	}
 
@@ -813,8 +812,7 @@ void DepsgraphNodeBuilder::build_obdata_geom(Scene *scene, Object *ob)
 
 		case OB_MBALL:
 		{
-			Object *mom = BKE_mball_basis_find(scene, ob);
-
+			Object *mom = BKE_mball_basis_find(scene_, ob);
 			/* Motherball - mom depends on children! */
 			if (mom == ob) {
 				/* metaball evaluation operations */
@@ -851,13 +849,13 @@ void DepsgraphNodeBuilder::build_obdata_geom(Scene *scene, Object *ob)
 			 */
 			Curve *cu = (Curve *)obdata;
 			if (cu->bevobj != NULL) {
-				build_object(scene, NULL, cu->bevobj);
+				build_object(NULL, cu->bevobj);
 			}
 			if (cu->taperobj != NULL) {
-				build_object(scene, NULL, cu->taperobj);
+				build_object(NULL, cu->taperobj);
 			}
 			if (ob->type == OB_FONT && cu->textoncurve != NULL) {
-				build_object(scene, NULL, cu->textoncurve);
+				build_object(NULL, cu->textoncurve);
 			}
 			break;
 		}
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
index db57b2921ea..ec9fe6a40a2 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
@@ -119,28 +119,26 @@ struct DepsgraphNodeBuilder {
 	                                       int name_tag = -1);
 
 	void build_scene(Scene *scene);
-	void build_group(Scene *scene, Base *base, Group *group);
-	void build_object(Scene *scene, Base *base, Object *ob);
-	void build_object_transform(Scene *scene, Object *ob);
-	void build_object_constraints(Scene *scene, Object *ob);
-	void build_pose_constraints(Scene *scene, Object *ob, bPoseChannel *pchan);
+	void build_group(Base *base,

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list