diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-09-22 16:53:04 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-09-22 17:08:45 +0300 |
commit | e57ce464c21f405edacbfb806114e3acfdcc1410 (patch) | |
tree | 5c4b1b6c31ec56d38b0edf6d608b8048a1087ef1 /intern | |
parent | 53e7c64be7f1c7aebf65aa6082ec51146da387f5 (diff) |
Fix T91600: Cycles viewport not updaing on metaball changes
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/blender/blender_geometry.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/intern/cycles/blender/blender_geometry.cpp b/intern/cycles/blender/blender_geometry.cpp index b1de37dac10..fca8cb9eda3 100644 --- a/intern/cycles/blender/blender_geometry.cpp +++ b/intern/cycles/blender/blender_geometry.cpp @@ -80,7 +80,9 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph, { /* Test if we can instance or if the object is modified. */ Geometry::Type geom_type = determine_geom_type(b_ob_info, use_particle_hair); - GeometryKey key(b_ob_info.object_data, geom_type); + BL::ID b_key_id = (BKE_object_is_modified(b_ob_info.real_object)) ? b_ob_info.real_object : + b_ob_info.object_data; + GeometryKey key(b_key_id.ptr.data, geom_type); /* Find shader indices. */ array<Node *> used_shaders = find_used_shaders(b_ob_info.iter_object); @@ -110,7 +112,7 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph, } else { /* Test if we need to update existing geometry. */ - sync = geometry_map.update(geom, b_ob_info.object_data); + sync = geometry_map.update(geom, b_key_id); } if (!sync) { |