[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