[Bf-blender-cvs] [22462fed000] blender-v2.83-release: Fix T77003: GPencil Paint presets not initializated

Antonio Vazquez noreply at git.blender.org
Sun May 24 10:22:14 CEST 2020


Commit: 22462fed000d7494522f7824ede7ff9f99d2bddf
Author: Antonio Vazquez
Date:   Sun May 24 10:22:03 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB22462fed000d7494522f7824ede7ff9f99d2bddf

Fix T77003: GPencil Paint presets not initializated

In som ecases, the Paint was not ready when the brushes and palette were created. Now, first the paint is checked.

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

M	source/blender/editors/gpencil/gpencil_edit.c

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

diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 81596e5715c..99700a870b9 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -337,10 +337,6 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op)
   /* set mode */
   if (gpd->flag & GP_DATA_STROKE_PAINTMODE) {
     mode = OB_MODE_PAINT_GPENCIL;
-    BKE_brush_gpencil_paint_presets(bmain, ts, false);
-
-    /* Ensure Palette by default. */
-    BKE_gpencil_palette_ensure(bmain, CTX_data_scene(C));
   }
   else {
     mode = OB_MODE_OBJECT;
@@ -356,8 +352,16 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op)
   }
 
   if (mode == OB_MODE_PAINT_GPENCIL) {
-    /* be sure we have brushes */
+    /* Be sure we have brushes and Paint settings.
+     * Need Draw and Vertex (used fro Tint). */
     BKE_paint_ensure(ts, (Paint **)&ts->gp_paint);
+    BKE_paint_ensure(ts, (Paint **)&ts->gp_vertexpaint);
+
+    BKE_brush_gpencil_paint_presets(bmain, ts, false);
+
+    /* Ensure Palette by default. */
+    BKE_gpencil_palette_ensure(bmain, CTX_data_scene(C));
+
     Paint *paint = &ts->gp_paint->paint;
     /* if not exist, create a new one */
     if ((paint->brush == NULL) || (paint->brush->gpencil_settings == NULL)) {
@@ -445,7 +449,6 @@ static int gpencil_sculptmode_toggle_exec(bContext *C, wmOperator *op)
   /* set mode */
   if (gpd->flag & GP_DATA_STROKE_SCULPTMODE) {
     mode = OB_MODE_SCULPT_GPENCIL;
-    BKE_brush_gpencil_sculpt_presets(bmain, ts, false);
   }
   else {
     mode = OB_MODE_OBJECT;
@@ -464,6 +467,8 @@ static int gpencil_sculptmode_toggle_exec(bContext *C, wmOperator *op)
     /* be sure we have brushes */
     BKE_paint_ensure(ts, (Paint **)&ts->gp_sculptpaint);
     BKE_paint_toolslots_brush_validate(bmain, &ts->gp_sculptpaint->paint);
+
+    BKE_brush_gpencil_sculpt_presets(bmain, ts, false);
   }
 
   /* setup other modes */
@@ -545,7 +550,6 @@ static int gpencil_weightmode_toggle_exec(bContext *C, wmOperator *op)
   /* set mode */
   if (gpd->flag & GP_DATA_STROKE_WEIGHTMODE) {
     mode = OB_MODE_WEIGHT_GPENCIL;
-    BKE_brush_gpencil_weight_presets(bmain, ts, false);
   }
   else {
     mode = OB_MODE_OBJECT;
@@ -564,6 +568,8 @@ static int gpencil_weightmode_toggle_exec(bContext *C, wmOperator *op)
     /* be sure we have brushes */
     BKE_paint_ensure(ts, (Paint **)&ts->gp_weightpaint);
     BKE_paint_toolslots_brush_validate(bmain, &ts->gp_weightpaint->paint);
+
+    BKE_brush_gpencil_weight_presets(bmain, ts, false);
   }
 
   /* setup other modes */
@@ -644,10 +650,6 @@ static int gpencil_vertexmode_toggle_exec(bContext *C, wmOperator *op)
   /* set mode */
   if (gpd->flag & GP_DATA_STROKE_VERTEXMODE) {
     mode = OB_MODE_VERTEX_GPENCIL;
-    BKE_brush_gpencil_vertex_presets(bmain, ts, false);
-
-    /* Ensure Palette by default. */
-    BKE_gpencil_palette_ensure(bmain, CTX_data_scene(C));
   }
   else {
     mode = OB_MODE_OBJECT;
@@ -666,6 +668,11 @@ static int gpencil_vertexmode_toggle_exec(bContext *C, wmOperator *op)
     /* be sure we have brushes */
     BKE_paint_ensure(ts, (Paint **)&ts->gp_vertexpaint);
     BKE_paint_toolslots_brush_validate(bmain, &ts->gp_vertexpaint->paint);
+
+    BKE_brush_gpencil_vertex_presets(bmain, ts, false);
+
+    /* Ensure Palette by default. */
+    BKE_gpencil_palette_ensure(bmain, CTX_data_scene(C));
   }
 
   /* setup other modes */



More information about the Bf-blender-cvs mailing list