[Bf-blender-cvs] [9c816eec266] greasepencil-object: GPencil: Initialize Brush only if the brush is new

Antonio Vazquez noreply at git.blender.org
Sat Nov 9 12:09:53 CET 2019


Commit: 9c816eec2662f749f97bd6801a8fc8d8b3bd808a
Author: Antonio Vazquez
Date:   Sat Nov 9 12:09:42 2019 +0100
Branches: greasepencil-object
https://developer.blender.org/rB9c816eec2662f749f97bd6801a8fc8d8b3bd808a

GPencil: Initialize Brush only if the brush is new

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

M	source/blender/blenkernel/intern/brush.c

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

diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index 881e70d60ad..3f5a9bbd411 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -241,29 +241,29 @@ static void brush_gpencil_curvemap_reset(CurveMap *cuma, int tot, int preset)
   }
 }
 
-static Brush *gpencil_brush_ensure(Main *bmain,
-                                   ToolSettings *ts,
-                                   char *brush_name,
-                                   eObjectMode mode)
+static Brush *gpencil_brush_ensure(
+    Main *bmain, ToolSettings *ts, char *brush_name, eObjectMode mode, bool *new)
 {
+  *new = false;
   Brush *brush = BLI_findstring(&bmain->brushes, brush_name, offsetof(ID, name) + 2);
   if (brush == NULL) {
     brush = BKE_brush_add_gpencil(bmain, ts, brush_name, mode);
+    *new = true;
+
+    /* Set default at brush level. */
+    brush->rgb[0] = 0.498f;
+    brush->rgb[1] = 1.0f;
+    brush->rgb[2] = 0.498f;
+
+    brush->secondary_rgb[0] = 1.0f;
+    brush->secondary_rgb[1] = 1.0f;
+    brush->secondary_rgb[2] = 1.0f;
   }
 
   if (brush->gpencil_settings == NULL) {
     BKE_brush_init_gpencil_settings(brush);
   }
 
-  /* Set default at brush level. */
-  brush->rgb[0] = 0.498f;
-  brush->rgb[1] = 1.0f;
-  brush->rgb[2] = 0.498f;
-
-  brush->secondary_rgb[0] = 1.0f;
-  brush->secondary_rgb[1] = 1.0f;
-  brush->secondary_rgb[2] = 1.0f;
-
   /* Set vertex mix factor. */
   if (brush->gpencil_settings) {
     brush->gpencil_settings->vertex_mode = GPPAINT_MODE_STROKE;
@@ -285,9 +285,9 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
 
   Brush *brush, *deft_draw, *deft_vertex;
   CurveMapping *custom_curve;
-
+  bool new_brush = false;
   /* Airbrush brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Airbrush", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Airbrush", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 300.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
@@ -321,7 +321,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->gpencil_settings->flag |= GP_BRUSH_MATERIAL_PINNED;
 
   /* Ink Pen brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Ink Pen", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Ink Pen", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 60.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
@@ -359,7 +359,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->smooth_stroke_factor = SMOOTH_STROKE_FACTOR;
 
   /* Ink Pen Rough brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Ink Pen Rough", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Ink Pen Rough", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 60.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
@@ -399,7 +399,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->smooth_stroke_factor = SMOOTH_STROKE_FACTOR;
 
   /* Marker Bold brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Marker Bold", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Marker Bold", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 150.0f;
   brush->gpencil_settings->flag &= ~GP_BRUSH_USE_PRESSURE;
@@ -439,7 +439,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->smooth_stroke_factor = SMOOTH_STROKE_FACTOR;
 
   /* Marker Chisel brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Marker Chisel", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Marker Chisel", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 80.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
@@ -472,7 +472,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->smooth_stroke_factor = SMOOTH_STROKE_FACTOR;
 
   /* Pen brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Pen", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Pen", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 30.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
@@ -506,7 +506,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->smooth_stroke_factor = SMOOTH_STROKE_FACTOR;
 
   /* Pencil Soft brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Pencil Soft", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Pencil Soft", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 80.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
@@ -540,7 +540,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->smooth_stroke_factor = SMOOTH_STROKE_FACTOR;
 
   /* Pencil brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Pencil", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Pencil", OB_MODE_PAINT_GPENCIL, &new_brush);
   deft_draw = brush; /* save default brush. */
 
   brush->size = 25.0f;
@@ -574,7 +574,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->smooth_stroke_factor = SMOOTH_STROKE_FACTOR;
 
   /* Fill brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Fill Area", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Fill Area", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 20.0f;
   brush->gpencil_settings->flag |= GP_BRUSH_ENABLE_CURSOR;
@@ -600,7 +600,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->smooth_stroke_factor = SMOOTH_STROKE_FACTOR;
 
   /* Soft Eraser brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Eraser Soft", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Eraser Soft", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 30.0f;
   brush->gpencil_settings->draw_strength = 0.5f;
@@ -614,7 +614,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->gpencil_settings->era_thickness_f = 10.0f;
 
   /* Hard Eraser brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Eraser Hard", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Eraser Hard", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 30.0f;
   brush->gpencil_settings->draw_strength = 1.0f;
@@ -627,7 +627,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->gpencil_tool = GPAINT_TOOL_ERASE;
 
   /* Point Eraser brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Eraser Point", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Eraser Point", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 30.0f;
   brush->gpencil_settings->flag |= GP_BRUSH_ENABLE_CURSOR;
@@ -637,7 +637,7 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->gpencil_tool = GPAINT_TOOL_ERASE;
 
   /* Stroke Eraser brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Eraser Stroke", OB_MODE_PAINT_GPENCIL);
+  brush = gpencil_brush_ensure(bmain, ts, "Eraser Stroke", OB_MODE_PAINT_GPENCIL, &new_brush);
 
   brush->size = 30.0f;
   brush->gpencil_settings->flag |= GP_BRUSH_ENABLE_CURSOR;
@@ -647,109 +647,90 @@ void BKE_brush_gpencil_presets(Main *bmain, ToolSettings *ts)
   brush->gpencil_tool = GPAINT_TOOL_ERASE;
 
   /* Tint brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Tint", OB_MODE_PAINT_GPENCIL);
-
-  brush->size = 25.0f;
-  brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-
-  brush->gpencil_settings->draw_strength = 0.8f;
-  brush->gpencil_settings->flag |= GP_BRUSH_USE_STENGTH_PRESSURE;
-  brush->rgb[0] = 0.757f;
-  brush->rgb[1] = 0.659f;
-  brush->rgb[2] = 0.824f;
-
-  zero_v3(brush->secondary_rgb);
-
+  brush = gpencil_brush_ensure(bmain, ts, "Tint", OB_MODE_PAINT_GPENCIL, &new_brush);
   brush->gpencil_settings->icon_id = GP_BRUSH_ICON_TINT;
   brush->gpencil_tool = GPAINT_TOOL_TINT;
 
-  /* Vertex Paint Brushes. */
-  /* Vertex Draw brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Vertex Draw", OB_MODE_VERTEX_GPENCIL);
-  deft_vertex = brush; /* save default brush. */
+  if (new_brush) {
+    brush->size = 25.0f;
+    brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
 
-  brush->size = 25.0f;
-  brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-
-  brush->gpencil_settings->draw_strength = 0.8f;
-  brush->gpencil_settings->flag |= GP_BRUSH_USE_STENGTH_PRESSURE;
-  brush->rgb[0] = 0.757f;
-  brush->rgb[1] = 0.659f;
-  brush->rgb[2] = 0.824f;
-
-  zero_v3(brush->secondary_rgb);
+    brush->gpencil_settings->draw_strength = 0.8f;
+    brush->gpencil_settings->flag |= GP_BRUSH_USE_STENGTH_PRESSURE;
+    brush->rgb[0] = 0.757f;
+    brush->rgb[1] = 0.659f;
+    brush->rgb[2] = 0.824f;
 
+    zero_v3(brush->secondary_rgb);
+  }
+  /* Vertex Paint Brushes. */
+  /* Vertex Draw brush. */
+  brush = gpencil_brush_ensure(bmain, ts, "Vertex Draw", OB_MODE_VERTEX_GPENCIL, &new_brush);
   brush->gpencil_settings->icon_id = GP_BRUSH_ICON_VERTEX_DRAW;
   brush->gpencil_vertex_tool = GPVERTEX_TOOL_DRAW;
+  deft_vertex = brush; /* save default brush. */
 
-  /* Vertex Blur brush. */
-  brush = gpencil_brush_ensure(bmain, ts, "Vertex Blur", OB_MODE_VERTEX_GPENCIL);
-
-  brush->size = 25.0f;
-  brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-
-  brush->gpencil_settings->draw_strength = 0.8f;
-  brush->gpencil_settings->flag |= GP_BRUSH_USE_STENGTH_PRESSURE;
-  brush->rgb[0] = 0.757f;
-  brush->rgb[1] = 0.659f;
-  brush->rgb[2] = 0.824f;
+  if (new_brush) {
+    brush->size = 25.0f;
+    brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
 
-  zero_v3(brush->secondary_rgb);
+    brush->gpencil_settings->draw_strength = 0.8f;
+    brush->gpencil_settings->flag |= GP_BRUSH_USE_STENGTH_PRESSURE;
+    brush->rgb[0] = 0.757f;
+    brush->rgb[1] = 0.659f;
+    brush->rgb[2] = 0.824f;
 
+    zero_v3(brush->secondary_rgb);
+  }
+  /* Vertex Blur brush. */
+  brush = gpencil_brush_ensure(bmain, ts, "Vertex Blur", OB_MODE_VERTEX_GPENCIL, &new_br

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list