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>2019-02-06 19:04:29 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-02-06 19:08:24 +0300
commitfb15dfbddf0ab65cae01e0620abdd7bb046a7aba (patch)
tree9e7aca8f64700f7e508ffcf05701b2b68a8b9ea6 /source/blender/depsgraph/intern/node
parent49e07dfdfbe5edf133ec9a5f1ffa7cd8ac05c3a3 (diff)
Depsgraph: Fix dependency cycle when rigid body is involved
Was introduced by point cache reset on manual edits. Needed to split evaluation and introduce an explicit init key, which allows to hook up relations which are "monitoring" manual edits to the channel. Noticed while looking into T61190.
Diffstat (limited to 'source/blender/depsgraph/intern/node')
-rw-r--r--source/blender/depsgraph/intern/node/deg_node_operation.cc4
-rw-r--r--source/blender/depsgraph/intern/node/deg_node_operation.h8
2 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/depsgraph/intern/node/deg_node_operation.cc b/source/blender/depsgraph/intern/node/deg_node_operation.cc
index f8f9c16af23..2a338613068 100644
--- a/source/blender/depsgraph/intern/node/deg_node_operation.cc
+++ b/source/blender/depsgraph/intern/node/deg_node_operation.cc
@@ -49,13 +49,13 @@ const char *operationCodeAsString(OperationCode opcode)
/* Object related. */
case OperationCode::OBJECT_BASE_FLAGS: return "OBJECT_BASE_FLAGS";
/* Transform. */
+ case OperationCode::TRANSFORM_INIT: return "TRANSFORM_INIT";
case OperationCode::TRANSFORM_LOCAL: return "TRANSFORM_LOCAL";
case OperationCode::TRANSFORM_PARENT: return "TRANSFORM_PARENT";
case OperationCode::TRANSFORM_CONSTRAINTS:
return "TRANSFORM_CONSTRAINTS";
case OperationCode::TRANSFORM_FINAL: return "TRANSFORM_FINAL";
- case OperationCode::TRANSFORM_OBJECT_UBEREVAL:
- return "TRANSFORM_OBJECT_UBEREVAL";
+ case OperationCode::TRANSFORM_EVAL: return "TRANSFORM_EVAL";
/* Rigid body. */
case OperationCode::RIGIDBODY_REBUILD: return "RIGIDBODY_REBUILD";
case OperationCode::RIGIDBODY_SIM: return "RIGIDBODY_SIM";
diff --git a/source/blender/depsgraph/intern/node/deg_node_operation.h b/source/blender/depsgraph/intern/node/deg_node_operation.h
index 22b4f335726..990e866ed8c 100644
--- a/source/blender/depsgraph/intern/node/deg_node_operation.h
+++ b/source/blender/depsgraph/intern/node/deg_node_operation.h
@@ -61,16 +61,18 @@ enum class OperationCode {
OBJECT_BASE_FLAGS,
/* Transform. ----------------------------------------------------------- */
- /* Transform entry point - local transforms only */
+ /* Transform entry point. */
+ TRANSFORM_INIT,
+ /* Local transforms only */
TRANSFORM_LOCAL,
/* Parenting */
TRANSFORM_PARENT,
/* Constraints */
TRANSFORM_CONSTRAINTS,
+ /* Handle object-level updates, mainly proxies hacks and recalc flags. */
+ TRANSFORM_EVAL,
/* Transform exit point */
TRANSFORM_FINAL,
- /* Handle object-level updates, mainly proxies hacks and recalc flags. */
- TRANSFORM_OBJECT_UBEREVAL,
/* Rigid body. ---------------------------------------------------------- */
/* Perform Simulation */