[Bf-blender-cvs] [dea72dbb9d1] temp-enum-socket: fixes
Jacques Lucke
noreply at git.blender.org
Tue Nov 9 20:22:12 CET 2021
Commit: dea72dbb9d1558435254fc07fa25428decd5e428
Author: Jacques Lucke
Date: Tue Nov 9 19:54:42 2021 +0100
Branches: temp-enum-socket
https://developer.blender.org/rBdea72dbb9d1558435254fc07fa25428decd5e428
fixes
===================================================================
M source/blender/blenkernel/intern/node.cc
M source/blender/makesdna/DNA_node_types.h
M source/blender/makesrna/intern/rna_nodetree.c
===================================================================
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc
index 5f460e91091..41576f09c00 100644
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@ -5172,8 +5172,10 @@ static bool update_enum_inferencing(const NodeTreeRef &tree)
/* TODO: Handle case when connected to incompatible enums. */
EnumState enum_state;
for (const InputSocketRef *target_socket : socket->directly_linked_sockets()) {
- enum_state = state_by_socket.lookup(target_socket);
- break;
+ if (target_socket->is_available()) {
+ enum_state = state_by_socket.lookup_default(target_socket, {});
+ break;
+ }
}
state_by_socket.add_new(socket, enum_state);
}
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 3feb158320a..e2d55f006f4 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -684,6 +684,7 @@ typedef struct bNodeSocketValueMaterial {
struct Material *value;
} bNodeSocketValueMaterial;
+/* TODO: Add something to help with versioning for built-in enums. */
typedef struct bNodeSocketValueEnum {
int value;
char _pad[4];
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 71f31ed6310..ae1ebeacf51 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -12102,7 +12102,8 @@ static void rna_def_node_socket_enum(BlenderRNA *brna,
prop = RNA_def_property(srna, "default_value", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "value");
- RNA_def_property_enum_items(prop, node_socket_data_type_items); /* TODO */
+ RNA_def_property_enum_funcs(prop, NULL, "rna_NodeSocketEnum_set", "rna_NodeSocketEnum_items");
+ RNA_def_property_enum_items(prop, DummyRNA_DEFAULT_items);
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_ui_text(prop, "Default Value", "Input value used for unconnected socket");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_NodeSocketInterface_update");
More information about the Bf-blender-cvs
mailing list