|
Blender
V2.93
|
This keeps track of all the values that flow through the multi-function network. Therefore it maintains a mapping between output sockets and their corresponding values. Every value references some memory, that is owned either by the caller or this storage.
A value can be owned by different sockets over time to avoid unnecessary copies.
Definition at line 54 of file multi_function_network_evaluation.cc.
| blender::fn::MFNetworkEvaluationStorage::MFNetworkEvaluationStorage | ( | IndexMask | mask, |
| int | socket_id_amount | ||
| ) |
Definition at line 525 of file multi_function_network_evaluation.cc.
| blender::fn::MFNetworkEvaluationStorage::~MFNetworkEvaluationStorage | ( | ) |
Definition at line 532 of file multi_function_network_evaluation.cc.
References blender::fn::GMutableSpan::data(), blender::fn::OwnSingleValue::is_single_allocated, MEM_freeN, blender::fn::OwnSingle, blender::fn::OwnVector, blender::fn::OwnSingleValue::span, blender::fn::GMutableSpan::type(), type, and blender::fn::OwnVectorValue::vector_array.
| void blender::fn::MFNetworkEvaluationStorage::add_single_input_from_caller | ( | const MFOutputSocket & | socket, |
| const GVArray & | virtual_array | ||
| ) |
Definition at line 676 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::id(), and blender::fn::GVArray::size().
| void blender::fn::MFNetworkEvaluationStorage::add_single_output_from_caller | ( | const MFOutputSocket & | socket, |
| GMutableSpan | span | ||
| ) |
Definition at line 696 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::id(), and blender::fn::GMutableSpan::size().
| void blender::fn::MFNetworkEvaluationStorage::add_vector_input_from_caller | ( | const MFOutputSocket & | socket, |
| const GVVectorArray & | virtual_vector_array | ||
| ) |
Definition at line 686 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::id(), and blender::fn::GVVectorArray::size().
| void blender::fn::MFNetworkEvaluationStorage::add_vector_output_from_caller | ( | const MFOutputSocket & | socket, |
| GVectorArray & | vector_array | ||
| ) |
Definition at line 706 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::id(), and blender::fn::GVectorArray::size().
| void blender::fn::MFNetworkEvaluationStorage::finish_input_socket | ( | const MFInputSocket & | socket | ) |
Definition at line 628 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::fn::GMutableSpan::data(), blender::fn::MFSocket::id(), blender::fn::InputSingle, blender::fn::InputVector, blender::fn::OwnSingleValue::is_single_allocated, blender::fn::OwnSingleValue::max_remaining_users, blender::fn::OwnVectorValue::max_remaining_users, MEM_freeN, blender::fn::MFInputSocket::origin(), blender::fn::OutputSingle, blender::fn::OutputVector, blender::fn::OwnSingle, blender::fn::OwnVector, blender::fn::OwnSingleValue::span, blender::fn::GMutableSpan::type(), blender::fn::Value::type, type, and blender::fn::OwnVectorValue::vector_array.
Referenced by finish_node().
| void blender::fn::MFNetworkEvaluationStorage::finish_node | ( | const MFFunctionNode & | node | ) |
Definition at line 606 of file multi_function_network_evaluation.cc.
References finish_input_socket(), finish_output_socket(), and node.
| void blender::fn::MFNetworkEvaluationStorage::finish_output_socket | ( | const MFOutputSocket & | socket | ) |
Definition at line 616 of file multi_function_network_evaluation.cc.
References ELEM, blender::fn::MFSocket::id(), blender::fn::OutputSingle, blender::fn::OutputVector, and blender::fn::Value::type.
Referenced by finish_node().
| GMutableSpan blender::fn::MFNetworkEvaluationStorage::get_mutable_single__full | ( | const MFInputSocket & | input, |
| const MFOutputSocket & | output, | ||
| ResourceScope & | scope | ||
| ) |
Definition at line 794 of file multi_function_network_evaluation.cc.
References AT, BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::GMutableSpan::data(), blender::fn::MFSocket::data_type(), from, get_single_input__full(), blender::fn::MFSocket::id(), blender::fn::OwnSingleValue::is_single_allocated, blender::fn::GVArray::materialize_to_uninitialized(), blender::fn::OwnSingleValue::max_remaining_users, MEM_mallocN_aligned, blender::fn::MFInputSocket::origin(), output, blender::fn::OutputSingle, blender::fn::OwnSingle, blender::fn::MFDataType::single_type(), blender::fn::OwnSingleValue::span, blender::fn::MFOutputSocket::targets(), blender::fn::Value::type, and type.
| GMutableSpan blender::fn::MFNetworkEvaluationStorage::get_mutable_single__single | ( | const MFInputSocket & | input, |
| const MFOutputSocket & | output, | ||
| ResourceScope & | scope | ||
| ) |
Definition at line 836 of file multi_function_network_evaluation.cc.
References blender::LinearAllocator< Allocator >::allocate(), BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::data_type(), from, get_single_input__single(), blender::fn::GVArray::get_single_to_uninitialized(), blender::fn::MFSocket::id(), blender::fn::OwnSingleValue::max_remaining_users, blender::fn::MFInputSocket::origin(), output, blender::fn::OutputSingle, blender::fn::OwnSingle, blender::fn::MFDataType::single_type(), blender::fn::GMutableSpan::size(), blender::fn::OwnSingleValue::span, blender::fn::MFOutputSocket::targets(), blender::fn::Value::type, and type.
| GVectorArray & blender::fn::MFNetworkEvaluationStorage::get_mutable_vector__full | ( | const MFInputSocket & | input, |
| const MFOutputSocket & | output, | ||
| ResourceScope & | scope | ||
| ) |
Definition at line 881 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::data_type(), blender::fn::GVectorArray::extend(), from, get_vector_input__full(), blender::fn::MFSocket::id(), blender::fn::OwnVectorValue::max_remaining_users, blender::fn::MFInputSocket::origin(), output, blender::fn::OutputVector, blender::fn::OwnVector, blender::fn::MFOutputSocket::targets(), blender::fn::Value::type, blender::fn::OwnVectorValue::vector_array, and blender::fn::MFDataType::vector_base_type().
| GVectorArray & blender::fn::MFNetworkEvaluationStorage::get_mutable_vector__single | ( | const MFInputSocket & | input, |
| const MFOutputSocket & | output, | ||
| ResourceScope & | scope | ||
| ) |
Definition at line 924 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::data_type(), blender::fn::GVectorArray::extend(), from, get_vector_input__single(), blender::fn::MFSocket::id(), blender::fn::OwnVectorValue::max_remaining_users, blender::fn::MFInputSocket::origin(), output, blender::fn::OutputVector, blender::fn::OwnVector, blender::fn::GVectorArray::size(), blender::fn::MFOutputSocket::targets(), blender::fn::Value::type, blender::fn::OwnVectorValue::vector_array, and blender::fn::MFDataType::vector_base_type().
| const GVArray & blender::fn::MFNetworkEvaluationStorage::get_single_input__full | ( | const MFInputSocket & | socket, |
| ResourceScope & | scope | ||
| ) |
Definition at line 967 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::ResourceScope::construct(), blender::fn::GMutableSpan::data(), blender::fn::MFSocket::id(), blender::fn::InputSingle, blender::fn::OutputValue::is_computed, blender::fn::OwnSingleValue::is_single_allocated, blender::fn::MFInputSocket::origin(), blender::fn::OutputSingle, blender::fn::OwnSingle, blender::fn::OutputSingleValue::span, blender::fn::OwnSingleValue::span, blender::fn::GMutableSpan::type(), blender::fn::Value::type, and blender::fn::InputSingleValue::virtual_array.
Referenced by get_mutable_single__full().
| const GVArray & blender::fn::MFNetworkEvaluationStorage::get_single_input__single | ( | const MFInputSocket & | socket, |
| ResourceScope & | scope | ||
| ) |
Definition at line 997 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::ResourceScope::construct(), blender::fn::MFSocket::id(), blender::fn::InputSingle, blender::fn::OutputValue::is_computed, blender::fn::GVArray::is_single(), blender::fn::MFInputSocket::origin(), blender::fn::OutputSingle, blender::fn::OwnSingle, blender::fn::GMutableSpan::size(), blender::fn::OutputSingleValue::span, blender::fn::OwnSingleValue::span, blender::fn::Value::type, and blender::fn::InputSingleValue::virtual_array.
Referenced by get_mutable_single__single().
| GMutableSpan blender::fn::MFNetworkEvaluationStorage::get_single_output__full | ( | const MFOutputSocket & | socket | ) |
Definition at line 716 of file multi_function_network_evaluation.cc.
References AT, BLI_assert, buffer, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::data_type(), blender::fn::MFSocket::id(), MEM_mallocN_aligned, blender::fn::OutputSingle, blender::fn::MFDataType::single_type(), blender::fn::MFOutputSocket::targets(), blender::fn::Value::type, and type.
| GMutableSpan blender::fn::MFNetworkEvaluationStorage::get_single_output__single | ( | const MFOutputSocket & | socket | ) |
Definition at line 735 of file multi_function_network_evaluation.cc.
References blender::LinearAllocator< Allocator >::allocate(), BLI_assert, buffer, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::data_type(), blender::fn::MFSocket::id(), blender::fn::OutputSingle, blender::fn::MFDataType::single_type(), blender::fn::GMutableSpan::size(), blender::fn::MFOutputSocket::targets(), blender::fn::Value::type, and type.
| const GVVectorArray & blender::fn::MFNetworkEvaluationStorage::get_vector_input__full | ( | const MFInputSocket & | socket, |
| ResourceScope & | scope | ||
| ) |
Definition at line 1025 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::ResourceScope::construct(), blender::fn::MFSocket::id(), blender::fn::InputVector, blender::fn::MFInputSocket::origin(), blender::fn::OutputVector, blender::fn::OwnVector, blender::fn::GVectorArray::size(), blender::fn::Value::type, blender::fn::OutputVectorValue::vector_array, blender::fn::OwnVectorValue::vector_array, and blender::fn::InputVectorValue::virtual_vector_array.
Referenced by get_mutable_vector__full().
| const GVVectorArray & blender::fn::MFNetworkEvaluationStorage::get_vector_input__single | ( | const MFInputSocket & | socket, |
| ResourceScope & | scope | ||
| ) |
Definition at line 1054 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::ResourceScope::construct(), blender::fn::MFSocket::id(), blender::fn::InputVector, blender::fn::GVVectorArray::is_single_vector(), blender::fn::MFInputSocket::origin(), blender::fn::OutputVector, blender::fn::OwnVector, blender::fn::GVectorArray::size(), blender::fn::Value::type, blender::fn::OutputVectorValue::vector_array, blender::fn::OwnVectorValue::vector_array, and blender::fn::InputVectorValue::virtual_vector_array.
Referenced by get_mutable_vector__single().
| GVectorArray & blender::fn::MFNetworkEvaluationStorage::get_vector_output__full | ( | const MFOutputSocket & | socket | ) |
Definition at line 756 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::data_type(), blender::fn::MFSocket::id(), blender::fn::OutputVector, blender::fn::MFOutputSocket::targets(), blender::fn::Value::type, type, and blender::fn::MFDataType::vector_base_type().
| GVectorArray & blender::fn::MFNetworkEvaluationStorage::get_vector_output__single | ( | const MFOutputSocket & | socket | ) |
Definition at line 774 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::LinearAllocator< Allocator >::construct(), blender::fn::MFSocket::data_type(), blender::fn::MFSocket::id(), blender::fn::OutputVector, blender::fn::GVectorArray::size(), blender::fn::MFOutputSocket::targets(), blender::fn::Value::type, type, and blender::fn::MFDataType::vector_base_type().
| bool blender::fn::MFNetworkEvaluationStorage::is_same_value_for_every_index | ( | const MFOutputSocket & | socket | ) |
Definition at line 574 of file multi_function_network_evaluation.cc.
References BLI_assert, blender::fn::MFSocket::id(), blender::fn::InputSingle, blender::fn::InputVector, blender::fn::OutputSingle, blender::fn::OutputVector, blender::fn::OwnSingle, blender::fn::OwnVector, and blender::fn::Value::type.
| IndexMask blender::fn::MFNetworkEvaluationStorage::mask | ( | ) | const |
Definition at line 557 of file multi_function_network_evaluation.cc.
| bool blender::fn::MFNetworkEvaluationStorage::socket_has_buffer_for_output | ( | const MFOutputSocket & | socket | ) |
Definition at line 595 of file multi_function_network_evaluation.cc.
References BLI_assert, ELEM, blender::fn::MFSocket::id(), blender::fn::OutputSingle, blender::fn::OutputVector, and blender::fn::Value::type.
| bool blender::fn::MFNetworkEvaluationStorage::socket_is_computed | ( | const MFOutputSocket & | socket | ) |
Definition at line 562 of file multi_function_network_evaluation.cc.
References ELEM, blender::fn::MFSocket::id(), blender::fn::OutputSingle, blender::fn::OutputVector, and blender::fn::Value::type.