|
Blender V4.3
|
Classes | |
| class | CustomMF |
| struct | MaterializeArgInfo |
Enumerations | |
| enum class | MaterializeArgMode { Unknown , Single , Span , Materialized } |
Functions | |
| template<typename MaskT , typename... Args, typename... ParamTags, size_t... I, typename ElementFn > | |
| void | execute_array (TypeSequence< ParamTags... >, std::index_sequence< I... >, ElementFn element_fn, MaskT mask, Args &&__restrict... args) |
| template<typename... ParamTags, typename ElementFn , typename... Chunks> | |
| void | execute_materialized_impl (TypeSequence< ParamTags... >, const ElementFn element_fn, const int64_t size, Chunks &&__restrict... chunks) |
| template<typename... ParamTags, size_t... I, typename ElementFn , typename... LoadedParams> | |
| void | execute_materialized (TypeSequence< ParamTags... >, std::index_sequence< I... >, const ElementFn element_fn, const IndexMaskSegment mask, const std::tuple< LoadedParams... > &loaded_params) |
| template<typename ElementFn , typename ExecPreset , typename... ParamTags, size_t... I> | |
| void | execute_element_fn_as_multi_function (const ElementFn element_fn, const ExecPreset exec_preset, const IndexMask &mask, Params params, TypeSequence< ParamTags... >, std::index_sequence< I... >) |
| template<typename ElementFn , typename ExecPreset , typename... ParamTags> | |
| auto | build_multi_function_call_from_element_fn (const ElementFn element_fn, const ExecPreset exec_preset, TypeSequence< ParamTags... >) |
| template<typename Out , typename... In, typename ElementFn , typename ExecPreset > | |
| auto | build_multi_function_with_n_inputs_one_output (const char *name, const ElementFn element_fn, const ExecPreset exec_preset, TypeSequence< In... >) |
|
strong |
| Enumerator | |
|---|---|
| Unknown | |
| Single | |
| Span | |
| Materialized | |
Definition at line 158 of file FN_multi_function_builder.hh.
|
inline |
element_fn is expected to return nothing and to have the following parameters:
Definition at line 490 of file FN_multi_function_builder.hh.
References execute_element_fn_as_multi_function(), mask(), and params.
Referenced by build_multi_function_with_n_inputs_one_output(), and blender::fn::multi_function::build::SM().
|
inline |
Definition at line 529 of file FN_multi_function_builder.hh.
References build_multi_function_call_from_element_fn().
Referenced by blender::fn::multi_function::build::SI1_SO(), blender::fn::multi_function::build::SI2_SO(), blender::fn::multi_function::build::SI3_SO(), blender::fn::multi_function::build::SI4_SO(), blender::fn::multi_function::build::SI5_SO(), and blender::fn::multi_function::build::SI6_SO().
|
inline |
Executes #element_fn for all indices in the mask. The passed in #args contain the input as well as output parameters. Usually types in #args are devirtualized (e.g. a Span<int> is passed in instead of a VArray<int>).
Definition at line 135 of file FN_multi_function_builder.hh.
References mask().
Referenced by execute_element_fn_as_multi_function().
|
inline |
Definition at line 385 of file FN_multi_function_builder.hh.
References blender::call_with_devirtualized_parameters(), blender::fn::multi_function::ParamTag< Category, T >::category, ELEM, execute_array(), execute_materialized(), I, blender::fn::multi_function::build::exec_presets::Materialized, params, ptr, blender::fn::multi_function::SingleInput, blender::fn::multi_function::SingleMutable, blender::fn::multi_function::SingleOutput, T, blender::GVArray::typed(), and UNUSED_VARS.
Referenced by build_multi_function_call_from_element_fn().
|
inline |
Executes #element_fn for all indices in #mask. However, instead of processing every element separately, processing happens in chunks. This allows retrieving from input virtual arrays in chunks, which reduces virtual function call overhead.
Definition at line 194 of file FN_multi_function_builder.hh.
References blender::OffsetSpan< T, BaseT >::base_span(), blender::fn::multi_function::ParamTag< Category, T >::category, blender::GVArrayImpl::common_info(), blender::CommonVArrayInfo::data, blender::destruct_n(), ELEM, execute_materialized_impl(), blender::fn::multi_function::build::detail::MaterializeArgInfo< ParamTag >::internal_span_data, blender::GVArrayImpl::materialize_compressed_to_uninitialized(), Materialized, blender::fn::multi_function::build::detail::MaterializeArgInfo< ParamTag >::mode, blender::unique_sorted_indices::non_empty_is_range(), blender::CommonVArrayInfo::Single, Single, blender::fn::multi_function::SingleInput, blender::fn::multi_function::SingleMutable, blender::fn::multi_function::SingleOutput, blender::index_mask::IndexMaskSegment::slice(), blender::CommonVArrayInfo::Span, Span, T, blender::CommonVArrayInfo::type, blender::uninitialized_fill_n(), and blender::index_mask::IndexMaskFromSegment::update().
Referenced by execute_element_fn_as_multi_function().
|
inline |
Similar to execute_array but is only used with arrays and does not need a mask.
Definition at line 178 of file FN_multi_function_builder.hh.
References size().
Referenced by execute_materialized().