[Bf-blender-cvs] [7a0ee16f251] greasepencil-object: Change Eraser brush to use brush radius not global value

Antonio Vazquez noreply at git.blender.org
Fri Mar 2 20:16:06 CET 2018


Commit: 7a0ee16f25196e446b5960b3b61df9f68dfa3fc6
Author: Antonio Vazquez
Date:   Fri Mar 2 20:15:51 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB7a0ee16f25196e446b5960b3b61df9f68dfa3fc6

Change Eraser brush to use brush radius not global value

The old configuration uses a global user prefs value, but now must be the brush size.

Still need to fix the problem when resize size of the brush.

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

M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	source/blender/blenkernel/intern/gpencil.c
M	source/blender/editors/gpencil/gpencil_paint.c
M	source/blender/editors/gpencil/gpencil_utils.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 840f82ad3be..775d2a7ccb1 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -2123,7 +2123,8 @@ class VIEW3D_PT_tools_grease_pencil_brush(Panel):
 
             if brush.type == 'ERASE':
                 col = layout.column(align=True)
-                col.prop(context.user_preferences.edit, "grease_pencil_eraser_radius", text="Radius")
+                col.prop(brush, "line_width", text="Radius")
+                # col.prop(context.user_preferences.edit, "grease_pencil_eraser_radius", text="Radius")
                 # TODO: Hard/Soft mode, sensitivity factors, etc.
 
             if brush.type != 'ERASE':
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index b0f546debff..754f9d559bf 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -780,25 +780,11 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
 
 	/* Eraser brush */
 	brush = BKE_gpencil_brush_addnew(ts, "Erase", false);
-	brush->thickness = 1.0f;
+	brush->thickness = 30.0f;
 	brush->flag |= GP_BRUSH_ENABLE_CURSOR;
-	brush->draw_sensitivity = 1.0f;
-	brush->fill_leak = 3;
-	brush->fill_threshold = 0.1f;
-	brush->fill_simplylvl = 1;
 	brush->icon = GPBRUSH_ERASE;
 	brush->type = GP_BRUSH_TYPE_ERASE;
 
-	brush->draw_smoothfac = 0.5f;
-	brush->draw_smoothlvl = 1;
-	brush->thick_smoothfac = 1.0f;
-	brush->thick_smoothlvl = 3;
-	brush->sublevel = 1;
-
-	brush->lazy_radius = LAZY_RADIUS;
-	brush->lazy_factor = LAZY_FACTOR;
-
-	brush->draw_strength = 1.0f;
 	copy_v3_v3(brush->curcolor, curcolor);
 }
 
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 87c07e77adc..3ae1c7bdf94 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -1420,6 +1420,8 @@ static void gp_init_drawing_brush(ToolSettings *ts, tGPsdata *p)
 
 	/* asign to temp tGPsdata */
 	p->brush = brush;
+	/* use radius as eraser */
+	p->radius = (short)brush->thickness;
 }
 
 
@@ -1695,11 +1697,13 @@ static tGPsdata *gp_session_initpaint(bContext *C, wmOperator *op)
 	
 	gp_session_initdata(C, op, p);
 	
+#if 0
 	/* radius for eraser circle is defined in userprefs now */
 	/* NOTE: we do this here, so that if we exit immediately,
 	 *       erase size won't get lost
 	 */
 	p->radius = U.gp_eraser;
+#endif
 
 	/* return context data for running paint operator */
 	return p;
diff --git a/source/blender/editors/gpencil/gpencil_utils.c b/source/blender/editors/gpencil/gpencil_utils.c
index e400f229779..06002615564 100644
--- a/source/blender/editors/gpencil/gpencil_utils.c
+++ b/source/blender/editors/gpencil/gpencil_utils.c
@@ -1290,10 +1290,9 @@ static bool gp_check_cursor_region(bContext *C, int mval[2])
 }
 
 /* draw eraser cursor */
-static void gp_brush_draw_eraser(bContext *C, int x, int y)
+static void gp_brush_draw_eraser(bContext *C, bGPDbrush *brush, int x, int y)
 {
-	/* TODO: Change to brush thickness, no global value */
-	short radius = U.gp_eraser;
+	short radius = (short)brush->thickness;
 
 	Gwn_VertFormat *format = immVertexFormat();
 	const uint shdr_pos = GWN_vertformat_attr_add(format, "pos", GWN_COMP_F32, 2, GWN_FETCH_FLOAT);
@@ -1389,7 +1388,7 @@ static void gp_brush_drawcursor(bContext *C, int x, int y, void *customdata)
 
 			/* eraser has special shape and use a different shader program */
 			if (paintbrush->type == GP_BRUSH_TYPE_ERASE) {
-				gp_brush_draw_eraser(C, x, y);
+				gp_brush_draw_eraser(C, paintbrush, x, y);
 				return;
 			}



More information about the Bf-blender-cvs mailing list