From 7d9a5b7b10b439f62bcc522fee307a942b859ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 5 Mar 2020 17:37:30 +0100 Subject: 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 --- source/blender/depsgraph/intern/builder/deg_builder_relations.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations.h') diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.h b/source/blender/depsgraph/intern/builder/deg_builder_relations.h index 7da3577a7b5..e5e2116008b 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.h +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.h @@ -242,6 +242,7 @@ class DepsgraphRelationBuilder : public DepsgraphBuilder { virtual void build_driver_variables(ID *id, FCurve *fcurve); virtual void build_driver_id_property(ID *id, const char *rna_path); virtual void build_parameters(ID *id); + virtual void build_dimensions(Object *object); virtual void build_world(World *world); virtual void build_rigidbody(Scene *scene); virtual void build_particle_systems(Object *object); -- cgit v1.2.3