Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Vazquez <blendergit@gmail.com>2020-05-24 11:22:03 +0300
committerAntonio Vazquez <blendergit@gmail.com>2020-05-24 11:22:03 +0300
commit22462fed000d7494522f7824ede7ff9f99d2bddf (patch)
tree72e703e0a33acc7e2e9ba8d39e33bb08832f1d40
parent6f8d99322cf65d7cb24e9949d371e6bbdc726cd5 (diff)
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.
-rw-r--r--source/blender/editors/gpencil/gpencil_edit.c29
1 files changed, 18 insertions, 11 deletions
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 */