[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