/* SPDX-License-Identifier: GPL-2.0-or-later */ /** \file * \ingroup fn */ #include "FN_lazy_function_execute.hh" namespace blender::fn::lazy_function { BasicParams::BasicParams(const LazyFunction &fn, const Span inputs, const Span outputs, MutableSpan> input_usages, Span output_usages, MutableSpan set_outputs) : Params(fn), inputs_(inputs), outputs_(outputs), input_usages_(input_usages), output_usages_(output_usages), set_outputs_(set_outputs) { } void *BasicParams::try_get_input_data_ptr_impl(const int index) const { return inputs_[index].get(); } void *BasicParams::try_get_input_data_ptr_or_request_impl(const int index) { void *value = inputs_[index].get(); if (value == nullptr) { input_usages_[index] = ValueUsage::Used; } return value; } void *BasicParams::get_output_data_ptr_impl(const int index) { return outputs_[index].get(); } void BasicParams::output_set_impl(const int index) { set_outputs_[index] = true; } bool BasicParams::output_was_set_impl(const int index) const { return set_outputs_[index]; } ValueUsage BasicParams::get_output_usage_impl(const int index) const { return output_usages_[index]; } void BasicParams::set_input_unused_impl(const int index) { input_usages_[index] = ValueUsage::Unused; } } // namespace blender::fn::lazy_function