Fix T59708: decimate modifier does not show face count before decimation.

This commit is contained in:
Brecht Van Lommel 2018-12-21 16:53:33 +01:00
parent d086c01645
commit 2ca4f4f0cb
Notes: blender-bot 2023-02-14 07:47:59 +01:00
Referenced by issue #60722, Decimate modifier not working in operator settings
Referenced by issue #59708, decimate modifier do not show the polycount before decimation
1 changed files with 12 additions and 6 deletions

View File

@ -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 &&