[Bf-blender-cvs] [caa03d7a5dd] functions: cleanup
Jacques Lucke
noreply at git.blender.org
Sun Feb 10 20:27:04 CET 2019
Commit: caa03d7a5dd115cc05c0cddac09bf6b482e8c9bd
Author: Jacques Lucke
Date: Sun Feb 10 13:26:51 2019 +0100
Branches: functions
https://developer.blender.org/rBcaa03d7a5dd115cc05c0cddac09bf6b482e8c9bd
cleanup
===================================================================
M source/blender/functions/c_wrapper.cpp
M source/blender/functions/core/data_flow_graph.hpp
M source/blender/functions/core/graph_to_function.cpp
M source/blender/functions/core/graph_to_function.hpp
===================================================================
diff --git a/source/blender/functions/c_wrapper.cpp b/source/blender/functions/c_wrapper.cpp
index f0037b9d8aa..940f82cb62c 100644
--- a/source/blender/functions/c_wrapper.cpp
+++ b/source/blender/functions/c_wrapper.cpp
@@ -192,17 +192,12 @@ FnFunction FN_get_generated_function()
graph->link(n1->output(0), n2->input(0));
graph->link(npass->output(0), n1->input(1));
graph->link(npass->output(0), n2->input(1));
-
graph->freeze();
- auto fn = FN::function_from_data_flow(FN::FunctionGraph(graph,
- {
- n1->input(0),
- npass->input(0)
- },
- {
- n2->output(0)
- }));
+ FN::FunctionGraph fgraph(graph, {n1->input(0), npass->input(0)}, {n2->output(0)});
+
+ auto fn = FN::SharedFunction::New("Generated Function", fgraph.signature());
+ fn->add_body(FN::function_graph_to_callable(fgraph));
BLI::RefCounted<FN::Function> *fn_ref = fn.refcounter();
fn_ref->incref();
diff --git a/source/blender/functions/core/data_flow_graph.hpp b/source/blender/functions/core/data_flow_graph.hpp
index bf206ccdc82..44087421b1d 100644
--- a/source/blender/functions/core/data_flow_graph.hpp
+++ b/source/blender/functions/core/data_flow_graph.hpp
@@ -312,6 +312,21 @@ namespace FN {
return m_outputs;
}
+ Signature signature() const
+ {
+ InputParameters inputs;
+ OutputParameters outputs;
+
+ for (const Socket &socket : m_inputs) {
+ inputs.append(InputParameter(socket.name(), socket.type()));
+ }
+ for (const Socket &socket : m_outputs) {
+ outputs.append(OutputParameter(socket.name(), socket.type()));
+ }
+
+ return Signature(inputs, outputs);
+ }
+
private:
SharedDataFlowGraph m_graph;
SmallSocketVector m_inputs;
diff --git a/source/blender/functions/core/graph_to_function.cpp b/source/blender/functions/core/graph_to_function.cpp
index 0479a8ecddb..7b5aba05beb 100644
--- a/source/blender/functions/core/graph_to_function.cpp
+++ b/source/blender/functions/core/graph_to_function.cpp
@@ -50,29 +50,10 @@ namespace FN {
}
};
- static Signature signature_from_sockets(
- const SmallSocketVector &input_sockets,
- const SmallSocketVector &output_sockets)
+ TupleCallBody *function_graph_to_callable(
+ const FunctionGraph &function_graph)
{
- InputParameters inputs;
- OutputParameters outputs;
-
- for (const Socket &socket : input_sockets) {
- inputs.append(InputParameter(socket.name(), socket.type()));
- }
- for (const Socket &socket : output_sockets) {
- outputs.append(OutputParameter(socket.name(), socket.type()));
- }
-
- return Signature(inputs, outputs);
- }
-
- SharedFunction function_from_data_flow(const FunctionGraph &function_graph)
- {
- Signature signature = signature_from_sockets(function_graph.inputs(), function_graph.outputs());
- SharedFunction fn = SharedFunction::New(signature);
- fn->add_body<TupleCallBody>(new ExecuteGraph(function_graph));
- return fn;
+ return new ExecuteGraph(function_graph);
}
} /* namespace FN */
\ No newline at end of file
diff --git a/source/blender/functions/core/graph_to_function.hpp b/source/blender/functions/core/graph_to_function.hpp
index 39e3c74706c..102018c00ee 100644
--- a/source/blender/functions/core/graph_to_function.hpp
+++ b/source/blender/functions/core/graph_to_function.hpp
@@ -1,9 +1,11 @@
#pragma once
#include "data_flow_graph.hpp"
+#include "cpu.hpp"
namespace FN {
- SharedFunction function_from_data_flow(const FunctionGraph &graph_function);
+ TupleCallBody *function_graph_to_callable(
+ const FunctionGraph &function_graph);
} /* namespace FN */
\ No newline at end of file
More information about the Bf-blender-cvs
mailing list