GP: Use Fill color when drawing strokes for no stroke materials
authorAntonioya <blendergit@gmail.com>
Fri, 25 Jan 2019 13:34:56 +0000 (14:34 +0100)
committerAntonioya <blendergit@gmail.com>
Fri, 25 Jan 2019 13:34:56 +0000 (14:34 +0100)
Artists requested to show the stroke while drawing a new stroke using a material with fill color only, because it's very difficult to see the stroke.

Now the stroke shows always but using the fill color, not the stroke color because maybe is not set.

source/blender/draw/engines/gpencil/gpencil_draw_utils.c
source/blender/editors/gpencil/gpencil_paint.c
source/blender/editors/gpencil/gpencil_primitive.c

index 0cc835b8d4e8464ef8c193735b221bb458ff8d55..27c640cc77a06cb7d7314bf09c501378e0e76d8a 100644 (file)
@@ -1215,15 +1215,11 @@ void DRW_gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data, void *vedata, T
                                                gpd, lthick);
                                }
 
-                               /* No fill strokes, must show stroke always */
-                               if ((gp_style->flag & GP_STYLE_STROKE_SHOW) ||
-                                   (gpd->runtime.sbuffer_sflag & GP_STROKE_NOFILL))
-                               {
-                                       DRW_shgroup_call_add(
-                                               stl->g_data->shgrps_drawing_stroke,
-                                               e_data->batch_buffer_stroke,
-                                               stl->storage->unit_matrix);
-                               }
+                               /* buffer strokes, must show stroke always */
+                               DRW_shgroup_call_add(
+                                           stl->g_data->shgrps_drawing_stroke,
+                                           e_data->batch_buffer_stroke,
+                                           stl->storage->unit_matrix);
 
                                if ((gpd->runtime.sbuffer_size >= 3) &&
                                    (gpd->runtime.sfill[3] > GPENCIL_ALPHA_OPACITY_THRESH) &&
index d9e36f5bf8c1d0b974f51989cd4ca940d12efa89..e1f66758007d533e0c56151cc4a58b9e6614b98e 100644 (file)
@@ -1846,7 +1846,13 @@ static void gp_init_colors(tGPsdata *p)
        if (gp_style) {
 
                /* set colors */
-               copy_v4_v4(gpd->runtime.scolor, gp_style->stroke_rgba);
+               if (gp_style->flag & GP_STYLE_STROKE_SHOW) {
+                       copy_v4_v4(gpd->runtime.scolor, gp_style->stroke_rgba);
+               }
+               else {
+                       /* if no stroke, use fill */
+                       copy_v4_v4(gpd->runtime.scolor, gp_style->fill_rgba);
+               }
                copy_v4_v4(gpd->runtime.sfill, gp_style->fill_rgba);
                /* add some alpha to make easy the filling without hide strokes */
                if (gpd->runtime.sfill[3] > 0.8f) {
index a4954100bae83b1859840d3f7b817ed6ab9e25b6..01e29ee7b690500e6e675ed66b44cecf4a2d4899 100644 (file)
@@ -174,7 +174,14 @@ static void gp_init_colors(tGPDprimitive *p)
        if (gp_style) {
 
                /* set colors */
-               copy_v4_v4(gpd->runtime.scolor, gp_style->stroke_rgba);
+               if (gp_style->flag & GP_STYLE_STROKE_SHOW) {
+                       copy_v4_v4(gpd->runtime.scolor, gp_style->stroke_rgba);
+               }
+               else {
+                       /* if no stroke, use fill */
+                       copy_v4_v4(gpd->runtime.scolor, gp_style->fill_rgba);
+               }
+
                copy_v4_v4(gpd->runtime.sfill, gp_style->fill_rgba);
                /* add some alpha to make easy the filling without hide strokes */
                if (gpd->runtime.sfill[3] > 0.8f) {