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-11-08 17:24:26 +0300
committerJacques Lucke <jacques@blender.org>2021-11-08 17:24:26 +0300
commitd728c22181e5561570ba67e5803422f7763391b2 (patch)
treea17a6dff9ef8b655b8f8158bd78ba512ad8e4a5a /source/blender/nodes
parent1c31d62951c57218edb12d42b900bf14b2a95da2 (diff)
add index outut
Diffstat (limited to 'source/blender/nodes')
-rw-r--r--source/blender/nodes/function/nodes/node_fn_enum.cc9
1 files changed, 6 insertions, 3 deletions
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);