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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-12-21 18:53:33 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-12-21 18:55:26 +0300
commit2ca4f4f0cb8d5d7e0b759fdc5b5a5b7adf7a5817 (patch)
treeedd8b0c1e2edea3bee950a0d78600316808b0d3f /source/blender/modifiers/intern/MOD_decimate.c
parentd086c01645e4f089a0dfb03b0267a7107affc490 (diff)
Fix T59708: decimate modifier does not show face count before decimation.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_decimate.c')
-rw-r--r--source/blender/modifiers/intern/MOD_decimate.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c
index 28b38dc638c..fff94e0d836 100644
--- a/source/blender/modifiers/intern/MOD_decimate.c
+++ b/source/blender/modifiers/intern/MOD_decimate.c
@@ -88,6 +88,16 @@ static DecimateModifierData *getOriginalModifierData(
return (DecimateModifierData *)modifiers_findByName(ob_orig, dmd->modifier.name);
}
+static void updateFaceCount(
+ const ModifierEvalContext *ctx, const DecimateModifierData *dmd, int face_count)
+{
+ if (DEG_is_active(ctx->depsgraph)) {
+ /* update for display only */
+ DecimateModifierData *dmd_orig = getOriginalModifierData(dmd, ctx);
+ dmd_orig->face_count = face_count;
+ }
+}
+
static Mesh *applyModifier(
ModifierData *md, const ModifierEvalContext *ctx,
Mesh *meshData)
@@ -103,7 +113,7 @@ static Mesh *applyModifier(
#endif
/* set up front so we dont show invalid info in the UI */
- dmd->face_count = mesh->totpoly;
+ updateFaceCount(ctx, dmd, mesh->totpoly);
switch (dmd->mode) {
case MOD_DECIM_MODE_COLLAPSE:
@@ -196,11 +206,7 @@ static Mesh *applyModifier(
MEM_freeN(vweights);
}
- if (DEG_is_active(ctx->depsgraph)) {
- /* update for display only */
- DecimateModifierData *dmd_orig = getOriginalModifierData(dmd, ctx);
- dmd_orig->face_count = bm->totface;
- }
+ updateFaceCount(ctx, dmd, bm->totface);
result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BLI_assert(bm->vtoolflagpool == NULL &&