From 05dbbd83f00d270c00cb1a0904c504c31e1812af Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Thu, 15 Apr 2021 11:21:35 +0200 Subject: 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. --- source/blender/modifiers/intern/MOD_nodes.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender/modifiers') 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}; } -- cgit v1.2.3