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:
Diffstat (limited to 'source/blender/blenloader/intern/readfile.c')
-rw-r--r--source/blender/blenloader/intern/readfile.c134
1 files changed, 6 insertions, 128 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 0e134d172c2..dd7ea003cc5 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -4109,115 +4109,6 @@ static void direct_link_particlesystems(BlendDataReader *reader, ListBase *parti
/** \name Read ID: Mesh
* \{ */
-static void lib_link_mesh(BlendLibReader *reader, Mesh *me)
-{
- /* this check added for python created meshes */
- if (me->mat) {
- for (int i = 0; i < me->totcol; i++) {
- BLO_read_id_address(reader, me->id.lib, &me->mat[i]);
- }
- }
- else {
- me->totcol = 0;
- }
-
- BLO_read_id_address(reader, me->id.lib, &me->ipo); // XXX: deprecated: old anim sys
- BLO_read_id_address(reader, me->id.lib, &me->key);
- BLO_read_id_address(reader, me->id.lib, &me->texcomesh);
-}
-
-static void direct_link_mesh(BlendDataReader *reader, Mesh *mesh)
-{
- BLO_read_pointer_array(reader, (void **)&mesh->mat);
-
- BLO_read_data_address(reader, &mesh->mvert);
- BLO_read_data_address(reader, &mesh->medge);
- BLO_read_data_address(reader, &mesh->mface);
- BLO_read_data_address(reader, &mesh->mloop);
- BLO_read_data_address(reader, &mesh->mpoly);
- BLO_read_data_address(reader, &mesh->tface);
- BLO_read_data_address(reader, &mesh->mtface);
- BLO_read_data_address(reader, &mesh->mcol);
- BLO_read_data_address(reader, &mesh->dvert);
- BLO_read_data_address(reader, &mesh->mloopcol);
- BLO_read_data_address(reader, &mesh->mloopuv);
- BLO_read_data_address(reader, &mesh->mselect);
-
- /* animdata */
- BLO_read_data_address(reader, &mesh->adt);
- BKE_animdata_blend_read_data(reader, mesh->adt);
-
- /* Normally BKE_defvert_blend_read should be called in CustomData_blend_read,
- * but for backwards compatibility in do_versions to work we do it here. */
- BKE_defvert_blend_read(reader, mesh->totvert, mesh->dvert);
-
- CustomData_blend_read(reader, &mesh->vdata, mesh->totvert);
- CustomData_blend_read(reader, &mesh->edata, mesh->totedge);
- CustomData_blend_read(reader, &mesh->fdata, mesh->totface);
- CustomData_blend_read(reader, &mesh->ldata, mesh->totloop);
- CustomData_blend_read(reader, &mesh->pdata, mesh->totpoly);
-
- mesh->texflag &= ~ME_AUTOSPACE_EVALUATED;
- mesh->edit_mesh = NULL;
- BKE_mesh_runtime_reset(mesh);
-
- /* happens with old files */
- if (mesh->mselect == NULL) {
- mesh->totselect = 0;
- }
-
- /* Multires data */
- BLO_read_data_address(reader, &mesh->mr);
- if (mesh->mr) {
- BLO_read_list(reader, &mesh->mr->levels);
- MultiresLevel *lvl = mesh->mr->levels.first;
-
- CustomData_blend_read(reader, &mesh->mr->vdata, lvl->totvert);
- BKE_defvert_blend_read(
- reader, lvl->totvert, CustomData_get(&mesh->mr->vdata, 0, CD_MDEFORMVERT));
- CustomData_blend_read(reader, &mesh->mr->fdata, lvl->totface);
-
- BLO_read_data_address(reader, &mesh->mr->edge_flags);
- BLO_read_data_address(reader, &mesh->mr->edge_creases);
-
- BLO_read_data_address(reader, &mesh->mr->verts);
-
- /* If mesh has the same number of vertices as the
- * highest multires level, load the current mesh verts
- * into multires and discard the old data. Needed
- * because some saved files either do not have a verts
- * array, or the verts array contains out-of-date
- * data. */
- if (mesh->totvert == ((MultiresLevel *)mesh->mr->levels.last)->totvert) {
- if (mesh->mr->verts) {
- MEM_freeN(mesh->mr->verts);
- }
- mesh->mr->verts = MEM_dupallocN(mesh->mvert);
- }
-
- for (; lvl; lvl = lvl->next) {
- BLO_read_data_address(reader, &lvl->verts);
- BLO_read_data_address(reader, &lvl->faces);
- BLO_read_data_address(reader, &lvl->edges);
- BLO_read_data_address(reader, &lvl->colfaces);
- }
- }
-
- /* if multires is present but has no valid vertex data,
- * there's no way to recover it; silently remove multires */
- if (mesh->mr && !mesh->mr->verts) {
- multires_free(mesh->mr);
- mesh->mr = NULL;
- }
-
- if ((BLO_read_requires_endian_switch(reader)) && mesh->tface) {
- TFace *tf = mesh->tface;
- for (int i = 0; i < mesh->totface; i++, tf++) {
- BLI_endian_switch_uint32_array(tf->col, 4);
- }
- }
-}
-
/** \} */
/* -------------------------------------------------------------------- */
@@ -8158,9 +8049,6 @@ static bool direct_link_id(FileData *fd, Main *main, const int tag, ID *id, ID *
case ID_OB:
direct_link_object(&reader, (Object *)id);
break;
- case ID_ME:
- direct_link_mesh(&reader, (Mesh *)id);
- break;
case ID_CU:
direct_link_curve(&reader, (Curve *)id);
break;
@@ -8266,6 +8154,9 @@ static bool direct_link_id(FileData *fd, Main *main, const int tag, ID *id, ID *
case ID_SIM:
direct_link_simulation(&reader, (Simulation *)id);
break;
+ case ID_ME:
+ /* Do nothing. Handled by IDTypeInfo callback. */
+ break;
}
/* try to restore (when undoing) or clear ID's cache pointers. */
@@ -8938,9 +8829,6 @@ static void lib_link_all(FileData *fd, Main *bmain)
case ID_CU:
lib_link_curve(&reader, (Curve *)id);
break;
- case ID_ME:
- lib_link_mesh(&reader, (Mesh *)id);
- break;
case ID_CF:
lib_link_cachefiles(&reader, (CacheFile *)id);
break;
@@ -8994,6 +8882,9 @@ static void lib_link_all(FileData *fd, Main *bmain)
case ID_LI:
lib_link_library(&reader, (Library *)id); /* Only init users. */
break;
+ case ID_ME:
+ /* Do nothing. Handled by IDTypeInfo callback. */
+ break;
}
id->tag &= ~LIB_TAG_NEED_LINK;
@@ -9843,16 +9734,6 @@ static void expand_curve(BlendExpander *expander, Curve *cu)
BLO_expand(expander, cu->textoncurve);
}
-static void expand_mesh(BlendExpander *expander, Mesh *me)
-{
- for (int a = 0; a < me->totcol; a++) {
- BLO_expand(expander, me->mat[a]);
- }
-
- BLO_expand(expander, me->key);
- BLO_expand(expander, me->texcomesh);
-}
-
/* callback function used to expand constraint ID-links */
static void expand_constraint_cb(bConstraint *UNUSED(con),
ID **idpoin,
@@ -10286,9 +10167,6 @@ void BLO_expand_main(void *fdhandle, Main *mainvar)
case ID_OB:
expand_object(&expander, (Object *)id);
break;
- case ID_ME:
- expand_mesh(&expander, (Mesh *)id);
- break;
case ID_CU:
expand_curve(&expander, (Curve *)id);
break;