Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-05-30 15:34:42 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-05-30 15:36:50 +0300
commit34cb93434354b29425d6998e57e3bea9b2d4b730 (patch)
tree7d92d90dcb795c527749db243cb708f8407fa767 /source/blender/depsgraph/intern
parentbe594288770792b8a709ea284f5599a28a3a7d56 (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.cc34
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;
}
}
}