Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-04-15 12:21:35 +0300
committerJacques Lucke <jacques@blender.org>2021-04-15 12:21:48 +0300
commit05dbbd83f00d270c00cb1a0904c504c31e1812af (patch)
tree47ca07fd617f692518a254bbf01d2e76d45cc697 /source/blender/modifiers
parent2c3a9caffee61d52cc50a70ff9b2ec3984ee0fc5 (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.cc5
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};
}