[Bf-blender-cvs] [d728c22181e] temp-enum-socket: add index outut

Jacques Lucke noreply at git.blender.org
Mon Nov 8 16:07:04 CET 2021


Commit: d728c22181e5561570ba67e5803422f7763391b2
Author: Jacques Lucke
Date:   Mon Nov 8 15:24:26 2021 +0100
Branches: temp-enum-socket
https://developer.blender.org/rBd728c22181e5561570ba67e5803422f7763391b2

add index outut

===================================================================

M	source/blender/nodes/function/nodes/node_fn_enum.cc

===================================================================

diff --git a/source/blender/nodes/function/nodes/node_fn_enum.cc b/source/blender/nodes/function/nodes/node_fn_enum.cc
index 643fe3c9c59..3edd2ed898a 100644
--- a/source/blender/nodes/function/nodes/node_fn_enum.cc
+++ b/source/blender/nodes/function/nodes/node_fn_enum.cc
@@ -33,6 +33,8 @@ static void fn_node_enum_declare(NodeDeclarationBuilder &b)
     return;
   }
 
+  b.add_output<decl::Int>("Index");
+
   EnumPropertyItem *items = nullptr;
   int tot_items = 0;
 
@@ -68,12 +70,13 @@ static bool fn_node_enum_draw_socket(uiLayout *layout,
                                      bNode *node,
                                      bNodeSocket *socket)
 {
-  const int index = BLI_findindex(&node->outputs, socket);
-  if (index == -1) {
+  const int socket_index = BLI_findindex(&node->outputs, socket);
+  if (socket_index <= 0) {
     return false;
   }
   NodeFunctionEnum *storage = (NodeFunctionEnum *)node->storage;
-  NodeFunctionEnumItem *item = (NodeFunctionEnumItem *)BLI_findlink(&storage->items, index);
+  NodeFunctionEnumItem *item = (NodeFunctionEnumItem *)BLI_findlink(&storage->items,
+                                                                    socket_index - 1);
   PointerRNA item_ptr;
   RNA_pointer_create(&ntree->id, &RNA_NodeFunctionEnumItem, item, &item_ptr);
   uiItemR(layout, &item_ptr, "name", 0, "", ICON_NONE);



More information about the Bf-blender-cvs mailing list