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:
authorJacques Lucke <jacques@blender.org>2021-07-07 12:20:19 +0300
committerJacques Lucke <jacques@blender.org>2021-07-07 12:20:19 +0300
commit0153e99780aef64913dfd4c323984874bf688249 (patch)
tree28d5aa0587149778e227f69c37793cdf4219ea7a /source/blender/makesdna
parent77834aff223e49eaa3abed56fb120aeca302a0e0 (diff)
Geometry Nodes: refactor logging during geometry nodes evaluation
Many ui features for geometry nodes need access to information generated during evaluation: * Node warnings. * Attribute search. * Viewer node. * Socket inspection (not in master yet). The way we logged the required information before had some disadvantages: * Viewer node used a completely separate system from node warnings and attribute search. * Most of the context of logged information is lost when e.g. the same node group is used multiple times. * A global lock was needed every time something is logged. This new implementation solves these problems: * All four mentioned ui features use the same underlying logging system. * All context information for logged values is kept intact. * Every thread has its own local logger. The logged informatiton is combined in the end. Differential Revision: https://developer.blender.org/D11785
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h4
-rw-r--r--source/blender/makesdna/DNA_node_types.h3
-rw-r--r--source/blender/makesdna/DNA_object_types.h6
3 files changed, 4 insertions, 9 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 08a38f0652c..1c765d19ce2 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -2256,6 +2256,10 @@ typedef struct NodesModifierData {
ModifierData modifier;
struct bNodeTree *node_group;
struct NodesModifierSettings settings;
+
+ /* Contains logged information from the last evaluation. This can be used to help the user to
+ * debug a node tree. */
+ void *runtime_eval_log;
} NodesModifierData;
typedef struct MeshToVolumeModifierData {
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 199b69d61c5..1a3415bf74e 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -37,7 +37,6 @@ struct Collection;
struct ID;
struct Image;
struct ListBase;
-struct NodeTreeUIStorage;
struct bGPdata;
struct bNodeInstanceHash;
struct bNodeLink;
@@ -516,8 +515,6 @@ typedef struct bNodeTree {
int (*test_break)(void *);
void (*update_draw)(void *);
void *tbh, *prh, *sdh, *udh;
-
- struct NodeTreeUIStorage *ui_storage;
} bNodeTree;
/* ntree->type, index */
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index 262d650c1ef..605cd28c793 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -172,12 +172,6 @@ typedef struct Object_Runtime {
struct GeometrySet *geometry_set_eval;
/**
- * A GHash that contains geometry sets for intermediate stages of evaluation. The keys are just a
- * hash and are not owned by the map. The geometry sets are owned.
- */
- void *geometry_set_previews;
-
- /**
* Mesh structure created during object evaluation.
* It has deformation only modifiers applied on it.
*/