[Bf-blender-cvs] [0a0360c8cde] temp-geometry-nodes-fields--fields: Fix constant input test

Hans Goudey noreply at git.blender.org
Thu Aug 26 18:20:06 CEST 2021


Commit: 0a0360c8cde505341e11512dc6f2ccf76c4894c3
Author: Hans Goudey
Date:   Thu Aug 26 11:19:58 2021 -0500
Branches: temp-geometry-nodes-fields--fields
https://developer.blender.org/rB0a0360c8cde505341e11512dc6f2ccf76c4894c3

Fix constant input test

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

M	source/blender/functions/intern/field.cc

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

diff --git a/source/blender/functions/intern/field.cc b/source/blender/functions/intern/field.cc
index acecbfd79ec..ac017822733 100644
--- a/source/blender/functions/intern/field.cc
+++ b/source/blender/functions/intern/field.cc
@@ -27,13 +27,16 @@ static void add_field_parameters(const Field &field,
       [&](const Field &input_field) { add_field_parameters(input_field, builder, output_map); });
 
   /* Add the immediate inputs to this field. */
+  Vector<MFVariable *> inputs;
   field.foreach_input([&](const Field &input_field) {
-    builder.add_input_parameter(output_map.lookup(&input_field)->data_type());
+    MFVariable *input = output_map.lookup(&input_field);
+    builder.add_input_parameter(input->data_type());
+    inputs.append(input);
   });
 
-  Vector<MFVariable *> outputs = builder.add_call(field.function());
+  Vector<MFVariable *> outputs = builder.add_call(field.function(), inputs);
 
-  // builder.add_destruct(inputs);
+  builder.add_destruct(inputs);
 
   /* TODO: How to support multiple outputs?! */
   BLI_assert(outputs.size() == 1);
@@ -50,17 +53,14 @@ static void build_procedure(const Span<Field> fields, MFProcedure &procedure)
     add_field_parameters(field, builder, output_map);
   }
 
-  /* TODO: Move this to the proper place. */
-  for (MFVariable *variable : output_map.values()) {
-    builder.add_destruct(*variable);
-  }
-
   builder.add_return();
 
   for (const Field &field : fields) {
     builder.add_output_parameter(*output_map.lookup(&field));
   }
 
+  std::cout << procedure.to_dot();
+
   BLI_assert(procedure.validate());
 }



More information about the Bf-blender-cvs mailing list