[Bf-blender-cvs] [de56346eee2] functions: extract methods

Jacques Lucke noreply at git.blender.org
Fri Dec 6 13:02:27 CET 2019


Commit: de56346eee2fbc24cd282a1a14e56124f4f7960a
Author: Jacques Lucke
Date:   Fri Dec 6 12:58:01 2019 +0100
Branches: functions
https://developer.blender.org/rBde56346eee2fbc24cd282a1a14e56124f4f7960a

extract methods

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

M	source/blender/functions/intern/multi_functions/network.cc
M	source/blender/functions/intern/multi_functions/network.h

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

diff --git a/source/blender/functions/intern/multi_functions/network.cc b/source/blender/functions/intern/multi_functions/network.cc
index 6aaed67317f..8265ba396a8 100644
--- a/source/blender/functions/intern/multi_functions/network.cc
+++ b/source/blender/functions/intern/multi_functions/network.cc
@@ -169,6 +169,16 @@ BLI_NOINLINE void MF_EvaluateNetwork::compute_and_forward_outputs(
   const MultiFunction &function = function_node.function();
   MFParamsBuilder params_builder(function, storage.mask().min_array_size());
 
+  this->prepare_function_params(function_node, storage, params_builder);
+  function.call(storage.mask(), params_builder, global_context);
+  this->forward_computed_values(function_node, storage, params_builder);
+}
+
+BLI_NOINLINE void MF_EvaluateNetwork::prepare_function_params(
+    const MFFunctionNode &function_node, Storage &storage, MFParamsBuilder &params_builder) const
+{
+  const MultiFunction &function = function_node.function();
+
   for (uint param_index : function.param_indices()) {
     MFParamType param_type = function.param_type(param_index);
     switch (param_type.type()) {
@@ -212,8 +222,12 @@ BLI_NOINLINE void MF_EvaluateNetwork::compute_and_forward_outputs(
       }
     }
   }
+}
 
-  function.call(storage.mask(), params_builder, global_context);
+BLI_NOINLINE void MF_EvaluateNetwork::forward_computed_values(
+    const MFFunctionNode &function_node, Storage &storage, MFParamsBuilder &params_builder) const
+{
+  const MultiFunction &function = function_node.function();
 
   for (uint param_index : function.param_indices()) {
     MFParamType param_type = function.param_type(param_index);
diff --git a/source/blender/functions/intern/multi_functions/network.h b/source/blender/functions/intern/multi_functions/network.h
index 974a14f2c54..59bdea92dcd 100644
--- a/source/blender/functions/intern/multi_functions/network.h
+++ b/source/blender/functions/intern/multi_functions/network.h
@@ -155,6 +155,12 @@ class MF_EvaluateNetwork final : public MultiFunction {
   void compute_and_forward_outputs(MFContext &global_context,
                                    const MFFunctionNode &function_node,
                                    Storage &storage) const;
+  void prepare_function_params(const MFFunctionNode &function_node,
+                               Storage &storage,
+                               MFParamsBuilder &params_builder) const;
+  void forward_computed_values(const MFFunctionNode &function_node,
+                               Storage &storage,
+                               MFParamsBuilder &params_builder) const;
 
   void copy_computed_values_to_outputs(MFParams params, Storage &storage) const;
 };



More information about the Bf-blender-cvs mailing list