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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-07-12 19:36:22 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-07-12 19:36:22 +0400
commitba44250a23b817b69bc59f61eefc0ea890dfe84d (patch)
tree1e0d148740b901abcfd7ccec9cee56576554d029
parent18d7a2316678ae7074a7f50c48453933ca7a5fb4 (diff)
Fix #32067: since BMesh, files < 2.59.3 no longer have their texface converted
Issue was caused by performing conversion from FTFaces to materials from the end of lib_link_mesh, where tesselated faces were cleared already. This conversion can't be switched to BMesh structures because in future MTexPolys could be changed in a way, that versioning stuff wouldn't work any more. Another issue is that making such a conversion per-mesh would lead to quite a code spagetti, which is difficult to follow. Solved by splitting per-mesh cycle in lib_link_mesh, so now it consists of three steps: - Do linking stuff such as custom data layers, materials. Perform a Conversion stuff like tessface -> polys. - Convert all MTFaces to materials. This conversion handles all meshes and creates needed materials. - Free tessfaces, mark mesh as linked. Such a separation shouldn't noticeably affect on speed of linking.
-rw-r--r--source/blender/blenloader/intern/readfile.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 4a5eabc7615..bfa73c5f7dd 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -3688,7 +3688,14 @@ static void lib_link_mesh(FileData *fd, Main *main)
G.main = gmain;
}
-
+ }
+ }
+
+ /* convert texface options to material */
+ convert_tface_mt(fd, main);
+
+ for (me = main->mesh.first; me; me = me->id.next) {
+ if (me->id.flag & LIB_NEEDLINK) {
/*
* Re-tessellate, even if the polys were just created from tessfaces, this
* is important because it:
@@ -3704,13 +3711,10 @@ static void lib_link_mesh(FileData *fd, Main *main)
#else
BKE_mesh_tessface_clear(me);
#endif
-
+
me->id.flag -= LIB_NEEDLINK;
}
}
-
- /* convert texface options to material */
- convert_tface_mt(fd, main);
}
static void direct_link_dverts(FileData *fd, int count, MDeformVert *mdverts)