[Bf-blender-cvs] [eb6a46be2de] greasepencil-refactor: GPencil: Move Strokes Directions to Overlays

Antonio Vazquez noreply at git.blender.org
Tue Jan 7 19:53:36 CET 2020


Commit: eb6a46be2de81c33faabf0832af6c4882d275f2e
Author: Antonio Vazquez
Date:   Tue Jan 7 19:53:13 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rBeb6a46be2de81c33faabf0832af6c4882d275f2e

GPencil: Move Strokes Directions to Overlays

Before was part of the datablock.

Also some cleanup in annotations.

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

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
M	source/blender/draw/engines/overlay/overlay_gpencil.c
M	source/blender/editors/gpencil/annotate_draw.c
M	source/blender/makesdna/DNA_gpencil_types.h
M	source/blender/makesdna/DNA_view3d_types.h
M	source/blender/makesrna/intern/rna_gpencil.c
M	source/blender/makesrna/intern/rna_space.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 8859ecc5027..45dd7af9dd3 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -6475,6 +6475,9 @@ class VIEW3D_PT_overlay_gpencil_options(Panel):
         sub.prop(overlay, "gpencil_paper_opacity", text="Fade Objects", slider=True)
         sub.prop(overlay, "use_gpencil_fade_objects", text="", icon='OUTLINER_OB_GREASEPENCIL')
 
+        if context.object.mode == 'EDIT_GPENCIL':
+            layout.prop(overlay, "use_gpencil_show_directions")
+
         if context.object.mode in {'EDIT_GPENCIL', 'SCULPT_GPENCIL', 'WEIGHT_GPENCIL', 'VERTEX_GPENCIL'}:
             layout.prop(overlay, "use_gpencil_edit_lines", text="Edit Lines")
             layout.prop(overlay, "use_gpencil_multiedit_line_only", text="Show Edit Lines only in multiframe")
diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
index d90f2b20980..ef79c381bb0 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -865,7 +865,7 @@ void gpencil_get_edit_geom(struct GpencilBatchCacheElem *be,
   gpencil_vbo_ensure_size(be, gps->totpoints);
 
   /* Draw start and end point differently if enabled stroke direction hint */
-  bool show_direction_hint = (dflag & GP_DATA_SHOW_DIRECTION) && (gps->totpoints > 1);
+  bool show_direction_hint = false;
 
   /* Draw all the stroke points (selected or not) */
   bGPDspoint *pt = gps->points;
diff --git a/source/blender/draw/engines/overlay/overlay_gpencil.c b/source/blender/draw/engines/overlay/overlay_gpencil.c
index 4e45d5f6cad..83fce819151 100644
--- a/source/blender/draw/engines/overlay/overlay_gpencil.c
+++ b/source/blender/draw/engines/overlay/overlay_gpencil.c
@@ -137,6 +137,8 @@ static void OVERLAY_edit_gpencil_cache_populate(OVERLAY_Data *vedata, Object *ob
 {
   OVERLAY_PrivateData *pd = vedata->stl->pd;
   bGPdata *gpd = (bGPdata *)ob->data;
+  const DRWContextState *draw_ctx = DRW_context_state_get();
+  View3D *v3d = draw_ctx->v3d;
 
   if (pd->edit_gpencil_wires_grp) {
     DRWShadingGroup *grp = DRW_shgroup_create_sub(pd->edit_gpencil_wires_grp);
@@ -147,7 +149,7 @@ static void OVERLAY_edit_gpencil_cache_populate(OVERLAY_Data *vedata, Object *ob
   }
 
   if (pd->edit_gpencil_points_grp) {
-    const bool show_direction = (gpd->flag & GP_DATA_SHOW_DIRECTION) != 0;
+    const bool show_direction = (v3d->gp_flag & V3D_GP_SHOW_STROKE_DIRECTION) != 0;
 
     DRWShadingGroup *grp = DRW_shgroup_create_sub(pd->edit_gpencil_points_grp);
     DRW_shgroup_uniform_float_copy(grp, "doStrokeEndpoints", show_direction);
diff --git a/source/blender/editors/gpencil/annotate_draw.c b/source/blender/editors/gpencil/annotate_draw.c
index 856411e608d..42d725239a6 100644
--- a/source/blender/editors/gpencil/annotate_draw.c
+++ b/source/blender/editors/gpencil/annotate_draw.c
@@ -709,31 +709,12 @@ static void annotation_draw_strokes_edit(bGPdata *gpd,
 
     immBegin(GPU_PRIM_POINTS, gps->totpoints);
 
-    /* Draw start and end point differently if enabled stroke direction hint */
-    bool show_direction_hint = (gpd->flag & GP_DATA_SHOW_DIRECTION) && (gps->totpoints > 1);
-
     /* Draw all the stroke points (selected or not) */
     bGPDspoint *pt = gps->points;
     for (int i = 0; i < gps->totpoints; i++, pt++) {
       /* size and color first */
-      if (show_direction_hint && i == 0) {
-        /* start point in green bigger */
-        immAttr3f(color, 0.0f, 1.0f, 0.0f);
-        immAttr1f(size, vsize + 4);
-      }
-      else if (show_direction_hint && (i == gps->totpoints - 1)) {
-        /* end point in red smaller */
-        immAttr3f(color, 1.0f, 0.0f, 0.0f);
-        immAttr1f(size, vsize + 1);
-      }
-      else if (pt->flag & GP_SPOINT_SELECT) {
-        immAttr3fv(color, selectColor);
-        immAttr1f(size, vsize);
-      }
-      else {
-        immAttr3fv(color, gpl->color);
-        immAttr1f(size, bsize);
-      }
+      immAttr3fv(color, gpl->color);
+      immAttr1f(size, bsize);
 
       /* then position */
       if (gps->flag & GP_STROKE_3DSPACE) {
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index ba3a6f6e0b7..1b4875205e4 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -612,8 +612,6 @@ typedef enum eGPdata_Flag {
 
   /* Main flag to switch onion skinning on/off */
   GP_DATA_SHOW_ONIONSKINS = (1 << 9),
-  /* Draw a green and red point to indicate start and end of the stroke */
-  GP_DATA_SHOW_DIRECTION = (1 << 10),
 
   /* Batch drawing cache need to be recalculated */
   GP_DATA_CACHE_IS_DIRTY = (1 << 11),
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 7ff2d76bbf4..b01c699c704 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -407,6 +407,7 @@ typedef struct View3D {
 #define V3D_GP_SHOW_ONION_SKIN (1 << 4)       /* main switch at view level */
 #define V3D_GP_FADE_NOACTIVE_LAYERS (1 << 5)  /* fade layers not active */
 #define V3D_GP_FADE_NOACTIVE_GPENCIL (1 << 6) /* Fade other GPencil objects */
+#define V3D_GP_SHOW_STROKE_DIRECTION (1 << 7) /* Show Strokes Directions */
 
 /** #View3DShading.light */
 enum {
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c
index 28ef28ef606..b5cc5814f91 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -1810,14 +1810,6 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
   RNA_def_property_update(
       prop, NC_SCREEN | NC_SCENE | ND_TOOLSETTINGS | ND_DATA | NC_GPENCIL, "rna_GPencil_update");
 
-  prop = RNA_def_property(srna, "show_stroke_direction", PROP_BOOLEAN, PROP_NONE);
-  RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_DATA_SHOW_DIRECTION);
-  RNA_def_property_ui_text(prop,
-                           "Show Direction",
-                           "Show stroke drawing direction with a bigger green dot (start) "
-                           "and smaller red dot (end) points");
-  RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
-
   prop = RNA_def_property(srna, "stroke_thickness_space", PROP_ENUM, PROP_NONE); /* as an enum */
   RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
   RNA_def_property_enum_items(prop, stroke_thickness_items);
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 66e7e543110..924a1602544 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -3713,6 +3713,14 @@ static void rna_def_space_view3d_overlay(BlenderRNA *brna)
       prop, "Fade Grease Pencil Objects", "Fade Grease Pencil Objects, except the active one");
   RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, "rna_GPencil_update");
 
+  prop = RNA_def_property(srna, "use_gpencil_show_directions", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_boolean_sdna(prop, NULL, "gp_flag", V3D_GP_SHOW_STROKE_DIRECTION);
+  RNA_def_property_ui_text(prop,
+                           "Strokes Directions",
+                           "Show stroke drawing direction with a bigger green dot (start) "
+                           "and smaller red dot (end) points");
+  RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, "rna_GPencil_update");
+
   prop = RNA_def_property(srna, "gpencil_grid_opacity", PROP_FLOAT, PROP_NONE);
   RNA_def_property_float_sdna(prop, NULL, "overlay.gpencil_grid_opacity");
   RNA_def_property_range(prop, 0.1f, 1.0f);



More information about the Bf-blender-cvs mailing list