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>2013-06-13 04:33:48 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-06-13 04:33:48 +0400
commit532503e0cb4fb76b8ef67f3b93ec3bd29d199089 (patch)
treefd5a195df71b4b60347b0aef3aa276532d6752fe /source/blender/blenkernel/intern/modifier.c
parenta5f60e933755357bb54f821c5011ebc108de772c (diff)
fix for problem with creating weight-paint preview.
In the case where the modifier stack didnt need deform-verts to calculate, they would not be available for the preview either. This fixes a bug caused by r57206 which set mirror to preview so the mirrored weights would be displayed, but it only worked when there was an armature after it, see [#35545].
Diffstat (limited to 'source/blender/blenkernel/intern/modifier.c')
-rw-r--r--source/blender/blenkernel/intern/modifier.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 1ebe99eb660..c17830639e4 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -363,7 +363,9 @@ bool modifier_isEnabled(struct Scene *scene, ModifierData *md, int required_mode
return 1;
}
-CDMaskLink *modifiers_calcDataMasks(struct Scene *scene, Object *ob, ModifierData *md, CustomDataMask dataMask, int required_mode)
+CDMaskLink *modifiers_calcDataMasks(struct Scene *scene, Object *ob, ModifierData *md,
+ CustomDataMask dataMask, int required_mode,
+ ModifierData *previewmd, CustomDataMask previewmask)
{
CDMaskLink *dataMasks = NULL;
CDMaskLink *curr, *prev;
@@ -374,10 +376,15 @@ CDMaskLink *modifiers_calcDataMasks(struct Scene *scene, Object *ob, ModifierDat
curr = MEM_callocN(sizeof(CDMaskLink), "CDMaskLink");
- if (modifier_isEnabled(scene, md, required_mode))
+ if (modifier_isEnabled(scene, md, required_mode)) {
if (mti->requiredDataMask)
curr->mask = mti->requiredDataMask(ob, md);
+ if (previewmd == md) {
+ curr->mask |= previewmask;
+ }
+ }
+
/* prepend new datamask */
curr->next = dataMasks;
dataMasks = curr;