diff options
author | Antonioya <blendergit@gmail.com> | 2019-04-15 11:32:06 +0300 |
---|---|---|
committer | Antonioya <blendergit@gmail.com> | 2019-04-15 11:32:25 +0300 |
commit | 240940c58ca3ce65e4bbceebea71dd9d1c2c08bc (patch) | |
tree | 97a9c60a7c2e059cef2541667ade5e00c70c21f5 /source/blender/editors/gpencil/gpencil_primitive.c | |
parent | 7c79455297d818a94aab2a9be5807b4d9ca43827 (diff) |
GPencil: New Dots gradient
This commit adds support for drawing Dots strokes with a gradient factor to get artistic effects like watercolor.
Currently, the option is only supported by Dots materials, and in the future will be added to line strokes, but now there is a limitation on drawing engine and we will keep disabled on Line materials.
Also, added the option to align Dots and Boxes strokes textures aligned with the drawing path to get more fluid strokes.
Diffstat (limited to 'source/blender/editors/gpencil/gpencil_primitive.c')
-rw-r--r-- | source/blender/editors/gpencil/gpencil_primitive.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/editors/gpencil/gpencil_primitive.c b/source/blender/editors/gpencil/gpencil_primitive.c index f92398520fa..374dbbf4d9c 100644 --- a/source/blender/editors/gpencil/gpencil_primitive.c +++ b/source/blender/editors/gpencil/gpencil_primitive.c @@ -319,6 +319,9 @@ static void gp_primitive_set_initdata(bContext *C, tGPDprimitive *tgpi) /* create new temp stroke */ bGPDstroke *gps = MEM_callocN(sizeof(bGPDstroke), "Temp bGPDstroke"); gps->thickness = 2.0f; + gps->gradient_f = 1.0f; + gps->gradient_s[0] = 1.0f; + gps->gradient_s[1] = 1.0f; gps->inittime = 0.0f; /* enable recalculation flag by default */ @@ -1199,6 +1202,7 @@ static void gpencil_primitive_interaction_end(bContext *C, wmOperator *op, wmWin bGPDstroke *gps; ToolSettings *ts = tgpi->scene->toolsettings; + Brush *brush = tgpi->brush; const int def_nr = tgpi->ob->actdef - 1; const bool have_weight = (bool)BLI_findlink(&tgpi->ob->defbase, def_nr); @@ -1221,7 +1225,10 @@ static void gpencil_primitive_interaction_end(bContext *C, wmOperator *op, wmWin /* prepare stroke to get transferred */ gps = tgpi->gpf->strokes.first; if (gps) { - gps->thickness = tgpi->brush->size; + gps->thickness = brush->size; + gps->gradient_f = brush->gpencil_settings->gradient_f; + copy_v2_v2(gps->gradient_s, brush->gpencil_settings->gradient_s); + gps->flag |= GP_STROKE_RECALC_GEOMETRY; gps->tot_triangles = 0; |