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:
authorLukas Toenne <lukas.toenne@googlemail.com>2011-10-19 21:08:35 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2011-10-19 21:08:35 +0400
commit0d7bd0f9b63db4c7891137d18ae6a40e652e190f (patch)
treec0bebf306abc77c7ae35ccbb8672b862bd088cd5 /source/blender/makesdna
parent408a2c62b974c10c7d19ad419dfca479dec59f65 (diff)
Adds an update flag to the bNode struct (similar to bNodeTree->update).
This prevents access to non-existent typeinfo during type initialization, when node types have been removed and such nodes are deleted from older files. All blenkernel functions now only set the node->update flag instead of directly calling the update function. All operators, etc. calling blenkernel functions to modify nodes should make a ntreeUpdate call afterward (they already did that anyway). Editor/RNA/renderer/etc. high-level functions still can do immediate updates by using nodeUpdate and nodeUpdateID (replacing NodeTagChanged/NodeTagIDChanged respectively). These old functions were previously used only for setting compositor node needexec flags and clearing cached data, but have become generic update functions that require type-specific functionality (i.e. a valid typeinfo struct).
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_node_types.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 4cfd0b56b70..f03cc200a56 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -154,7 +154,9 @@ typedef struct bNode {
float locx, locy; /* root offset for drawing */
float width, height; /* node custom width and height */
float miniwidth; /* node width if hidden */
- int pad;
+
+ int update; /* update flags */
+
char label[32]; /* custom user-defined label */
short custom1, custom2; /* to be abused for buttons */
float custom3, custom4;
@@ -192,6 +194,13 @@ typedef struct bNode {
/* automatic flag for nodes included in transforms */
#define NODE_TRANSFORM (1<<13)
+/* node->update */
+/* XXX NODE_UPDATE is a generic update flag. More fine-grained updates
+ * might be used in the future, but currently all work the same way.
+ */
+#define NODE_UPDATE 0xFFFF /* generic update flag (includes all others) */
+#define NODE_UPDATE_ID 1 /* associated id data block has changed */
+
typedef struct bNodeLink {
struct bNodeLink *next, *prev;