[Bf-blender-cvs] [5b16ae068b9] lanpr-under-gp: LANPR: GP modifier basic UI complete.

YimingWu noreply at git.blender.org
Sat Jun 27 15:25:02 CEST 2020


Commit: 5b16ae068b9f6a9d07fcf0d0547e790e5b50dde5
Author: YimingWu
Date:   Sat Jun 27 21:24:24 2020 +0800
Branches: lanpr-under-gp
https://developer.blender.org/rB5b16ae068b9f6a9d07fcf0d0547e790e5b50dde5

LANPR: GP modifier basic UI complete.

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

M	source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
M	source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
M	source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
M	source/blender/makesdna/DNA_gpencil_modifier_types.h
M	source/blender/makesrna/intern/rna_gpencil_modifier.c

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

diff --git a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
index 2f9f167b568..245c73a5bc3 100644
--- a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
+++ b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
@@ -44,7 +44,7 @@ extern GpencilModifierTypeInfo modifierType_Gpencil_Armature;
 extern GpencilModifierTypeInfo modifierType_Gpencil_Time;
 extern GpencilModifierTypeInfo modifierType_Gpencil_Multiply;
 extern GpencilModifierTypeInfo modifierType_Gpencil_Texture;
-extern GpencilModifierTypeInfo modifierType_Gpencil_LRT;
+extern GpencilModifierTypeInfo modifierType_Gpencil_Lineart;
 
 /* MOD_gpencil_util.c */
 void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[]);
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
index 639f17ba95a..2a0842c90d7 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
@@ -73,7 +73,7 @@ void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[])
   INIT_GP_TYPE(Time);
   INIT_GP_TYPE(Multiply);
   INIT_GP_TYPE(Texture);
-  INIT_GP_TYPE(LRT);
+  INIT_GP_TYPE(Lineart);
 #undef INIT_GP_TYPE
 }
 
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
index fe6c6043c19..31f5d6218f6 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
@@ -26,13 +26,13 @@
 #include "BLI_utildefines.h"
 
 #include "BLI_blenlib.h"
-#include "BLI_math_color.h"
 #include "BLI_math_vector.h"
 
 #include "BLT_translation.h"
 
 #include "DNA_gpencil_modifier_types.h"
 #include "DNA_gpencil_types.h"
+#include "DNA_lineart_types.h"
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
 #include "DNA_screen_types.h"
@@ -59,6 +59,8 @@
 #include "MOD_gpencil_ui_common.h"
 #include "MOD_gpencil_util.h"
 
+#include "ED_lineart.h"
+
 static void initData(GpencilModifierData *md)
 {
   LineartGpencilModifierData *lmd = (LineartGpencilModifierData *)md;
@@ -72,7 +74,6 @@ static void copyData(const GpencilModifierData *md, GpencilModifierData *target)
   BKE_gpencil_modifier_copydata_generic(md, target);
 }
 
-/* color correction strokes */
 static void deformStroke(GpencilModifierData *md,
                          Depsgraph *UNUSED(depsgraph),
                          Object *ob,
@@ -118,37 +119,63 @@ static void panel_draw(const bContext *C, Panel *panel)
   PointerRNA ptr;
   gpencil_modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
 
+  int source_type = RNA_enum_get(&ptr, "source_type");
+
   uiLayoutSetPropSep(layout, true);
 
-  uiItemR(layout, &ptr, "modify_color", 0, NULL, ICON_NONE);
-  uiItemR(layout, &ptr, "hue", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
-  uiItemR(layout, &ptr, "saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
-  uiItemR(layout, &ptr, "value", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "source_type", 0, NULL, ICON_NONE);
+
+  if (source_type == LRT_SOURCE_OBJECT) {
+    uiItemR(layout, &ptr, "source_object", 0, NULL, ICON_CUBE);
+  }
+  else if (source_type == LRT_SOURCE_COLLECTION) {
+    uiItemR(layout, &ptr, "source_collection", 0, NULL, ICON_GROUP);
+  }
+
+  uiItemR(layout, &ptr, "use_contour", 0, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "use_crease", 0, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "use_material", 0, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "use_edge_mark", 0, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "use_intersection", 0, NULL, ICON_NONE);
+
+  uiItemR(layout, &ptr, "target_gp_material", 0, NULL, ICON_NONE); /* How to filter??? */
+  uiItemR(layout, &ptr, "target_gp_layer", 0, NULL, ICON_NONE); /* How to do selector there??? */
 
   gpencil_modifier_panel_end(layout, &ptr);
 }
 
-static void mask_panel_draw(const bContext *C, Panel *panel)
+static void occlusion_panel_draw(const bContext *C, Panel *panel)
 {
-  gpencil_modifier_masking_panel_draw(C, panel, true, false);
+  PointerRNA ptr;
+  gpencil_modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
+
+  uiLayout *layout = panel->layout;
+
+  bool use_multiple_levels = RNA_boolean_get(&ptr, "use_multiple_levels");
+
+  uiItemR(layout, &ptr, "use_multiple_levels", 0, "Multiple Levels", ICON_NONE);
+
+  if (use_multiple_levels) {
+    /* How to align and stuff... */
+    uiItemR(layout, &ptr, "level_start", 0, NULL, ICON_NONE);
+    uiItemR(layout, &ptr, "level_end", 0, NULL, ICON_NONE);
+  }
+  else {
+    uiItemR(layout, &ptr, "level_start", 0, "Level", ICON_NONE);
+  }
 }
 
 static void panelRegister(ARegionType *region_type)
 {
   PanelType *panel_type = gpencil_modifier_panel_register(
-      region_type, eGpencilModifierType_Color, panel_draw);
-  PanelType *mask_panel_type = gpencil_modifier_subpanel_register(
-      region_type, "mask", "Influence", NULL, mask_panel_draw, panel_type);
-  gpencil_modifier_subpanel_register(region_type,
-                                     "curve",
-                                     "",
-                                     gpencil_modifier_curve_header_draw,
-                                     gpencil_modifier_curve_panel_draw,
-                                     mask_panel_type);
+      region_type, eGpencilModifierType_Lineart, panel_draw);
+
+  PanelType *occlusion_panel_type = gpencil_modifier_subpanel_register(
+      region_type, "occlusion", "Occlusion", NULL, occlusion_panel_draw, panel_type);
 }
 
-GpencilModifierTypeInfo modifierType_Gpencil_LRT = {
-    /* name */ "Hue/Saturation",
+GpencilModifierTypeInfo modifierType_Gpencil_Lineart = {
+    /* name */ "Line Art",
     /* structName */ "LineartGpencilModifierData",
     /* structSize */ sizeof(LineartGpencilModifierData),
     /* type */ eGpencilModifierTypeType_Gpencil,
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h
index 6e03b0ecb67..2ceab21c307 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_types.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h
@@ -50,7 +50,7 @@ typedef enum GpencilModifierType {
   eGpencilModifierType_Time = 16,
   eGpencilModifierType_Multiply = 17,
   eGpencilModifierType_Texture = 18,
-  eGpencilModifierType_LRT = 19,
+  eGpencilModifierType_Lineart = 19,
   /* Keep last. */
   NUM_GREASEPENCIL_MODIFIER_TYPES,
 } GpencilModifierType;
@@ -818,7 +818,7 @@ typedef struct LineartGpencilModifierData {
   short level_start;
   short level_end;
 
-  struct Object *source_gp;
+  struct Object *source_object;
   struct Collection *source_collection;
 
   struct Material *target_gp_material;
diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c
index 55d1bdf7ec2..3162c6b83e7 100644
--- a/source/blender/makesrna/intern/rna_gpencil_modifier.c
+++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c
@@ -88,11 +88,11 @@ const EnumPropertyItem rna_enum_object_greasepencil_modifier_type_items[] = {
      ICON_MOD_SUBSURF,
      "Subdivide",
      "Subdivide stroke adding more control points"},
-    {eGpencilModifierType_LRT,
-     "GP_LRT",
+    {eGpencilModifierType_Lineart,
+     "GP_LINEART",
      ICON_MOD_EDGESPLIT,
-     "LRT",
-     "Generate LRT strokes from selected source"},
+     "Line Art",
+     "Generate Line Art strokes from selected source"},
     {0, "", 0, N_("Deform"), ""},
     {eGpencilModifierType_Armature,
      "GP_ARMATURE",
@@ -246,7 +246,7 @@ static StructRNA *rna_GpencilModifier_refine(struct PointerRNA *ptr)
       return &RNA_MultiplyGpencilModifier;
     case eGpencilModifierType_Texture:
       return &RNA_TextureGpencilModifier;
-    case eGpencilModifierType_LRT:
+    case eGpencilModifierType_Lineart:
       return &RNA_LineartGpencilModifier;
       /* Default */
     case eGpencilModifierType_None:
@@ -2328,15 +2328,29 @@ static void rna_def_modifier_gpencillineart(BlenderRNA *brna)
   };
 
   srna = RNA_def_struct(brna, "LineartGpencilModifier", "GpencilModifier");
-  RNA_def_struct_ui_text(srna, "LRT Modifier", "Genreate LRT strokes from selected source");
+  RNA_def_struct_ui_text(
+      srna, "Line Art Modifier", "Genreate Line Art strokes from selected source");
   RNA_def_struct_sdna(srna, "LineartGpencilModifierData");
   RNA_def_struct_ui_icon(srna, ICON_MOD_EDGESPLIT);
 
   prop = RNA_def_property(srna, "source_type", PROP_ENUM, PROP_NONE);
-  RNA_def_property_clear_flag(prop, PROP_EDITABLE);
   RNA_def_property_enum_items(prop, modifier_lineart_source_type);
   RNA_def_property_ui_text(prop, "Source Type", "Lineart stroke source type");
 
+  prop = RNA_def_property(srna, "source_object", PROP_POINTER, PROP_NONE);
+  RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
+  RNA_def_property_struct_type(prop, "Object");
+  RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY);
+  RNA_def_property_ui_text(
+      prop, "Source Object", "Source object that this modifier grabs data from");
+
+  prop = RNA_def_property(srna, "source_collection", PROP_POINTER, PROP_NONE);
+  RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
+  RNA_def_property_struct_type(prop, "Collection");
+  RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY);
+  RNA_def_property_ui_text(
+      prop, "Source Collection", "Source collection that this modifier grabs data from");
+
   /* types */
   prop = RNA_def_property(srna, "use_contour", PROP_BOOLEAN, PROP_NONE);
   RNA_def_property_boolean_sdna(prop, NULL, "line_types", LRT_EDGE_FLAG_CONTOUR);



More information about the Bf-blender-cvs mailing list