diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2013-11-26 20:09:15 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2013-11-26 22:55:41 +0400 |
commit | 5102a02b388bdf41f2a2d587980a0d9457d19d88 (patch) | |
tree | e16ca71e31fe7ef73c053e39797db6a698292d9a /source/blender/blenkernel | |
parent | b65eb761cc13043d3a9c49f447afc22a11c20d6c (diff) |
Fix T37541: multires not reading external displacement file after entering edit mode.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/customdata.c | 9 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/multires.c | 2 |
2 files changed, 5 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index a7d87fad38e..7cbcbaf909a 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -507,16 +507,15 @@ static void layerCopy_mdisps(const void *source, void *dest, int count) if (s[i].disps) { d[i].disps = MEM_dupallocN(s[i].disps); d[i].hidden = MEM_dupallocN(s[i].hidden); - d[i].totdisp = s[i].totdisp; - d[i].level = s[i].level; } else { d[i].disps = NULL; d[i].hidden = NULL; - d[i].totdisp = 0; - d[i].level = 0; } - + + /* still copy even if not in memory, displacement can be external */ + d[i].totdisp = s[i].totdisp; + d[i].level = s[i].level; } } diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 0cdcf4e7298..7ef2505f4e9 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -2288,7 +2288,7 @@ void multires_topology_changed(Mesh *me) MDisps *mdisp = NULL, *cur = NULL; int i, grid = 0; - CustomData_external_read(&me->ldata, &me->id, CD_MASK_MDISPS, me->totface); + CustomData_external_read(&me->ldata, &me->id, CD_MASK_MDISPS, me->totloop); mdisp = CustomData_get_layer(&me->ldata, CD_MDISPS); if (!mdisp) |