From 2ca4f4f0cb8d5d7e0b759fdc5b5a5b7adf7a5817 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 21 Dec 2018 16:53:33 +0100 Subject: Fix T59708: decimate modifier does not show face count before decimation. --- source/blender/modifiers/intern/MOD_decimate.c | 18 ++++++++++++------ 1 file 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 && -- cgit v1.2.3