[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