diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2009-08-14 05:48:05 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2009-08-14 05:48:05 +0400 |
commit | d426676f79690dae2327eb237599b730c55a5947 (patch) | |
tree | 7d24627605b70f6d0aa2545ca44b613964bec915 /source/blender/blenkernel | |
parent | 9a654aa8de66da4bbf726e00720599f5aeb7d339 (diff) |
2.5/Multires:
Bugfixes
* Don't allow multires subdivision in editmode, this leads to corruption as noted by nudelZ. Reason is that editmode has its own copy of the MDisps customdata layer, gets written back out on exiting editmode, but the layer that was subdivided was the non-editmode original.
* Missed clearing a couple variables, caught with valgrind.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/multires.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 22a471f6521..e91f318adad 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -220,6 +220,7 @@ static void multires_subdisp(DerivedMesh *orig, Mesh *me, DerivedMesh *final, in int skip = multires_side_tot[totlvl - lvl] - 1; int i, j, k; + memset(&mmd_sub, 0, sizeof(MultiresModifierData)); mmd_sub.lvl = mmd_sub.totlvl = totlvl; mrdm = multires_dm_create_from_derived(&mmd_sub, orig, me, 0, 0); @@ -465,6 +466,7 @@ void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int dista MultiresModifierData mmd_sub; orig = CDDM_from_mesh(me, NULL); + memset(&mmd_sub, 0, sizeof(MultiresModifierData)); mmd_sub.lvl = mmd_sub.totlvl = mmd->lvl; mrdm = multires_dm_create_from_derived(&mmd_sub, orig, me, 0, 0); totsubvert = mrdm->getNumVerts(mrdm); |