diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-01-21 01:40:42 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-01-21 01:40:42 +0300 |
commit | 82610dcb7c6cd807d5f1fba88c6cdcb61065915b (patch) | |
tree | f9e8341601af84cb04488f3db0ad33ab4b2ac541 /source/blender/modifiers | |
parent | 793e0f85c772abde630f82d5848c5b5953b6f760 (diff) | |
parent | 19622ffc5b84475a6c3b56ff0595811a503f461c (diff) |
Merge branch 'master' into temp-abc-features
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r-- | source/blender/modifiers/intern/MOD_boolean.cc | 11 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_meshsequencecache.cc | 8 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_subsurf.c | 3 |
3 files changed, 13 insertions, 9 deletions
diff --git a/source/blender/modifiers/intern/MOD_boolean.cc b/source/blender/modifiers/intern/MOD_boolean.cc index f8c181905b5..bb05ae3e1b3 100644 --- a/source/blender/modifiers/intern/MOD_boolean.cc +++ b/source/blender/modifiers/intern/MOD_boolean.cc @@ -248,9 +248,14 @@ static BMesh *BMD_mesh_bm_create( BMeshCreateParams bmesh_create_params{}; BMesh *bm = BM_mesh_create(&allocsize, &bmesh_create_params); - /* Needed so active layers are set based on `mesh` not `mesh_operand_ob`, - * otherwise the wrong active render layer is used, see T92384. */ - BM_mesh_copy_init_customdata_from_mesh(bm, mesh, &allocsize); + /* Keep `mesh` first, needed so active layers are set based on `mesh` not `mesh_operand_ob`, + * otherwise the wrong active render layer is used, see T92384. + * + * NOTE: while initializing customer data layers the is not essential, + * it avoids the overhead of having to re-allocate #BMHeader.data when the 2nd mesh is added + * (if it contains additional custom-data layers). */ + const Mesh *mesh_array[2] = {mesh, mesh_operand_ob}; + BM_mesh_copy_init_customdata_from_mesh_array(bm, mesh_array, ARRAY_SIZE(mesh_array), &allocsize); BMeshFromMeshParams bmesh_from_mesh_params{}; bmesh_from_mesh_params.calc_face_normal = true; diff --git a/source/blender/modifiers/intern/MOD_meshsequencecache.cc b/source/blender/modifiers/intern/MOD_meshsequencecache.cc index 757d184f9ce..6b8b83e842c 100644 --- a/source/blender/modifiers/intern/MOD_meshsequencecache.cc +++ b/source/blender/modifiers/intern/MOD_meshsequencecache.cc @@ -534,12 +534,8 @@ static void panelRegister(ARegionType *region_type) nullptr, override_layers_panel_draw, panel_type); - modifier_subpanel_register(region_type, - "velocity_parameters", - "Velocity Parameters", - nullptr, - velocity_panel_draw, - panel_type); + modifier_subpanel_register( + region_type, "velocity", "Velocity", nullptr, velocity_panel_draw, panel_type); modifier_subpanel_register(region_type, "attribute_remapping", "Attribute Remapping", diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c index 00870d076ef..b77f6b7e3e2 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.c +++ b/source/blender/modifiers/intern/MOD_subsurf.c @@ -85,6 +85,9 @@ static void requiredDataMask(Object *UNUSED(ob), r_cddata_masks->lmask |= CD_MASK_NORMAL; r_cddata_masks->lmask |= CD_MASK_CUSTOMLOOPNORMAL; } + if (smd->flags & eSubsurfModifierFlag_UseCrease) { + r_cddata_masks->vmask |= CD_MASK_CREASE; + } } static bool dependsOnNormals(ModifierData *md) |