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:
authorCampbell Barton <ideasman42@gmail.com>2020-09-23 08:09:53 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-09-23 08:26:01 +0300
commitea5c8c4e844f29772f9b4381ead04b0be68df30d (patch)
tree139efe2d72d514284104e2236fce8f330493b350 /source/blender/blenkernel
parent5a28090977d66d8e52d269fb5bb938d953191dde (diff)
Cleanup: re-order constructive modifier checks
Minor changes to simplify fix (coming next), no functional changes.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c32
1 files changed, 14 insertions, 18 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index bfdc8ad37e5..2f910f66cce 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1101,31 +1101,27 @@ static void mesh_calc_modifiers(struct Depsgraph *depsgraph,
BKE_modifier_deform_verts(md, &mectx, mesh_final, deformed_verts, num_deformed_verts);
}
else {
- have_non_onlydeform_modifiers_appled = true;
-
- /* determine which data layers are needed by following modifiers */
- CustomData_MeshMasks nextmask;
- if (md_datamask->next) {
- nextmask = md_datamask->next->mask;
- }
- else {
- nextmask = final_datamask;
- }
-
+ bool check_for_needs_mapping = false;
/* apply vertex coordinates or build a Mesh as necessary */
- if (mesh_final) {
- if (deformed_verts) {
- BKE_mesh_vert_coords_apply(mesh_final, deformed_verts);
- }
+ if (mesh_final != NULL) {
+ /* pass */
}
else {
mesh_final = BKE_mesh_copy_for_eval(mesh_input, true);
ASSERT_IS_VALID_MESH(mesh_final);
+ check_for_needs_mapping = true;
+ }
- if (deformed_verts) {
- BKE_mesh_vert_coords_apply(mesh_final, deformed_verts);
- }
+ if (deformed_verts) {
+ BKE_mesh_vert_coords_apply(mesh_final, deformed_verts);
+ }
+
+ have_non_onlydeform_modifiers_appled = true;
+
+ /* determine which data layers are needed by following modifiers */
+ CustomData_MeshMasks nextmask = md_datamask->next ? md_datamask->next->mask : final_datamask;
+ if (check_for_needs_mapping) {
/* Initialize original indices the first time we evaluate a
* constructive modifier. Modifiers will then do mapping mostly
* automatic by copying them through CustomData_copy_data along