diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-09-30 14:09:39 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-10-01 17:02:14 +0300 |
commit | 5c79f2d0fba7360488e591922f91aa858bd8d603 (patch) | |
tree | 4b1550dec65baa6b404447fd1cde57d3125305a4 /source/blender/blenkernel/BKE_node.h | |
parent | cba1bdc40071cbdb90122db121a643f761edeb36 (diff) |
Fix T70325 EEVEE: Performance regression with large nodetrees
This was caused by nodeChainIter which is not linear complexity.
Introduce nodeChainIterBackwards to iterate backwards faster.
Diffstat (limited to 'source/blender/blenkernel/BKE_node.h')
-rw-r--r-- | source/blender/blenkernel/BKE_node.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index f88aebd312c..06fd7915476 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -591,6 +591,10 @@ void nodeChainIter(const bNodeTree *ntree, bool (*callback)(bNode *, bNode *, void *, const bool), void *userdata, const bool reversed); +void nodeChainIterBackwards(const bNodeTree *ntree, + const bNode *node_start, + bool (*callback)(bNode *, bNode *, void *), + void *userdata); void nodeParentsIter(bNode *node, bool (*callback)(bNode *, void *), void *userdata); struct bNodeLink *nodeFindLink(struct bNodeTree *ntree, |