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:
authorClément Foucault <foucault.clem@gmail.com>2019-09-30 14:09:39 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-10-01 17:02:14 +0300
commit5c79f2d0fba7360488e591922f91aa858bd8d603 (patch)
tree4b1550dec65baa6b404447fd1cde57d3125305a4 /source/blender/blenkernel/BKE_node.h
parentcba1bdc40071cbdb90122db121a643f761edeb36 (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.h4
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,