[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58009] trunk/blender/source/blender: fix for [#35911] wasn't complete, while weigths would show in editmode, weights that were modified by a weight modifier wouldn't.
Campbell Barton
ideasman42 at gmail.com
Fri Jul 5 00:24:40 CEST 2013
Revision: 58009
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58009
Author: campbellbarton
Date: 2013-07-04 22:24:39 +0000 (Thu, 04 Jul 2013)
Log Message:
-----------
fix for [#35911] wasn't complete, while weigths would show in editmode, weights that were modified by a weight modifier wouldn't.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
trunk/blender/source/blender/blenkernel/intern/modifier.c
trunk/blender/source/blender/editors/space_view3d/drawobject.c
Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c 2013-07-04 21:49:48 UTC (rev 58008)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c 2013-07-04 22:24:39 UTC (rev 58009)
@@ -1945,10 +1945,10 @@
static void editbmesh_calc_modifiers(Scene *scene, Object *ob, BMEditMesh *em, DerivedMesh **cage_r,
DerivedMesh **final_r,
CustomDataMask dataMask)
-{
+ {
ModifierData *md, *previewmd = NULL;
float (*deformedVerts)[3] = NULL;
- CustomDataMask mask, previewmask = 0;
+ CustomDataMask mask, previewmask = 0, append_mask = 0;
DerivedMesh *dm, *orcodm = NULL;
int i, numVerts = 0, cageIndex = modifiers_getCageIndex(scene, ob, NULL, 1);
CDMaskLink *datamasks, *curr;
@@ -2083,6 +2083,7 @@
}
/* set the DerivedMesh to only copy needed data */
+ mask |= append_mask;
mask = curr->mask; /* CD_MASK_ORCO may have been cleared above */
DM_set_only_copy(dm, mask | CD_MASK_ORIGINDEX);
@@ -2112,6 +2113,12 @@
}
}
+ /* In case of active preview modifier, make sure preview mask remains for following modifiers. */
+ if ((md == previewmd) && (do_mod_wmcol)) {
+ DM_update_weight_mcol(ob, dm, draw_flag, NULL, 0, NULL);
+ append_mask |= CD_MASK_PREVIEW_MLOOPCOL;
+ }
+
if (cage_r && i == cageIndex) {
if (dm && deformedVerts) {
*cage_r = CDDM_copy(dm);
Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c 2013-07-04 21:49:48 UTC (rev 58008)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c 2013-07-04 22:24:39 UTC (rev 58009)
@@ -421,7 +421,7 @@
{
ModifierData *tmp_md = NULL;
- if (required_mode != eModifierMode_Realtime)
+ if ((required_mode & ~eModifierMode_Editmode) != eModifierMode_Realtime)
return tmp_md;
/* Find the latest modifier in stack generating preview. */
Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c 2013-07-04 21:49:48 UTC (rev 58008)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c 2013-07-04 22:24:39 UTC (rev 58009)
@@ -3020,7 +3020,7 @@
BMEdge *eed_act = NULL;
BMVert *eve_act = NULL;
- if (cageDM) BLI_assert(!(cageDM->dirty & DM_DIRTY_NORMALS));
+ // if (cageDM) BLI_assert(!(cageDM->dirty & DM_DIRTY_NORMALS));
if (finalDM) BLI_assert(!(finalDM->dirty & DM_DIRTY_NORMALS));
if (em->bm->selected.last) {
More information about the Bf-blender-cvs
mailing list