[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