[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 ¶ms_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 ¶ms_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 ¶ms_builder) const;
+ void forward_computed_values(const MFFunctionNode &function_node,
+ Storage &storage,
+ MFParamsBuilder ¶ms_builder) const;
void copy_computed_values_to_outputs(MFParams params, Storage &storage) const;
};
More information about the Bf-blender-cvs
mailing list