[Bf-blender-cvs] [8c3077ff94e] blender2.8: Fix T56970 GP: Sculpt mode : Grap tool doesn't work

Antonioya noreply at git.blender.org
Sun Sep 30 13:54:32 CEST 2018


Commit: 8c3077ff94ecd25f55c46ac9dd792c27bda4e75b
Author: Antonioya
Date:   Sun Sep 30 13:54:23 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB8c3077ff94ecd25f55c46ac9dd792c27bda4e75b

Fix T56970 GP: Sculpt mode : Grap tool doesn't work

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

M	release/scripts/startup/bl_ui/properties_grease_pencil_common.py
M	source/blender/editors/gpencil/gpencil_brush.c

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

diff --git a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
index 188b0fbd65a..7f6a47221c3 100644
--- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
+++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
@@ -254,7 +254,9 @@ class GreasePencilStrokeSculptPanel:
 
         row = layout.row(align=True)
         row.prop(brush, "size", slider=True)
-        row.prop(brush, "use_pressure_radius", text="")
+        sub = row.row(align=True)
+        sub.enabled = tool not in {'GRAB', 'CLONE'}
+        sub.prop(brush, "use_pressure_radius", text="")
 
         row = layout.row(align=True)
         row.prop(brush, "strength", slider=True)
diff --git a/source/blender/editors/gpencil/gpencil_brush.c b/source/blender/editors/gpencil/gpencil_brush.c
index 216e65b9d9f..1e64a41e914 100644
--- a/source/blender/editors/gpencil/gpencil_brush.c
+++ b/source/blender/editors/gpencil/gpencil_brush.c
@@ -1229,6 +1229,13 @@ static bool gpsculpt_brush_init(bContext *C, wmOperator *op)
 	gso->gpd = ED_gpencil_data_get_active(C);
 	gso->cfra = INT_MAX; /* NOTE: So that first stroke will get handled in init_stroke() */
 
+	/* some brushes cannot use pressure for radius */
+	if ((gso->brush_type == GP_EDITBRUSH_TYPE_GRAB) ||
+		(gso->brush_type == GP_EDITBRUSH_TYPE_CLONE))
+	{
+		gso->brush->flag &= ~GP_EDITBRUSH_FLAG_PRESSURE_RADIUS;
+	}
+
 	gso->scene = scene;
 	gso->object = ob;
 	if (ob) {
@@ -1416,7 +1423,7 @@ static bool gpsculpt_brush_do_stroke(
 	GP_SpaceConversion *gsc = &gso->gsc;
 	rcti *rect = &gso->brush_rect;
 	GP_EditBrush_Data *brush = gso->brush;
-	const int radius = (brush->flag & GP_EDITBRUSH_FLAG_USE_PRESSURE) ? gso->brush->size * gso->pressure : gso->brush->size;
+	const int radius = (brush->flag & GP_EDITBRUSH_FLAG_PRESSURE_RADIUS) ? gso->brush->size * gso->pressure : gso->brush->size;
 
 	bGPDspoint *pt1, *pt2;
 	int pc1[2] = {0};
@@ -1709,7 +1716,7 @@ static void gpsculpt_brush_apply(bContext *C, wmOperator *op, PointerRNA *itempt
 {
 	tGP_BrushEditData *gso = op->customdata;
 	GP_EditBrush_Data *brush = gso->brush;
-	const int radius = 	(brush->flag & GP_EDITBRUSH_FLAG_USE_PRESSURE) ? gso->brush->size * gso->pressure : gso->brush->size;
+	const int radius = (brush->flag & GP_EDITBRUSH_FLAG_PRESSURE_RADIUS) ? gso->brush->size * gso->pressure : gso->brush->size;
 	float mousef[2];
 	int mouse[2];
 	bool changed = false;



More information about the Bf-blender-cvs mailing list