Fix T73254: Drivers with the object.dimension variable are not updated

This fixes an issue where drivers using `object.dimension` only add a dependency on `GEOMETRY` to the depsgraph, whereas they should also depend on `TRANSFORM`.

This patch adds a new no-op operation that depends on the geometry and transform components to the Parameters component.

An alternative implementation would be to have `RNANodeQuery::construct_node_identifier` return multiple node identifiers. However, this would spread throughout the depsgraph code and unnecessarily force many other functions to either return or handle multiple nodes where in 99.999% of the time a single node would suffice.

The new `DIMENSIONS` node is added for each object. An upcoming patch will go over all no-op operation nodes and remove them from the depsgraph. Since this is a more dangerous operation, it'll be reviewed separately.

Differential Revision: https://developer.blender.org/D7031
This commit is contained in:
2020-03-05 17:37:30 +01:00
parent abd33a3c0c
commit 7d9a5b7b10
7 changed files with 24 additions and 1 deletions

View File

@@ -63,6 +63,7 @@ enum class OperationCode {
/* Object related. ------------------------------------------------------ */
OBJECT_BASE_FLAGS,
DIMENSIONS,
/* Transform. ----------------------------------------------------------- */
/* Transform entry point. */