From 958e3a8cc12032343f4ffd18cf1ffcf7d7fd9bd2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 22 Mar 2021 17:58:24 +1100 Subject: RNA: use boolean array for transarency masks There is no need to expose this as multiple properties, also use `use_` prefix for boolean properties. --- .../scripts/startup/bl_ui/properties_material.py | 10 +---- .../gpencil_modifiers/intern/MOD_gpencillineart.c | 16 ++++--- .../blender/makesrna/intern/rna_gpencil_modifier.c | 44 +++---------------- source/blender/makesrna/intern/rna_material.c | 49 ++-------------------- 4 files changed, 18 insertions(+), 101 deletions(-) diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index ebd91143239..d85078d4ec2 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -296,14 +296,8 @@ class MATERIAL_PT_lineart(MaterialButtonsPanel, Panel): layout.label(text="Transparency Masks:") row = layout.row(align=True) - row.prop(lineart, "transparency_mask_0", text="0", toggle=True) - row.prop(lineart, "transparency_mask_1", text="1", toggle=True) - row.prop(lineart, "transparency_mask_2", text="2", toggle=True) - row.prop(lineart, "transparency_mask_3", text="3", toggle=True) - row.prop(lineart, "transparency_mask_4", text="4", toggle=True) - row.prop(lineart, "transparency_mask_5", text="5", toggle=True) - row.prop(lineart, "transparency_mask_6", text="6", toggle=True) - row.prop(lineart, "transparency_mask_7", text="7", toggle=True) + for i in range(8): + row.prop(lineart, "use_transparency_mask", text=str(i), index=i, toggle=True) classes = ( diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c index 26af78e682f..6054111cfbf 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c @@ -357,18 +357,16 @@ static void transparency_panel_draw(const bContext *UNUSED(C), Panel *panel) uiLayout *row = uiLayoutRow(layout, true); uiLayoutSetPropDecorate(row, false); uiLayout *sub = uiLayoutRow(row, true); - uiItemR(sub, ptr, "transparency_mask_0", UI_ITEM_R_TOGGLE, IFACE_("0"), ICON_NONE); - uiItemR(sub, ptr, "transparency_mask_1", UI_ITEM_R_TOGGLE, IFACE_("1"), ICON_NONE); - uiItemR(sub, ptr, "transparency_mask_2", UI_ITEM_R_TOGGLE, IFACE_("2"), ICON_NONE); - uiItemR(sub, ptr, "transparency_mask_3", UI_ITEM_R_TOGGLE, IFACE_("3"), ICON_NONE); - uiItemR(sub, ptr, "transparency_mask_4", UI_ITEM_R_TOGGLE, IFACE_("4"), ICON_NONE); - uiItemR(sub, ptr, "transparency_mask_5", UI_ITEM_R_TOGGLE, IFACE_("5"), ICON_NONE); - uiItemR(sub, ptr, "transparency_mask_6", UI_ITEM_R_TOGGLE, IFACE_("6"), ICON_NONE); - uiItemR(sub, ptr, "transparency_mask_7", UI_ITEM_R_TOGGLE, IFACE_("7"), ICON_NONE); + char text[2] = "0"; + + PropertyRNA *prop = RNA_struct_find_property(ptr, "use_transparency_mask"); + for (int i = 0; i < 8; i++, text[0]++) { + uiItemFullR(sub, ptr, prop, i, 0, UI_ITEM_R_TOGGLE, text, ICON_NONE); + } uiItemL(row, "", ICON_BLANK1); /* Space for decorator. */ uiLayout *col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "transparency_match", 0, IFACE_("Match All Masks"), ICON_NONE); + uiItemR(col, ptr, "use_transparency_match", 0, IFACE_("Match All Masks"), ICON_NONE); } static void chaining_panel_draw(const bContext *UNUSED(C), Panel *panel) diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c index c0b082684e6..bb3dc5fd427 100644 --- a/source/blender/makesrna/intern/rna_gpencil_modifier.c +++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c @@ -2538,50 +2538,16 @@ static void rna_def_modifier_gpencillineart(BlenderRNA *brna) prop, "Use Transparency", "Use transparency mask from this material in line art"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - prop = RNA_def_property(srna, "transparency_match", PROP_BOOLEAN, PROP_NONE); + prop = RNA_def_property(srna, "use_transparency_match", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "transparency_flags", LRT_GPENCIL_TRANSPARENCY_MATCH); RNA_def_property_ui_text( prop, "Match Transparency", "Require matching all transparency masks instead of just one"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - prop = RNA_def_property(srna, "transparency_mask_0", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 0); - RNA_def_property_ui_text(prop, "Mask 0", ""); - RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - - prop = RNA_def_property(srna, "transparency_mask_1", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 1); - RNA_def_property_ui_text(prop, "Mask 1", ""); - RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - - prop = RNA_def_property(srna, "transparency_mask_2", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 2); - RNA_def_property_ui_text(prop, "Mask 2", ""); - RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - - prop = RNA_def_property(srna, "transparency_mask_3", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 3); - RNA_def_property_ui_text(prop, "Mask 3", ""); - RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - - prop = RNA_def_property(srna, "transparency_mask_4", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 4); - RNA_def_property_ui_text(prop, "Mask 4", ""); - RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - - prop = RNA_def_property(srna, "transparency_mask_5", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 5); - RNA_def_property_ui_text(prop, "Mask 5", ""); - RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - - prop = RNA_def_property(srna, "transparency_mask_6", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 6); - RNA_def_property_ui_text(prop, "Mask 6", ""); - RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); - - prop = RNA_def_property(srna, "transparency_mask_7", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 7); - RNA_def_property_ui_text(prop, "Mask 7", ""); + prop = RNA_def_property(srna, "use_transparency_mask", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1); + RNA_def_property_array(prop, 8); + RNA_def_property_ui_text(prop, "Mask", ""); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); } diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 99673f31eb9..7ef1904fc34 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -695,52 +695,11 @@ static void rna_def_material_lineart(BlenderRNA *brna) prop, "Use Transparency", "Use transparency mask from this material in line art"); RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); - prop = RNA_def_property(srna, "transparency_mask_0", PROP_BOOLEAN, PROP_NONE); + prop = RNA_def_property(srna, "use_transparency_mask", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_default(prop, 0); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 0); - RNA_def_property_ui_text(prop, "Mask 0", ""); - RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); - - prop = RNA_def_property(srna, "transparency_mask_1", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, 0); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 1); - RNA_def_property_ui_text(prop, "Mask 1", ""); - RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); - - prop = RNA_def_property(srna, "transparency_mask_2", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, 0); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 2); - RNA_def_property_ui_text(prop, "Mask 2", ""); - RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); - - prop = RNA_def_property(srna, "transparency_mask_3", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, 0); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 3); - RNA_def_property_ui_text(prop, "Mask 3", ""); - RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); - - prop = RNA_def_property(srna, "transparency_mask_4", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, 0); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 4); - RNA_def_property_ui_text(prop, "Mask 4", ""); - RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); - - prop = RNA_def_property(srna, "transparency_mask_5", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, 0); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 5); - RNA_def_property_ui_text(prop, "Mask 5", ""); - RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); - - prop = RNA_def_property(srna, "transparency_mask_6", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, 0); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 6); - RNA_def_property_ui_text(prop, "mask 6", ""); - RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); - - prop = RNA_def_property(srna, "transparency_mask_7", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, 0); - RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1 << 7); - RNA_def_property_ui_text(prop, "Mask 7", ""); + RNA_def_property_boolean_sdna(prop, NULL, "transparency_mask", 1); + RNA_def_property_array(prop, 8); + RNA_def_property_ui_text(prop, "Mask", ""); RNA_def_property_update(prop, NC_GPENCIL | ND_SHADING, "rna_MaterialLineArt_update"); } -- cgit v1.2.3