diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-11-24 18:44:54 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-11-24 18:44:54 +0300 |
commit | 6130524d8c05cb2468266f2e6fc5374d40cec6e1 (patch) | |
tree | 603a5697e9a765941ead5822e47f75e929426cd1 /source | |
parent | d211c36c836a929d9ac6feb693fbab2e1599fa00 (diff) |
Revert "Depsgraph: Remove legacy re-scheduling code"
This reverts commit 90ff88646d4312823df0610168391ab5ad80675a.
Can not do this yet, if object is not part of graph yet it will not have entry
taq. Need some more generic solution here.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder.cc b/source/blender/depsgraph/intern/builder/deg_builder.cc index 9945ff3a224..d6a054f2ee9 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder.cc @@ -50,7 +50,17 @@ void deg_graph_build_finalize(Main *bmain, Depsgraph *graph) * update tag. */ foreach (IDDepsNode *id_node, graph->id_nodes) { + ID *id = id_node->id_orig; id_node->finalize_build(graph); + if ((id->tag & LIB_TAG_ID_RECALC_ALL)) { + id_node->tag_update(graph); + } + else if (GS(id->name) == ID_OB) { + Object *object = (Object *)id; + if (object->recalc & OB_RECALC_ALL) { + id_node->tag_update(graph); + } + } /* TODO(sergey): This is not ideal at all, since this forces * re-evaluaiton of the whole tree. */ |