diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-05-30 15:34:42 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-05-30 15:36:50 +0300 |
commit | 34cb93434354b29425d6998e57e3bea9b2d4b730 (patch) | |
tree | 7d92d90dcb795c527749db243cb708f8407fa767 /source/blender/depsgraph/intern | |
parent | be594288770792b8a709ea284f5599a28a3a7d56 (diff) |
Depsgraph: Fix object being tagged for data update when it shouldn't
Diffstat (limited to 'source/blender/depsgraph/intern')
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_flush.cc | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc index e10f86f6e95..d64fdd83d39 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc @@ -164,14 +164,32 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph) * Plus it ensures visibility changes and relations and * layers visibility update has proper flags to work with. */ - if (comp_node->type == DEPSNODE_TYPE_ANIMATION) { - object->recalc |= OB_RECALC_TIME; - } - else if (comp_node->type == DEPSNODE_TYPE_TRANSFORM) { - object->recalc |= OB_RECALC_OB; - } - else { - object->recalc |= OB_RECALC_DATA; + switch (comp_node->type) { + case DEPSNODE_TYPE_UNDEFINED: + case DEPSNODE_TYPE_OPERATION: + case DEPSNODE_TYPE_ROOT: + case DEPSNODE_TYPE_TIMESOURCE: + case DEPSNODE_TYPE_ID_REF: + case DEPSNODE_TYPE_SUBGRAPH: + case DEPSNODE_TYPE_PARAMETERS: + case DEPSNODE_TYPE_SEQUENCER: + /* Ignore, does not translate to object component. */ + break; + case DEPSNODE_TYPE_ANIMATION: + object->recalc |= OB_RECALC_TIME; + break; + case DEPSNODE_TYPE_TRANSFORM: + object->recalc |= OB_RECALC_OB; + break; + case DEPSNODE_TYPE_GEOMETRY: + case DEPSNODE_TYPE_EVAL_POSE: + case DEPSNODE_TYPE_BONE: + case DEPSNODE_TYPE_EVAL_PARTICLES: + case DEPSNODE_TYPE_SHADING: + case DEPSNODE_TYPE_CACHE: + case DEPSNODE_TYPE_PROXY: + object->recalc |= OB_RECALC_DATA; + break; } } } |