[Bf-blender-cvs] [f95f1a47b4d] master: CustomData: add function to clear layers' flags.

Bastien Montagne noreply at git.blender.org
Thu Feb 28 20:48:08 CET 2019


Commit: f95f1a47b4dcf3ce2a41362eb1f1655b9e6f545a
Author: Bastien Montagne
Date:   Thu Feb 28 18:03:01 2019 +0100
Branches: master
https://developer.blender.org/rBf95f1a47b4dcf3ce2a41362eb1f1655b9e6f545a

CustomData: add function to clear layers' flags.

We only had one to set those flags, up til now...

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

M	source/blender/blenkernel/BKE_customdata.h
M	source/blender/blenkernel/intern/customdata.c

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

diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h
index febcf3e7da1..ba3d1dbf187 100644
--- a/source/blender/blenkernel/BKE_customdata.h
+++ b/source/blender/blenkernel/BKE_customdata.h
@@ -346,6 +346,7 @@ void CustomData_set_layer_stencil_index(struct CustomData *data, int type, int n
 
 /* adds flag to the layer flags */
 void CustomData_set_layer_flag(struct CustomData *data, int type, int flag);
+void CustomData_clear_layer_flag(struct CustomData *data, int type, int flag);
 
 void CustomData_bmesh_set_default(struct CustomData *data, void **block);
 void CustomData_bmesh_free_block(struct CustomData *data, void **block);
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index fb7a0924367..f4b9040ce85 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -1853,6 +1853,17 @@ void CustomData_set_layer_flag(struct CustomData *data, int type, int flag)
 			data->layers[i].flag |= flag;
 }
 
+void CustomData_clear_layer_flag(struct CustomData *data, int type, int flag)
+{
+	const int nflag = ~flag;
+
+	for (int i = 0; i < data->totlayer; ++i) {
+		if (data->layers[i].type == type) {
+			data->layers[i].flag &= nflag;
+		}
+	}
+}
+
 static int customData_resize(CustomData *data, int amount)
 {
 	CustomDataLayer *tmp = MEM_calloc_arrayN((data->maxlayer + amount), sizeof(*tmp),



More information about the Bf-blender-cvs mailing list