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:
authorNicholas Bishop <nicholasbishop@gmail.com>2010-06-07 08:48:22 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2010-06-07 08:48:22 +0400
commit0a7d036f324e9bcf9285ff292890c940d90fbc06 (patch)
treefa513d10a086d157d93cf942a33b3ead8e874436 /source/blender/blenkernel/intern/multires.c
parent876e71844b14d544b99d3c76f7cd2169cd396912 (diff)
Fixed bug #22293, v2.49b to v2.5alpha2 incompatibility
* UV data on multires meshes wasn't getting imported properly. Fixed by separately loading in all "first-level" data from the old multires data type into mesh. Note that an "incorrect" data layers might still be loaded and be active on the mesh, but the correct layers should now also show up in the UV layer selector.
Diffstat (limited to 'source/blender/blenkernel/intern/multires.c')
-rw-r--r--source/blender/blenkernel/intern/multires.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c
index 87557ea7f2e..d567e0f0408 100644
--- a/source/blender/blenkernel/intern/multires.c
+++ b/source/blender/blenkernel/intern/multires.c
@@ -1286,6 +1286,7 @@ void multires_load_old(Object *ob, Mesh *me)
ModifierData *md;
MultiresModifierData *mmd;
DerivedMesh *dm, *orig;
+ CustomDataLayer *l;
int i;
/* Load original level into the mesh */
@@ -1331,6 +1332,14 @@ void multires_load_old(Object *ob, Mesh *me)
dm->release(dm);
orig->release(orig);
+ /* Copy the first-level data to the mesh */
+ for(i = 0, l = me->mr->vdata.layers; i < me->mr->vdata.totlayer; ++i, ++l)
+ CustomData_add_layer(&me->vdata, l->type, CD_REFERENCE, l->data, me->totvert);
+ for(i = 0, l = me->mr->fdata.layers; i < me->mr->fdata.totlayer; ++i, ++l)
+ CustomData_add_layer(&me->fdata, l->type, CD_REFERENCE, l->data, me->totface);
+ memset(&me->mr->vdata, 0, sizeof(CustomData));
+ memset(&me->mr->fdata, 0, sizeof(CustomData));
+
/* Remove the old multires */
multires_free(me->mr);
me->mr= NULL;