diff options
author | Jacques Lucke <jacques@blender.org> | 2021-04-15 12:21:35 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-04-15 12:21:48 +0300 |
commit | 05dbbd83f00d270c00cb1a0904c504c31e1812af (patch) | |
tree | 47ca07fd617f692518a254bbf01d2e76d45cc697 /source/blender/modifiers | |
parent | 2c3a9caffee61d52cc50a70ff9b2ec3984ee0fc5 (diff) |
Geometry Nodes: refactor implicit conversions
This refactor simplifies having standalone function pointer that
does a single conversion. It also speeds up implicit type conversion
of attributes.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r-- | source/blender/modifiers/intern/MOD_nodes.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc index 9329bc85e66..4a384063571 100644 --- a/source/blender/modifiers/intern/MOD_nodes.cc +++ b/source/blender/modifiers/intern/MOD_nodes.cc @@ -583,7 +583,8 @@ class GeometryNodesEvaluator { else { void *buffer = allocator_.allocate(to_type.size(), to_type.alignment()); if (conversions_.is_convertible(from_type, to_type)) { - conversions_.convert(from_type, to_type, value_to_forward.get(), buffer); + conversions_.convert_to_uninitialized( + from_type, to_type, value_to_forward.get(), buffer); } else { to_type.copy_to_uninitialized(to_type.default_value(), buffer); @@ -653,7 +654,7 @@ class GeometryNodesEvaluator { if (conversions_.is_convertible(type, required_type)) { void *converted_buffer = allocator_.allocate(required_type.size(), required_type.alignment()); - conversions_.convert(type, required_type, buffer, converted_buffer); + conversions_.convert_to_uninitialized(type, required_type, buffer, converted_buffer); type.destruct(buffer); return {required_type, converted_buffer}; } |