Fix #112331: Add update tags directly in bNodeTreeInterface API methods #111741

Merged
Lukas Tönne merged 11 commits from LukasTonne/blender:tree-interface-update-tags into main 2023-09-14 14:13:15 +02:00

11 Commits

Author SHA1 Message Date
db908e9fae Merge branch 'main' into tree-interface-update-tags
All checks were successful
buildbot/vexp-code-patch-coordinator Build done.
2023-09-14 10:41:32 +02:00
627f50a47d Make bNodeTree a friend of the interface runtime to avoid all methods. 2023-09-14 10:39:24 +02:00
6deb91c48c Fixed comment. 2023-09-14 10:37:57 +02:00
17640d54b4 Cleanup: private instead of protected. 2023-09-14 10:36:51 +02:00
9ef3f9a18c Cleanup: "this->" prefix for member function calls. 2023-09-14 10:32:57 +02:00
d64fc20606 Moved most methods from bNodeTreeInterfaceRuntime into the interface. 2023-09-13 18:02:17 +02:00
642fb95086 Merge branch 'main' into tree-interface-update-tags 2023-09-13 17:32:57 +02:00
0cc278785f Merge branch 'main' into tree-interface-update-tags
Some checks failed
buildbot/vexp-code-patch-coordinator Build done.
2023-08-31 15:54:25 +02:00
3093d46b6b Replace ensure_topology_cache calls in RNA to update interface cache. 2023-08-31 15:53:03 +02:00
fbf57a95fa Fix cache invalidation when removing items. 2023-08-31 15:45:03 +02:00
6e1ea4061d Add update tags directly to bNodeTreeInterface to enable tagging by API.
Calling an API function after the node panels patch does not internally
tag the node tree with `NTREE_CHANGED_INTERFACE` any more, because the
node tree is not directly accessible from `bNodeTreeInterface`. Before
node panels the API functions for interfaces could tag the tree directly
for later update consideration, which now requires explicit tagging
calls.

The fix is to add a flag and mutex directly to `bNodeTreeInterface`, so
API methods can tag after updates. This mostly copies runtime data
concepts from `bNodeTree`. The `ensure_interface_cache` method is
equivalent to `ensure_topology_cache` and should be called before
accessing `interface_inputs` and similar cache data.
2023-08-31 13:55:47 +02:00