[Bf-blender-cvs] [aef77043ac4] temp-lineart-contained: LineArt: cache ui changes.
YimingWu
noreply at git.blender.org
Tue Jun 15 14:09:47 CEST 2021
Commit: aef77043ac49a4dab1f7decf32b5515537309389
Author: YimingWu
Date: Tue Jun 15 18:10:50 2021 +0800
Branches: temp-lineart-contained
https://developer.blender.org/rBaef77043ac49a4dab1f7decf32b5515537309389
LineArt: cache ui changes.
===================================================================
M source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
===================================================================
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
index 425a1d801f1..5d30c09d967 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
@@ -295,6 +295,7 @@ static void panel_draw(const bContext *UNUSED(C), Panel *panel)
const int source_type = RNA_enum_get(ptr, "source_type");
const bool is_baked = RNA_boolean_get(ptr, "is_baked");
const bool use_cache = RNA_boolean_get(ptr, "use_cached_result");
+ const bool is_first = BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data);
uiLayoutSetPropSep(layout, true);
uiLayoutSetEnabled(layout, !is_baked);
@@ -322,22 +323,28 @@ static void panel_draw(const bContext *UNUSED(C), Panel *panel)
uiItemR(col, ptr, "use_material", 0, IFACE_("Material Borders"), ICON_NONE);
uiItemR(col, ptr, "use_edge_mark", 0, IFACE_("Edge Marks"), ICON_NONE);
uiItemR(col, ptr, "use_intersection", 0, IFACE_("Intersections"), ICON_NONE);
- uiItemR(col, ptr, "use_crease", 0, IFACE_("Crease"), ICON_NONE);
- uiLayout *sub = uiLayoutRow(col, false);
- uiLayoutSetActive(sub,
- (RNA_boolean_get(ptr, "use_crease") && !use_cache) ||
- BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data));
- uiLayoutSetPropSep(sub, true);
- uiItemR(sub, ptr, "crease_threshold", UI_ITEM_R_SLIDER, " ", ICON_NONE);
+ uiLayout *sub = uiLayoutRowWithHeading(col, false, IFACE_("Crease"));
+ uiItemR(sub, ptr, "use_crease", 0, "", ICON_NONE);
+ uiLayout *entry = uiLayoutRow(sub, false);
+ uiLayoutSetActive(entry, RNA_boolean_get(ptr, "use_crease") || is_first);
+ if (use_cache && !is_first) {
+ uiItemL(entry, IFACE_("Angle Cached"), ICON_INFO);
+ }
+ else {
+ uiItemR(entry, ptr, "crease_threshold", UI_ITEM_R_SLIDER, " ", ICON_NONE);
+ }
sub = uiLayoutRowWithHeading(col, false, IFACE_("Light Contour"));
uiItemR(sub, ptr, "use_light_contour", 0, "", ICON_NONE);
- uiLayout *entry = uiLayoutRow(sub, false);
- uiLayoutSetActive(entry,
- (RNA_boolean_get(ptr, "use_light_contour") && !use_cache) ||
- BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data));
- uiItemR(entry, ptr, "light_contour_object", 0, "", ICON_NONE);
+ entry = uiLayoutRow(sub, false);
+ uiLayoutSetActive(entry, (RNA_boolean_get(ptr, "use_light_contour")) || is_first);
+ if (use_cache && !is_first) {
+ uiItemL(entry, IFACE_("Reference Cached"), ICON_INFO);
+ }
+ else {
+ uiItemR(entry, ptr, "light_contour_object", 0, "", ICON_NONE);
+ }
uiItemPointerR(layout, ptr, "target_layer", &obj_data_ptr, "layers", NULL, ICON_GREASEPENCIL);
@@ -371,27 +378,31 @@ static void options_panel_draw(const bContext *UNUSED(C), Panel *panel)
const bool is_baked = RNA_boolean_get(ptr, "is_baked");
const bool use_cache = RNA_boolean_get(ptr, "use_cached_result");
+ const bool is_first = BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data);
uiLayoutSetPropSep(layout, true);
- uiLayoutSetEnabled(
- layout,
- !is_baked && (!use_cache || BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data)));
+ uiLayoutSetEnabled(layout, !is_baked);
+
+ if (!use_cache || is_first) {
+ uiLayout *row = uiLayoutRowWithHeading(layout, false, IFACE_("Custom Camera"));
+ uiItemR(row, ptr, "use_custom_camera", 0, "", 0);
+ uiLayout *subrow = uiLayoutRow(row, true);
+ uiLayoutSetActive(subrow, RNA_boolean_get(ptr, "use_custom_camera"));
+ uiLayoutSetPropSep(subrow, true);
+ uiItemR(subrow, ptr, "source_camera", 0, "", ICON_OBJECT_DATA);
+
+ uiItemR(layout, ptr, "overscan", 0, NULL, ICON_NONE);
- uiLayout *row = uiLayoutRowWithHeading(layout, false, IFACE_("Custom Camera"));
- uiItemR(row, ptr, "use_custom_camera", 0, "", 0);
- uiLayout *subrow = uiLayoutRow(row, true);
- uiLayoutSetActive(subrow, RNA_boolean_get(ptr, "use_custom_camera"));
- uiLayoutSetPropSep(subrow, true);
- uiItemR(subrow, ptr, "source_camera", 0, "", ICON_OBJECT_DATA);
-
- uiItemR(layout, ptr, "overscan", 0, NULL, ICON_NONE);
-
- uiItemR(layout, ptr, "use_remove_doubles", 0, NULL, ICON_NONE);
- uiItemR(layout, ptr, "use_edge_overlap", 0, IFACE_("Overlapping Edges As Contour"), ICON_NONE);
- uiItemR(layout, ptr, "use_object_instances", 0, NULL, ICON_NONE);
- uiItemR(layout, ptr, "use_clip_plane_boundaries", 0, NULL, ICON_NONE);
- uiItemR(layout, ptr, "floating_as_contour", 0, NULL, ICON_NONE);
- uiItemR(layout, ptr, "use_multiple_edge_types", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "use_remove_doubles", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "use_edge_overlap", 0, IFACE_("Overlapping Edges As Contour"), ICON_NONE);
+ uiItemR(layout, ptr, "use_object_instances", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "use_clip_plane_boundaries", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "floating_as_contour", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "use_multiple_edge_types", 0, NULL, ICON_NONE);
+ }
+ else {
+ uiItemL(layout, "Cached with the first line art modifier.", ICON_INFO);
+ }
}
static void style_panel_draw(const bContext *UNUSED(C), Panel *panel)
@@ -552,17 +563,21 @@ static void face_mark_panel_draw(const bContext *UNUSED(C), Panel *panel)
const bool is_baked = RNA_boolean_get(ptr, "is_baked");
const bool use_mark = RNA_boolean_get(ptr, "use_face_mark");
const bool use_cache = RNA_boolean_get(ptr, "use_cached_result");
+ const bool is_first = BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data);
- uiLayoutSetEnabled(
- layout,
- !is_baked && (!use_cache || BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data)));
+ uiLayoutSetEnabled(layout, !is_baked);
uiLayoutSetPropSep(layout, true);
uiLayoutSetActive(layout, use_mark);
- uiItemR(layout, ptr, "use_face_mark_invert", 0, NULL, ICON_NONE);
- uiItemR(layout, ptr, "use_face_mark_boundaries", 0, NULL, ICON_NONE);
+ if (!use_cache || is_first) {
+ uiItemR(layout, ptr, "use_face_mark_invert", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "use_face_mark_boundaries", 0, NULL, ICON_NONE);
+ }
+ else {
+ uiItemL(layout, "Cached with the first line art modifier.", ICON_INFO);
+ }
}
static void chaining_panel_draw(const bContext *UNUSED(C), Panel *panel)
@@ -574,22 +589,26 @@ static void chaining_panel_draw(const bContext *UNUSED(C), Panel *panel)
const bool is_baked = RNA_boolean_get(ptr, "is_baked");
const bool use_cache = RNA_boolean_get(ptr, "use_cached_result");
+ const bool is_first = BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data);
uiLayoutSetPropSep(layout, true);
- uiLayoutSetEnabled(
- layout,
- !is_baked && (!use_cache || BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data)));
+ uiLayoutSetEnabled(layout, !is_baked);
- uiLayout *col = uiLayoutColumnWithHeading(layout, true, IFACE_("Chain"));
- uiItemR(col, ptr, "use_fuzzy_intersections", 0, NULL, ICON_NONE);
- uiItemR(col, ptr, "use_fuzzy_all", 0, NULL, ICON_NONE);
- uiItemR(col, ptr, "chain_floating_edges", 0, NULL, ICON_NONE);
- uiItemR(col, ptr, "chain_geometry_space", 0, NULL, ICON_NONE);
+ if (!use_cache || is_first) {
+ uiLayout *col = uiLayoutColumnWithHeading(layout, true, IFACE_("Chain"));
+ uiItemR(col, ptr, "use_fuzzy_intersections", 0, NULL, ICON_NONE);
+ uiItemR(col, ptr, "use_fuzzy_all", 0, NULL, ICON_NONE);
+ uiItemR(col, ptr, "chain_floating_edges", 0, NULL, ICON_NONE);
+ uiItemR(col, ptr, "chain_geometry_space", 0, NULL, ICON_NONE);
- uiItemR(layout, ptr, "chaining_image_threshold", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "chaining_image_threshold", 0, NULL, ICON_NONE);
- uiItemR(layout, ptr, "smooth_tolerance", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
- uiItemR(layout, ptr, "split_angle", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "smooth_tolerance", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "split_angle", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ }
+ else {
+ uiItemL(layout, "Cached with the first line art modifier.", ICON_INFO);
+ }
}
static void vgroup_panel_draw(const bContext *UNUSED(C), Panel *panel)
@@ -601,24 +620,29 @@ static void vgroup_panel_draw(const bContext *UNUSED(C), Panel *panel)
const bool is_baked = RNA_boolean_get(ptr, "is_baked");
const bool use_cache = RNA_boolean_get(ptr, "use_cached_result");
+ const bool is_first = BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data);
uiLayoutSetPropSep(layout, true);
- uiLayoutSetEnabled(
- layout,
- !is_baked && (!use_cache || BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data)));
+ uiLayoutSetEnabled(layout, !is_baked);
- uiLayout *col = uiLayoutColumn(layout, true);
+ if (!use_cache || is_first) {
+ uiLayout *col = uiLayoutColumn(layout, true);
+
+ uiLayout *row = uiLayoutRow(col, true);
- uiLayout *row = uiLayoutRow(col, true);
- uiItemR(row, ptr, "source_vertex_group", 0, IFACE_("Filter Source"), ICON_GROUP_VERTEX);
- uiItemR(row, ptr, "invert_source_vertex_group", UI_ITEM_R_TOGGLE, "", ICON_ARROW_LEFTRIGHT);
+ uiItemR(row, ptr, "source_vertex_group", 0, IFACE_("Filter Source"), ICON_GROUP_VERTEX);
+ uiItemR(row, ptr, "invert_source_vertex_group", UI_ITEM_R_TOGGLE, "", ICON_ARROW_LEFTRIGHT);
- uiItemR(col, ptr, "use_output_vertex_group_match_by_name", 0, NULL, ICON_NONE);
+ uiItemR(col, ptr, "use_output_vertex_group_match_by_name", 0, NULL, ICON_NONE);
- const bool match_output = RNA_boolean_get(ptr, "use_output_vertex_group_match_by_name");
- if (!match_output) {
- uiItemPointerR(
- col, ptr, "vertex_group", &ob_ptr, "vertex_groups", IFACE_("Target"), ICON_NONE);
+ const bool match_output = RNA_boolean_get(ptr, "use_output_vertex_group_match_by_name");
+ if (!match_output) {
+ uiItemPointerR(
+ col, ptr, "vertex_group", &ob_ptr, "vertex_groups", IFACE_("Target"), ICON_NONE);
+ }
+ }
+ else {
+ uiItemL(layout, "Cached with the first line art modifier.", ICON_INFO);
}
}
More information about the Bf-blender-cvs
mailing list