[Bf-blender-cvs] [3c7254ffb65] blender2.8: Depsgraph: Fix missing bases array update
Sergey Sharybin
noreply at git.blender.org
Wed Apr 18 17:35:10 CEST 2018
Commit: 3c7254ffb65d4f1e07f0b5aaa52b392149226768
Author: Sergey Sharybin
Date: Wed Apr 18 17:34:18 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB3c7254ffb65d4f1e07f0b5aaa52b392149226768
Depsgraph: Fix missing bases array update
view_layer_object_copy test was broken.
This is a quick fix for now, can be optimized further later.
===================================================================
M source/blender/depsgraph/intern/depsgraph_build.cc
===================================================================
diff --git a/source/blender/depsgraph/intern/depsgraph_build.cc b/source/blender/depsgraph/intern/depsgraph_build.cc
index c7f53b51374..f071fd04c5e 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.cc
+++ b/source/blender/depsgraph/intern/depsgraph_build.cc
@@ -272,6 +272,19 @@ void DEG_graph_tag_relations_update(Depsgraph *graph)
{
DEG::Depsgraph *deg_graph = reinterpret_cast<DEG::Depsgraph *>(graph);
deg_graph->need_update = true;
+ /* NOTE: When relations are updated, it's quite possible that
+ * we've got new bases in the scene. This means, we need to
+ * re-create flat array of bases in view layer.
+ *
+ * TODO(sergey): Try to make it so we don't flush updates
+ * to the whole depsgraph.
+ */
+ {
+ DEG::IDDepsNode *id_node = deg_graph->find_id_node(°_graph->scene->id);
+ if (id_node != NULL) {
+ id_node->tag_update(deg_graph);
+ }
+ }
}
/* Create or update relations in the specified graph. */
More information about the Bf-blender-cvs
mailing list