From 4935ed6ce6b3e3d8829d6096bd19412d8bbb0de2 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Tue, 26 Jan 2021 12:09:44 +0100 Subject: Fix T84907: incorrect dirty mask after geometry join node Hans noticed that these dirty flags are only used for normals currently and that the edge flag is not used at all. This patch still applies the "entire" fix with all four flags. Differential Revision: https://developer.blender.org/D10193 --- .../blender/nodes/geometry/nodes/node_geo_join_geometry.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'source/blender/nodes') diff --git a/source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc b/source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc index 75736ae714a..e00ee9b01d8 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc @@ -43,18 +43,32 @@ static Mesh *join_mesh_topology_and_builtin_attributes(Spanget_for_read(); totverts += mesh->totvert; totloops += mesh->totloop; totedges += mesh->totedge; totpolys += mesh->totpoly; + cd_dirty_vert |= mesh->runtime.cd_dirty_vert; + cd_dirty_poly |= mesh->runtime.cd_dirty_poly; + cd_dirty_edge |= mesh->runtime.cd_dirty_edge; + cd_dirty_loop |= mesh->runtime.cd_dirty_loop; } const Mesh *first_input_mesh = src_components[0]->get_for_read(); Mesh *new_mesh = BKE_mesh_new_nomain(totverts, totedges, 0, totloops, totpolys); BKE_mesh_copy_settings(new_mesh, first_input_mesh); + new_mesh->runtime.cd_dirty_vert = cd_dirty_vert; + new_mesh->runtime.cd_dirty_poly = cd_dirty_poly; + new_mesh->runtime.cd_dirty_edge = cd_dirty_edge; + new_mesh->runtime.cd_dirty_loop = cd_dirty_loop; + int vert_offset = 0; int loop_offset = 0; int edge_offset = 0; -- cgit v1.2.3