68 std::shared_ptr<ClosureSignature> signature_;
69 std::optional<ClosureSourceLocation> source_location_;
70 std::shared_ptr<ClosureEvalLog> eval_log_;
77 std::unique_ptr<ResourceScope> scope_;
84 std::unique_ptr<ResourceScope> scope,
89 std::shared_ptr<ClosureEvalLog> eval_log)
93 scope_(std::move(scope)),
96 default_input_values_(std::move(default_input_values))
117 return source_location_;
127 return default_input_values_[index];
140 std::lock_guard
lock{eval_log_->mutex};
141 eval_log_->evaluations.append(location);
std::optional< int > find_input_index(const SocketInterfaceKey &key) const
std::optional< int > find_output_index(const SocketInterfaceKey &key) const
const std::optional< ClosureSourceLocation > & source_location() const
const std::shared_ptr< ClosureEvalLog > & eval_log_ptr() const
const ClosureSignature & signature() const
void log_evaluation(const ClosureEvalLocation &location) const
const fn::lazy_function::LazyFunction & function() const
void delete_self() override
Closure(std::shared_ptr< ClosureSignature > signature, std::unique_ptr< ResourceScope > scope, const fn::lazy_function::LazyFunction &function, ClosureFunctionIndices indices, Vector< const void * > default_input_values, std::optional< ClosureSourceLocation > source_location, std::shared_ptr< ClosureEvalLog > eval_log)
const ClosureFunctionIndices & indices() const
const void * default_input_value(const int index) const
Map< int, int > output_data_reference_sets
struct blender::nodes::ClosureFunctionIndices::@1303 outputs
struct blender::nodes::ClosureFunctionIndices::@1302 inputs
const bke::bNodeSocketType * type