[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