[Bf-blender-cvs] [34cb9343435] master: Depsgraph: Fix object being tagged for data update when it shouldn't

Sergey Sharybin noreply at git.blender.org
Tue May 30 14:36:59 CEST 2017


Commit: 34cb93434354b29425d6998e57e3bea9b2d4b730
Author: Sergey Sharybin
Date:   Tue May 30 14:34:42 2017 +0200
Branches: master
https://developer.blender.org/rB34cb93434354b29425d6998e57e3bea9b2d4b730

Depsgraph: Fix object being tagged for data update when it shouldn't

===================================================================

M	source/blender/depsgraph/intern/eval/deg_eval_flush.cc

===================================================================

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;
 					}
 				}
 			}




More information about the Bf-blender-cvs mailing list