[Bf-blender-cvs] [9501ca7fccb] temp-compact-node-prototype: more

Jacques Lucke noreply at git.blender.org
Thu Mar 25 16:11:05 CET 2021


Commit: 9501ca7fccbb563ced66f4f16470eecf1383a1c8
Author: Jacques Lucke
Date:   Thu Mar 25 10:13:22 2021 +0100
Branches: temp-compact-node-prototype
https://developer.blender.org/rB9501ca7fccbb563ced66f4f16470eecf1383a1c8

more

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

M	source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc

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

diff --git a/source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc b/source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc
index eea2f8ad9f9..f4e8bfb5472 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc
@@ -106,11 +106,9 @@ static Set<SocketMenuInfoPtr> &get_socket_menu_info_set()
   return set;
 }
 
-static void draw_socket_menu(bContext *C, uiLayout *layout, void *arg)
+static void draw_socket_menu(bContext *UNUSED(C), uiLayout *layout, void *arg)
 {
   SocketMenuInfo *socket_info = (SocketMenuInfo *)arg;
-  uiItemL(layout, socket_info->node->name, ICON_NONE);
-  uiItemL(layout, socket_info->socket->name, ICON_NONE);
 
   PointerRNA node_ptr;
   RNA_pointer_create(&socket_info->ntree->id, &RNA_Node, socket_info->node, &node_ptr);
@@ -149,16 +147,24 @@ static void draw_socket_menu(bContext *C, uiLayout *layout, void *arg)
     RNA_string_set(&expose_props, "socket_name", socket_info->socket->name);
     RNA_boolean_set(&expose_props, "expose", false);
   }
+
+  uiItemR(layout, &node_ptr, "data_type", 0, "Data Type", ICON_NONE);
 }
 
 static void geo_node_attribute_fill_layout(uiLayout *layout, bContext *C, PointerRNA *node_ptr)
 {
   bNodeTree *ntree = (bNodeTree *)node_ptr->owner_id;
   bNode *node = (bNode *)node_ptr->data;
-  bNodeSocket *socket = (bNodeSocket *)BLI_findlink(&node->inputs, 3);
 
+  bNodeSocket *value_socket = nullptr;
+  LISTBASE_FOREACH (bNodeSocket *, socket, &node->inputs) {
+    if ((socket->flag & SOCK_UNAVAIL) == 0 && STREQ(socket->name, "Value")) {
+      value_socket = socket;
+      break;
+    }
+  }
   PointerRNA socket_ptr;
-  RNA_pointer_create(node_ptr->owner_id, &RNA_NodeSocket, socket, &socket_ptr);
+  RNA_pointer_create(node_ptr->owner_id, &RNA_NodeSocket, value_socket, &socket_ptr);
 
   uiItemR(layout, node_ptr, "domain", 0, "", ICON_NONE);
   uiItemR(layout, node_ptr, "data_type", 0, "", ICON_NONE);
@@ -168,19 +174,19 @@ static void geo_node_attribute_fill_layout(uiLayout *layout, bContext *C, Pointe
     auto info = SocketMenuInfoPtr{std::make_unique<SocketMenuInfo>()};
     info.value->ntree = ntree;
     info.value->node = node;
-    info.value->socket = socket;
+    info.value->socket = value_socket;
     set.add(std::move(info));
   }
   auto info = SocketMenuInfoPtr{std::make_unique<SocketMenuInfo>()};
   info.value->ntree = ntree;
   info.value->node = node;
-  info.value->socket = socket;
+  info.value->socket = value_socket;
   SocketMenuInfo *stored_info = set.lookup_key(info).value.get();
 
   uiLayout *row = uiLayoutRow(layout, false);
   uiLayout *sub_row = uiLayoutRow(row, false);
-  uiLayoutSetActive(sub_row, (socket->flag & SOCK_HIDDEN) != 0);
-  socket->typeinfo->draw(C, sub_row, &socket_ptr, node_ptr, "");
+  uiLayoutSetActive(sub_row, (value_socket->flag & SOCK_HIDDEN) != 0);
+  value_socket->typeinfo->draw(C, sub_row, &socket_ptr, node_ptr, value_socket->name);
   uiItemMenuF(row, "", ICON_DOWNARROW_HLT, draw_socket_menu, stored_info);
 }



More information about the Bf-blender-cvs mailing list