[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40264] branches/bmesh/blender/source/ blender: A couple of trivial perf improvements:
Andrew Wiggin
ender79bl at gmail.com
Fri Sep 16 16:28:23 CEST 2011
Revision: 40264
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40264
Author: ender79
Date: 2011-09-16 14:28:23 +0000 (Fri, 16 Sep 2011)
Log Message:
-----------
A couple of trivial perf improvements:
-BMEMSET macro should cache the size of the memory block instead of reading each iteration
-Avoid tesselating the backup copy of the mesh used to restore after an error (unless there is actually an error)
Modified Paths:
--------------
branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
branches/bmesh/blender/source/blender/blenlib/BLI_utildefines.h
branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
Modified: branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c 2011-09-16 14:02:44 UTC (rev 40263)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c 2011-09-16 14:28:23 UTC (rev 40264)
@@ -109,11 +109,18 @@
*tm2 = *tm;
tm2->derivedCage = tm2->derivedFinal = NULL;
-
- tm2->looptris = NULL;
+
tm2->bm = BM_Copy_Mesh(tm->bm);
- BMEdit_RecalcTesselation(tm2);
+ /*The tesselation is NOT calculated on the copy here,
+ because currently all the callers of this function use
+ it to make a backup copy of the BMEditMesh to restore
+ it in the case of errors in an operation. For perf
+ reasons, in that case it makes more sense to do the
+ tesselation only when/if that copy ends up getting
+ used.*/
+ tm2->looptris = NULL;
+
tm2->vert_index = NULL;
tm2->edge_index = NULL;
tm2->face_index = NULL;
Modified: branches/bmesh/blender/source/blender/blenlib/BLI_utildefines.h
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/BLI_utildefines.h 2011-09-16 14:02:44 UTC (rev 40263)
+++ branches/bmesh/blender/source/blender/blenlib/BLI_utildefines.h 2011-09-16 14:28:23 UTC (rev 40264)
@@ -247,6 +247,6 @@
# define BLI_assert(a) (void)0
#endif
-#define BMEMSET(mem, val, size) {unsigned int _i; char *_c = (char*) mem; for (_i=0; _i<size; _i++) *_c++ = val;}
+#define BMEMSET(mem, val, size) {unsigned int _i, _size = (size); char *_c = (char*) mem; for (_i=0; _i<_size; _i++) *_c++ = val;}
#endif // BLI_UTILDEFINES_H
Modified: branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c 2011-09-16 14:02:44 UTC (rev 40263)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c 2011-09-16 14:28:23 UTC (rev 40264)
@@ -156,6 +156,7 @@
BMEdit_Free(em);
*em = *emcopy;
+ BMEdit_RecalcTesselation(em);
MEM_freeN(emcopy);
em->emcopyusers = 0;
More information about the Bf-blender-cvs
mailing list