From 6d7327f607593561a0a128e2199c3a8487f09655 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jun 2018 12:08:29 +0200 Subject: Cleanup: simplify studiolight/matcap enum code, remove limit. --- source/blender/makesrna/intern/rna_space.c | 234 ++--------------------------- 1 file changed, 10 insertions(+), 224 deletions(-) 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); } } -- cgit v1.2.3