[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43072] branches/bmesh/blender/source/ blender: dont save MFace's from BMesh, this means they stay used but only for tessface cache.

Campbell Barton ideasman42 at gmail.com
Mon Jan 2 13:38:07 CET 2012


Revision: 43072
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43072
Author:   campbellbarton
Date:     2012-01-02 12:37:58 +0000 (Mon, 02 Jan 2012)
Log Message:
-----------
dont save MFace's from BMesh, this means they stay used but only for tessface cache.
also saves on undo memory and disk space.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenloader/intern/writefile.c
    branches/bmesh/blender/source/blender/makesdna/DNA_mesh_types.h

Modified: branches/bmesh/blender/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/bmesh/blender/source/blender/blenloader/intern/writefile.c	2012-01-02 12:35:06 UTC (rev 43071)
+++ branches/bmesh/blender/source/blender/blenloader/intern/writefile.c	2012-01-02 12:37:58 UTC (rev 43072)
@@ -1694,6 +1694,18 @@
 		if(mesh->id.us>0 || wd->current) {
 			/* write LibData */
 			if (!save_for_old_blender) {
+
+#ifdef USE_BMESH_SAVE_WITHOUT_MFACE
+				Mesh backup_mesh = {{0}};
+				/* cache only - dont write */
+				backup_mesh.mface = mesh->mface;
+				mesh->mface = NULL;
+				/* -- */
+				backup_mesh.totface = mesh->totface;
+				mesh->totface = 0;
+				/* -- */
+#endif /* USE_BMESH_SAVE_WITHOUT_MFACE */
+
 				writestruct(wd, ID_ME, "Mesh", 1, mesh);
 
 				/* direct data */
@@ -1704,9 +1716,18 @@
 
 				write_customdata(wd, &mesh->id, mesh->totvert, &mesh->vdata, -1, 0);
 				write_customdata(wd, &mesh->id, mesh->totedge, &mesh->edata, -1, 0);
+				/* fdata is really a dummy - written so slots align */
 				write_customdata(wd, &mesh->id, mesh->totface, &mesh->fdata, -1, 0);
 				write_customdata(wd, &mesh->id, mesh->totloop, &mesh->ldata, -1, 0);
 				write_customdata(wd, &mesh->id, mesh->totpoly, &mesh->pdata, -1, 0);
+
+#ifdef USE_BMESH_SAVE_WITHOUT_MFACE
+				/* cache only - dont write */
+				mesh->mface = backup_mesh.mface;
+				/* -- */
+				mesh->totface = backup_mesh.totface;
+#endif /* USE_BMESH_SAVE_WITHOUT_MFACE */
+
 			}
 			else {
 

Modified: branches/bmesh/blender/source/blender/makesdna/DNA_mesh_types.h
===================================================================
--- branches/bmesh/blender/source/blender/makesdna/DNA_mesh_types.h	2012-01-02 12:35:06 UTC (rev 43071)
+++ branches/bmesh/blender/source/blender/makesdna/DNA_mesh_types.h	2012-01-02 12:37:58 UTC (rev 43072)
@@ -226,6 +226,7 @@
  * will eventually be removed */
 
 #define USE_BMESH_SAVE_AS_COMPAT
+#define USE_BMESH_SAVE_WITHOUT_MFACE
 
 
 #endif



More information about the Bf-blender-cvs mailing list