[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