[Bf-blender-cvs] [69b96e27ee] blender2.8: Collections Settings: Added Bool type.

Clément Foucault noreply at git.blender.org
Wed Feb 15 18:20:28 CET 2017


Commit: 69b96e27ee9d0282b295081462e9ac0a2f75a30e
Author: Clément Foucault
Date:   Wed Feb 15 18:17:50 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB69b96e27ee9d0282b295081462e9ac0a2f75a30e

Collections Settings: Added Bool type.

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

M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/intern/layer.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/makesdna/DNA_layer_types.h
M	source/blender/makesrna/intern/rna_scene.c

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

diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index db817bb332..6e12b82e55 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -114,11 +114,14 @@ void BKE_layer_collection_engine_settings_list_free(struct ListBase *lb);
 
 void BKE_collection_engine_property_add_float(struct CollectionEngineSettings *ces, const char *name, float value);
 void BKE_collection_engine_property_add_int(struct CollectionEngineSettings *ces, const char *name, int value);
+void BKE_collection_engine_property_add_bool(struct CollectionEngineSettings *ces, const char *name, bool value);
 struct CollectionEngineProperty *BKE_collection_engine_property_get(struct CollectionEngineSettings *ces, const char *name);
 int BKE_collection_engine_property_value_get_int(struct CollectionEngineSettings *ces, const char *name);
 float BKE_collection_engine_property_value_get_float(struct CollectionEngineSettings *ces, const char *name);
+bool BKE_collection_engine_property_value_get_bool(struct CollectionEngineSettings *ces, const char *name);
 void BKE_collection_engine_property_value_set_int(struct CollectionEngineSettings *ces, const char *name, int value);
 void BKE_collection_engine_property_value_set_float(struct CollectionEngineSettings *ces, const char *name, float value);
+void BKE_collection_engine_property_value_set_bool(struct CollectionEngineSettings *ces, const char *name, bool value);
 bool BKE_collection_engine_property_use_get(struct CollectionEngineSettings *ces, const char *name);
 void BKE_collection_engine_property_use_set(struct CollectionEngineSettings *ces, const char *name, bool value);
 
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index 70fb7a21ef..3e69fa61d9 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -892,6 +892,16 @@ void BKE_collection_engine_property_add_int(CollectionEngineSettings *ces, const
 	BLI_addtail(&ces->properties, prop);
 }
 
+void BKE_collection_engine_property_add_bool(CollectionEngineSettings *ces, const char *name, bool value)
+{
+	CollectionEnginePropertyBool *prop;
+	prop = MEM_callocN(sizeof(CollectionEnginePropertyBool), "collection engine settings bool");
+	prop->data.type = COLLECTION_PROP_TYPE_BOOL;
+	BLI_strncpy_utf8(prop->data.name, name, sizeof(prop->data.name));
+	prop->value = value;
+	BLI_addtail(&ces->properties, prop);
+}
+
 CollectionEngineProperty *BKE_collection_engine_property_get(CollectionEngineSettings *ces, const char *name)
 {
 	return BLI_findstring(&ces->properties, name, offsetof(CollectionEngineProperty, name));
@@ -911,6 +921,13 @@ float BKE_collection_engine_property_value_get_float(CollectionEngineSettings *c
 	return prop->value;
 }
 
+bool BKE_collection_engine_property_value_get_bool(CollectionEngineSettings *ces, const char *name)
+{
+	CollectionEnginePropertyBool *prop;
+	prop = (CollectionEnginePropertyBool *)BLI_findstring(&ces->properties, name, offsetof(CollectionEngineProperty, name));
+	return prop->value;
+}
+
 void BKE_collection_engine_property_value_set_int(CollectionEngineSettings *ces, const char *name, int value)
 {
 	CollectionEnginePropertyInt *prop;
@@ -927,6 +944,14 @@ void BKE_collection_engine_property_value_set_float(CollectionEngineSettings *ce
 	prop->data.flag |= COLLECTION_PROP_USE;
 }
 
+void BKE_collection_engine_property_value_set_bool(CollectionEngineSettings *ces, const char *name, bool value)
+{
+	CollectionEnginePropertyBool *prop;
+	prop = (CollectionEnginePropertyBool *)BLI_findstring(&ces->properties, name, offsetof(CollectionEngineProperty, name));
+	prop->value = value;
+	prop->data.flag |= COLLECTION_PROP_USE;
+}
+
 bool BKE_collection_engine_property_use_get(CollectionEngineSettings *ces, const char *name)
 {
 	CollectionEngineProperty *prop;
@@ -995,6 +1020,9 @@ static void collection_engine_property_set (CollectionEngineProperty *prop_dst,
 		    case COLLECTION_PROP_TYPE_INT:
 			    ((CollectionEnginePropertyInt *)prop_dst)->value = ((CollectionEnginePropertyInt *)prop_src)->value;
 			    break;
+		    case COLLECTION_PROP_TYPE_BOOL:
+			    ((CollectionEnginePropertyBool *)prop_dst)->value = ((CollectionEnginePropertyBool *)prop_src)->value;
+			    break;
 		    default:
 			    BLI_assert(false);
 			    break;
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index ef46026f05..57846f6c03 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2582,6 +2582,9 @@ static void write_collection_engine_settings(WriteData *wd, ListBase *lb)
 			    case COLLECTION_PROP_TYPE_INT:
 				    writestruct(wd, DATA, CollectionEnginePropertyInt, 1, prop);
 				    break;
+			    case COLLECTION_PROP_TYPE_BOOL:
+				    writestruct(wd, DATA, CollectionEnginePropertyBool, 1, prop);
+				    break;
 			    default:
 				    ; /* error: don't know how to write this file */
 			}
diff --git a/source/blender/makesdna/DNA_layer_types.h b/source/blender/makesdna/DNA_layer_types.h
index 5d8bff3ef1..de2bd51f64 100644
--- a/source/blender/makesdna/DNA_layer_types.h
+++ b/source/blender/makesdna/DNA_layer_types.h
@@ -127,6 +127,12 @@ typedef struct CollectionEnginePropertyInt {
   int pad;
 } CollectionEnginePropertyInt;
 
+typedef struct CollectionEnginePropertyBool {
+  struct CollectionEngineProperty data;
+  int value;
+  int pad;
+} CollectionEnginePropertyBool;
+
 typedef struct CollectionEnginePropertyFloat {
   struct CollectionEngineProperty data;
   float value;
@@ -150,6 +156,7 @@ enum {
 typedef enum CollectionEnginePropertyType {
 	COLLECTION_PROP_TYPE_FLOAT = 0,
 	COLLECTION_PROP_TYPE_INT = 1,
+	COLLECTION_PROP_TYPE_BOOL = 2,
 } CollectionEnginePropertyType;
 
 /* CollectionEngineSettings->type */
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index eaa11b04ef..c985e6fd42 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -2426,6 +2426,9 @@ static void rna_LayerEngineSettings_##_ENGINE_##_##_NAME_##_set(PointerRNA *ptr,
 #define RNA_LAYER_ENGINE_CLAY_GET_SET_INT(_NAME_) \
 	RNA_LAYER_ENGINE_GET_SET(int, Clay, COLLECTION_MODE_NONE, _NAME_)
 
+#define RNA_LAYER_ENGINE_CLAY_GET_SET_BOOL(_NAME_) \
+	RNA_LAYER_ENGINE_GET_SET(int, Clay, COLLECTION_MODE_NONE, _NAME_)
+
 /* mode engines */
 
 #define RNA_LAYER_MODE_OBJECT_GET_SET_FLOAT(_NAME_) \
@@ -2434,12 +2437,18 @@ static void rna_LayerEngineSettings_##_ENGINE_##_##_NAME_##_set(PointerRNA *ptr,
 #define RNA_LAYER_MODE_OBJECT_GET_SET_INT(_NAME_) \
 	RNA_LAYER_ENGINE_GET_SET(int, ObjectMode, COLLECTION_MODE_OBJECT, _NAME_)
 
+#define RNA_LAYER_MODE_OBJECT_GET_SET_BOOL(_NAME_) \
+	RNA_LAYER_ENGINE_GET_SET(bool, ObjectMode, COLLECTION_MODE_OBJECT, _NAME_)
+
 #define RNA_LAYER_MODE_EDIT_GET_SET_FLOAT(_NAME_) \
 	RNA_LAYER_ENGINE_GET_SET(float, EditMode, COLLECTION_MODE_EDIT, _NAME_)
 
 #define RNA_LAYER_MODE_EDIT_GET_SET_INT(_NAME_) \
 	RNA_LAYER_ENGINE_GET_SET(int, EditMode, COLLECTION_MODE_EDIT, _NAME_)
 
+#define RNA_LAYER_MODE_EDIT_GET_SET_BOOL(_NAME_) \
+	RNA_LAYER_ENGINE_GET_SET(bool, EditMode, COLLECTION_MODE_EDIT, _NAME_)
+
 /* clay engine */
 
 RNA_LAYER_ENGINE_CLAY_GET_SET_INT(type)




More information about the Bf-blender-cvs mailing list