[Bf-blender-cvs] [6d7327f6075] blender2.8: Cleanup: simplify studiolight/matcap enum code, remove limit.

Brecht Van Lommel noreply at git.blender.org
Tue Jun 5 12:25:11 CEST 2018


Commit: 6d7327f607593561a0a128e2199c3a8487f09655
Author: Brecht Van Lommel
Date:   Tue Jun 5 12:08:29 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB6d7327f607593561a0a128e2199c3a8487f09655

Cleanup: simplify studiolight/matcap enum code, remove limit.

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

M	source/blender/makesrna/intern/rna_space.c

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

diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 150bff1d254..8bc6391a761 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -200,217 +200,15 @@ const EnumPropertyItem rna_enum_viewport_lighting_items[] = {
 	{0, NULL, 0, NULL, NULL}
 };
 
-#define DEF_SINGLE_STUDIO_LIGHT_ITEM(value) {value, "STUDIOLIGHT_" #value, 0, "", ""}
 static const EnumPropertyItem rna_enum_studio_light_items[] = {
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(0),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(1),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(2),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(3),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(4),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(5),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(6),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(7),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(8),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(9),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(10),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(11),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(12),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(13),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(14),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(15),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(16),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(17),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(18),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(19),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(20),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(21),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(22),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(23),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(24),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(25),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(26),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(27),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(28),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(29),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(30),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(31),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(32),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(33),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(34),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(35),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(36),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(37),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(38),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(39),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(40),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(41),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(42),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(43),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(44),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(45),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(46),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(47),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(48),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(49),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(50),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(51),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(52),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(53),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(54),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(55),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(56),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(57),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(58),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(59),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(60),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(61),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(62),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(63),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(64),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(65),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(66),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(67),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(68),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(69),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(70),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(71),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(72),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(73),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(74),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(75),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(76),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(77),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(78),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(79),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(80),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(81),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(82),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(83),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(84),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(85),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(86),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(87),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(88),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(89),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(90),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(91),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(92),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(93),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(94),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(95),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(96),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(97),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(98),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(99),
+	{0, "DEFAULT", 0, "Default", ""},
 	{0, NULL, 0, NULL, NULL}
 };
-#define NUM_STUDIOLIGHT_ITEMS 100
 
 static const EnumPropertyItem rna_enum_matcap_items[] = {
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(0),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(1),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(2),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(3),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(4),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(5),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(6),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(7),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(8),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(9),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(10),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(11),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(12),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(13),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(14),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(15),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(16),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(17),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(18),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(19),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(20),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(21),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(22),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(23),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(24),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(25),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(26),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(27),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(28),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(29),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(30),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(31),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(32),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(33),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(34),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(35),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(36),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(37),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(38),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(39),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(40),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(41),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(42),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(43),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(44),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(45),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(46),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(47),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(48),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(49),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(50),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(51),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(52),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(53),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(54),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(55),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(56),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(57),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(58),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(59),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(60),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(61),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(62),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(63),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(64),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(65),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(66),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(67),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(68),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(69),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(70),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(71),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(72),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(73),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(74),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(75),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(76),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(77),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(78),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(79),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(80),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(81),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(82),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(83),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(84),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(85),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(86),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(87),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(88),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(89),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(90),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(91),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(92),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(93),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(94),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(95),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(96),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(97),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(98),
-	DEF_SINGLE_STUDIO_LIGHT_ITEM(99),
+	{0, "DEFAULT", 0, "Default", ""},
 	{0, NULL, 0, NULL, NULL}
 };
-#define NUM_MATCAP_ITEMS 100
-#undef DEF_SINGLE_STUDIO_LIGHT_ITEM
 
 const EnumPropertyItem rna_enum_clip_editor_mode_items[] = {
 	{SC_MODE_TRACKING, "TRACKING", ICON_ANIM_DATA, "Tracking", "Show tracking and solving tools"},
@@ -950,13 +748,11 @@ static const EnumPropertyItem *rna_View3DShading_studio_light_itemf(
 {
 	View3D *v3d = (View3D *)ptr->data;
 	EnumPropertyItem *item = NULL;
-	EnumPropertyItem *lastitem;
 	int totitem = 0;
-	bool show_studiolight;
 
 	LISTBASE_FOREACH(StudioLight *, sl, BKE_studiolight_listbase()) {
-		show_studiolight = false;
 		int icon_id = sl->irradiance_icon_id;
+		bool show_studiolight = false;
 
 		if ((sl->flag & STUDIOLIGHT_INTERNAL)) {
 			/* always show internal lights */
@@ -976,12 +772,9 @@ static const EnumPropertyItem *rna_View3DShading_studio_light_itemf(
 			}
 		}
 
-		if (show_studiolight && totitem < NUM_STUDIOLIGHT_ITEMS) {
-			RNA_enum_items_add_value(&item, &totitem, rna_enum_studio_light_items, sl->index);
-			lastitem = &item[totitem - 1];
-			lastitem->value = sl->index;
-			lastitem->icon = icon_id;
-			lastitem->name = sl->name;
+		if (show_studiolight) {
+			EnumPropertyItem tmp = {sl->index, sl->name, icon_id, sl->name, ""};
+			RNA_enum_item_add(&item, &totitem, &tmp);
 		}
 	}
 
@@ -1010,24 +803,17 @@ static const EnumPropertyItem *rna_View3DShading_matcap_itemf(
         PropertyRNA *UNUSED(prop), bool *r_free)
 {
 	EnumPropertyItem *item = NULL;
-	EnumPropertyItem *lastitem;
 	int totitem = 0;
-	bool show_studiolight;
 
 	const int flags = (STUDIOLIGHT_EXTERNAL_FILE | STUDIOLIGHT_ORIENTATION_VIEWNORMAL);
 
 	LISTBASE_FOREACH(StudioLight *, sl, BKE_studiolight_listbase()) {
-		show_studiolight = false;
 		int icon_id = sl->irradiance_icon_id;
+		bool show_studiolight = (sl->flag & flags) == flags;
 
-		show_studiolight = (sl->flag & flags) == flags;
-
-		if (show_studiolight && totitem < NUM_MATCAP_ITEMS) {
-			RNA_enum_items_add_value(&item, &totitem, rna_enum_matcap_items, sl->index);
-			lastitem = &item[totitem - 1];
-			lastitem->value = sl->index;
-			lastitem->icon = icon_id;
-			lastitem->name = sl->name;
+		if (show_studiolight) {
+			EnumPropertyItem tmp = {sl->index, sl->name, icon_id, sl->name, ""};
+			RNA_enum_item_add(&item, &totitem, &tmp);
 		}
 	}



More information about the Bf-blender-cvs mailing list