[Bf-blender-cvs] [cd2295f] master: BLI_bitmap: add a macro to set/clear the whole bitmap at once.

Bastien Montagne noreply at git.blender.org
Tue Oct 14 09:45:25 CEST 2014


Commit: cd2295f93e11bb53696e5011b083b72d74cdf707
Author: Bastien Montagne
Date:   Tue Oct 14 09:28:32 2014 +0200
Branches: master
https://developer.blender.org/rBcd2295f93e11bb53696e5011b083b72d74cdf707

BLI_bitmap: add a macro to set/clear the whole bitmap at once.

===================================================================

M	source/blender/blenkernel/intern/multires.c
M	source/blender/blenlib/BLI_bitmap.h

===================================================================

diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c
index 246ef8a..df992cc 100644
--- a/source/blender/blenkernel/intern/multires.c
+++ b/source/blender/blenkernel/intern/multires.c
@@ -272,9 +272,7 @@ static MDisps *multires_mdisps_initialize_hidden(Mesh *me, int level)
 			BLI_assert(!md->hidden);
 
 			md->hidden = BLI_BITMAP_NEW(gridarea, "MDisps.hidden initialize");
-
-			for (k = 0; k < gridarea; k++)
-				BLI_BITMAP_ENABLE(md->hidden, k);
+			BLI_BITMAP_SET_ALL(md->hidden, true, gridarea);
 		}
 	}
 
diff --git a/source/blender/blenlib/BLI_bitmap.h b/source/blender/blenlib/BLI_bitmap.h
index 5431785..594bf89 100644
--- a/source/blender/blenlib/BLI_bitmap.h
+++ b/source/blender/blenlib/BLI_bitmap.h
@@ -91,6 +91,16 @@ typedef unsigned int BLI_bitmap;
 			BLI_BITMAP_DISABLE(_bitmap, _index); \
 	} (void)0
 
+/* set or clear the value of the whole bitmap (needs size info) */
+#define BLI_BITMAP_SET_ALL(_bitmap, _set, _tot) \
+	{ \
+		CHECK_TYPE(_bitmap, BLI_bitmap *); \
+		if (_set) \
+			memset(_bitmap, UCHAR_MAX, BLI_BITMAP_SIZE(_tot)); \
+		else \
+			memset(_bitmap, 0, BLI_BITMAP_SIZE(_tot)); \
+	} (void)0
+
 /* resize bitmap to have space for '_tot' bits */
 #define BLI_BITMAP_RESIZE(_bitmap, _tot) \
 	{ \




More information about the Bf-blender-cvs mailing list