[Bf-blender-cvs] [3af1903ac7e] spreadsheet-active-node: log more socket values
Jacques Lucke
noreply at git.blender.org
Thu Apr 1 13:55:19 CEST 2021
Commit: 3af1903ac7e7299c7232df2646020c38b0960025
Author: Jacques Lucke
Date: Thu Apr 1 10:38:19 2021 +0200
Branches: spreadsheet-active-node
https://developer.blender.org/rB3af1903ac7e7299c7232df2646020c38b0960025
log more socket values
===================================================================
M source/blender/modifiers/intern/MOD_nodes.cc
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index eeb3bf1c5bb..63bd969a18d 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -301,7 +301,7 @@ static DNode find_active_node_instance(const SpaceNode &snode, const DerivedNode
class GeometryNodesEvaluator {
public:
- using SocketValueFn = std::function<void(DSocket, blender::fn::GPointer)>;
+ using SocketValueFn = std::function<void(DSocket, Span<GPointer>)>;
private:
blender::LinearAllocator<> allocator_;
@@ -437,7 +437,9 @@ class GeometryNodesEvaluator {
GValueMap<StringRef> node_inputs_map{allocator_};
for (const InputSocketRef *input_socket : node->inputs()) {
if (input_socket->is_available()) {
- Vector<GMutablePointer> values = this->get_input_values({node.context(), input_socket});
+ DInputSocket dsocket{node.context(), input_socket};
+ Vector<GMutablePointer> values = this->get_input_values(dsocket);
+ this->handle_socket_value(dsocket, values);
for (int i = 0; i < values.size(); ++i) {
/* Values from Multi Input Sockets are stored in input map with the format
* <identifier>[<index>]. */
@@ -492,13 +494,23 @@ class GeometryNodesEvaluator {
}
}
- void handle_socket_value(const DSocket socket, blender::fn::GPointer value)
+ void handle_socket_value(const DSocket socket, Span<GPointer> values)
{
if (socket_value_fn_) {
- socket_value_fn_(socket, value);
+ socket_value_fn_(socket, values);
}
}
+ void handle_socket_value(const DSocket socket, Span<GMutablePointer> values)
+ {
+ this->handle_socket_value(socket, values.cast<GPointer>());
+ }
+
+ void handle_socket_value(const DSocket socket, GPointer value)
+ {
+ this->handle_socket_value(socket, Span<GPointer>(&value, 1));
+ }
+
void execute_node(const DNode node, GeoNodeExecParams params)
{
const bNode &bnode = params.node();
@@ -1195,10 +1207,12 @@ static GeometrySet compute_geometry(const DerivedNodeTree &tree,
Vector<DInputSocket> group_outputs;
group_outputs.append({root_context, &socket_to_compute});
- auto handle_socket_value = [&](const DSocket socket, const GPointer value) {
- std::stringstream ss;
- value.type()->debug_print(value.get(), ss);
- std::cout << socket->name() << ": " << ss.str() << "\n";
+ auto handle_socket_value = [&](const DSocket socket, const Span<GPointer> values) {
+ for (GPointer value : values) {
+ std::stringstream ss;
+ value.type()->debug_print(value.get(), ss);
+ std::cout << socket->name() << ": " << ss.str() << "\n";
+ }
};
GeometryNodesEvaluator evaluator{group_inputs,
More information about the Bf-blender-cvs
mailing list