[Bf-blender-cvs] [4d94c1a4e7d] temp-geometry-nodes-evaluator-refactor: progress

Jacques Lucke noreply at git.blender.org
Wed Aug 31 16:08:07 CEST 2022


Commit: 4d94c1a4e7d2c83b0f2b398051bda4de28172942
Author: Jacques Lucke
Date:   Tue Aug 23 12:55:11 2022 +0200
Branches: temp-geometry-nodes-evaluator-refactor
https://developer.blender.org/rB4d94c1a4e7d2c83b0f2b398051bda4de28172942

progress

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

M	source/blender/nodes/NOD_geometry_nodes_log.hh
M	source/blender/nodes/intern/geometry_nodes_log.cc

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

diff --git a/source/blender/nodes/NOD_geometry_nodes_log.hh b/source/blender/nodes/NOD_geometry_nodes_log.hh
index 4e3bd293231..93314262e0f 100644
--- a/source/blender/nodes/NOD_geometry_nodes_log.hh
+++ b/source/blender/nodes/NOD_geometry_nodes_log.hh
@@ -87,6 +87,8 @@ class GeoNodeLog {
  public:
   Vector<NodeWarning> warnings;
   std::chrono::nanoseconds run_time{0};
+  Map<std::string, ValueLog *> input_values_;
+  Map<std::string, ValueLog *> output_values_;
 };
 
 class GeoModifierLog;
@@ -97,6 +99,7 @@ class GeoTreeLog {
   Vector<GeoTreeLogger *> tree_loggers_;
   bool reduced_node_warnings_ = false;
   bool reduced_node_run_times_ = false;
+  bool reduced_socket_values_ = false;
 
  public:
   Map<std::string, GeoNodeLog> nodes;
@@ -110,6 +113,7 @@ class GeoTreeLog {
 
   void ensure_node_warnings();
   void ensure_node_run_time();
+  void ensure_socket_values();
 };
 
 class GeoModifierLog {
diff --git a/source/blender/nodes/intern/geometry_nodes_log.cc b/source/blender/nodes/intern/geometry_nodes_log.cc
index b9206cf93e8..3ff1ddc9203 100644
--- a/source/blender/nodes/intern/geometry_nodes_log.cc
+++ b/source/blender/nodes/intern/geometry_nodes_log.cc
@@ -58,6 +58,26 @@ void GeoTreeLog::ensure_node_run_time()
   reduced_node_run_times_ = true;
 }
 
+void GeoTreeLog::ensure_socket_values()
+{
+  if (reduced_socket_values_) {
+    return;
+  }
+  for (GeoTreeLogger *tree_logger : tree_loggers_) {
+    for (const std::tuple<std::string, std::string, ValueLog *> &value_log_data :
+         tree_logger->input_socket_values) {
+      this->nodes.lookup_or_add_as(std::get<0>(value_log_data))
+          .input_values_.add(std::get<1>(value_log_data), std::get<2>(value_log_data));
+    }
+    for (const std::tuple<std::string, std::string, ValueLog *> &value_log_data :
+         tree_logger->output_socket_values) {
+      this->nodes.lookup_or_add_as(std::get<0>(value_log_data))
+          .output_values_.add(std::get<1>(value_log_data), std::get<2>(value_log_data));
+    }
+  }
+  reduced_socket_values_ = true;
+}
+
 GeoTreeLogger &GeoModifierLog::get_local_tree_logger(const ContextStack &context_stack)
 {
   Map<ContextStackHash, std::unique_ptr<GeoTreeLogger>> &local_tree_loggers =



More information about the Bf-blender-cvs mailing list