[Bf-blender-cvs] [c6ef2f587e8] greasepencil-object: Replace brush type by enum
Antonio Vazquez
noreply at git.blender.org
Wed Feb 28 18:06:18 CET 2018
Commit: c6ef2f587e8af59980f0680ff911d8b704fff7e0
Author: Antonio Vazquez
Date: Wed Feb 28 17:21:43 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rBc6ef2f587e8af59980f0680ff911d8b704fff7e0
Replace brush type by enum
This is the first step to add eraser brush
===================================================================
M release/scripts/startup/bl_ui/space_view3d_toolbar.py
M source/blender/blenkernel/intern/gpencil.c
M source/blender/blenloader/intern/versioning_280.c
M source/blender/editors/gpencil/gpencil_ops.c
M source/blender/editors/gpencil/gpencil_utils.c
M source/blender/makesdna/DNA_gpencil_types.h
M source/blender/makesrna/intern/rna_scene.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index b6cffc90914..92eb3dab30b 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -2091,8 +2091,9 @@ class VIEW3D_PT_tools_grease_pencil_brush(Panel):
layout.prop(brush, "name", text="")
# layout.separator()
- layout.prop(brush, "fill_only", text="Fill Brush")
- if not brush.fill_only:
+ layout.prop(brush, "type", expand=True)
+
+ if brush.type == 'DRAW':
row = layout.row(align=True)
row.prop(brush, "use_random_pressure", text="", icon='RNDCURVE')
row.prop(brush, "line_width", text="Radius")
@@ -2101,7 +2102,8 @@ class VIEW3D_PT_tools_grease_pencil_brush(Panel):
row.prop(brush, "use_random_strength", text="", icon='RNDCURVE')
row.prop(brush, "strength", slider=True)
row.prop(brush, "use_strength_pressure", text="", icon='STYLUS_PRESSURE')
- else:
+
+ if brush.type == 'FILL':
col = layout.column(align=True)
col.prop(brush, "fill_leak", text="Leak Size")
col.prop(brush, "line_width", text="Thickness")
@@ -2172,7 +2174,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_option(Panel):
row.prop(brush, "angle", slider=True)
row.prop(brush, "angle_factor", text="Factor", slider=True)
- if brush.fill_only is False:
+ if brush.type == 'DRAW':
row.separator()
col = layout.column(align=True)
col.prop(brush, "use_stabilizer", text="Stabilizer")
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index dfaff1d3b1c..8b09c6a0a5d 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -590,6 +590,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
brush->icon = GPBRUSH_PENCIL;
+ brush->type = GP_BRUSH_TYPE_DRAW;
brush->lazy_radius = LAZY_RADIUS;
brush->lazy_factor = LAZY_FACTOR;
@@ -620,6 +621,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
brush->icon = GPBRUSH_PEN;
+ brush->type = GP_BRUSH_TYPE_DRAW;
brush->lazy_radius = LAZY_RADIUS;
brush->lazy_factor = LAZY_FACTOR;
@@ -648,6 +650,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
brush->icon = GPBRUSH_INK;
+ brush->type = GP_BRUSH_TYPE_DRAW;
brush->lazy_radius = LAZY_RADIUS;
brush->lazy_factor = LAZY_FACTOR;
@@ -682,6 +685,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
brush->icon = GPBRUSH_INKNOISE;
+ brush->type = GP_BRUSH_TYPE_DRAW;
brush->lazy_radius = LAZY_RADIUS;
brush->lazy_factor = LAZY_FACTOR;
@@ -717,6 +721,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0;
copy_v3_v3(brush->curcolor, curcolor);
brush->icon = GPBRUSH_BLOCK;
+ brush->type = GP_BRUSH_TYPE_DRAW;
brush->lazy_radius = LAZY_RADIUS;
brush->lazy_factor = LAZY_FACTOR;
@@ -745,6 +750,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
brush->icon = GPBRUSH_MARKER;
+ brush->type = GP_BRUSH_TYPE_DRAW;
brush->lazy_radius = LAZY_RADIUS;
brush->lazy_factor = LAZY_FACTOR;
@@ -752,12 +758,13 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
/* Fill brush */
brush = BKE_gpencil_brush_addnew(ts, "Fill", false);
brush->thickness = 1.0f;
- brush->flag |= (GP_BRUSH_FILL_ONLY | GP_BRUSH_ENABLE_CURSOR);
+ 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_FILL;
+ brush->type = GP_BRUSH_TYPE_FILL;
brush->draw_smoothfac = 0.5f;
brush->draw_smoothlvl = 1;
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 41b63a20f4f..037d86556aa 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -1148,7 +1148,24 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
}
}
+ /* Hero open movie special code. This could removed later */
{
+ /* set brush modes */
+ for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
+ /* drawing brushes */
+ ToolSettings *ts = scene->toolsettings;
+ for (bGPDbrush *brush = ts->gp_brushes.first; brush; brush = brush->next) {
+ if (brush->flag & GP_BRUSH_FILL_ONLY) {
+ brush->type = GP_BRUSH_TYPE_FILL;
+ brush->flag &= ~GP_BRUSH_FILL_ONLY;
+ }
+ else {
+ brush->type = GP_BRUSH_TYPE_DRAW;
+ }
+ }
+ }
+
+
/* rescale old grease pencil pixel factor (needed for Hero open movie files) */
for (bGPdata *gpd = main->gpencil.first; gpd; gpd = gpd->id.next) {
/* old data was always bigger than 30 */
diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c
index 07a6770408f..b281d9bc20a 100644
--- a/source/blender/editors/gpencil/gpencil_ops.c
+++ b/source/blender/editors/gpencil/gpencil_ops.c
@@ -119,7 +119,7 @@ static int gp_stroke_paintmode_draw_poll(bContext *C)
bGPdata *gpd = CTX_data_gpencil_data(C);
ToolSettings *ts = CTX_data_tool_settings(C);
bGPDbrush *brush = BKE_gpencil_brush_getactive(ts);
- return (gpd && (gpd->flag & GP_DATA_STROKE_PAINTMODE) && (brush) && ((brush->flag & GP_BRUSH_FILL_ONLY) == 0));
+ return (gpd && (gpd->flag & GP_DATA_STROKE_PAINTMODE) && (brush) && (brush->type == GP_BRUSH_TYPE_DRAW));
}
/* Poll callback for stroke painting (fill) */
@@ -129,7 +129,7 @@ static int gp_stroke_paintmode_fill_poll(bContext *C)
bGPdata *gpd = CTX_data_gpencil_data(C);
ToolSettings *ts = CTX_data_tool_settings(C);
bGPDbrush *brush = BKE_gpencil_brush_getactive(ts);
- return (gpd && (gpd->flag & GP_DATA_STROKE_PAINTMODE) && (brush) && (brush->flag & GP_BRUSH_FILL_ONLY));
+ return (gpd && (gpd->flag & GP_DATA_STROKE_PAINTMODE) && (brush) && (brush->type == GP_BRUSH_TYPE_FILL));
}
/* Poll callback for stroke sculpting mode */
diff --git a/source/blender/editors/gpencil/gpencil_utils.c b/source/blender/editors/gpencil/gpencil_utils.c
index c482dcc2d95..05812f1f311 100644
--- a/source/blender/editors/gpencil/gpencil_utils.c
+++ b/source/blender/editors/gpencil/gpencil_utils.c
@@ -1353,7 +1353,7 @@ static void gp_brush_drawcursor(bContext *C, int x, int y, void *customdata)
if ((palcolor) && (GPENCIL_PAINT_MODE(gpd)) &&
((paintbrush->flag & GP_BRUSH_STABILIZE_MOUSE) == 0) &&
((paintbrush->flag & GP_BRUSH_STABILIZE_MOUSE_TEMP) == 0) &&
- ((paintbrush->flag & GP_BRUSH_FILL_ONLY) == 0))
+ (paintbrush->type == GP_BRUSH_TYPE_DRAW))
{
radius = 2.0f;
copy_v3_v3(color, palcolor->rgb);
@@ -1395,7 +1395,7 @@ static void gp_brush_drawcursor(bContext *C, int x, int y, void *customdata)
if ((palcolor) && (GPENCIL_PAINT_MODE(gpd)) &&
((paintbrush->flag & GP_BRUSH_STABILIZE_MOUSE) == 0) &&
((paintbrush->flag & GP_BRUSH_STABILIZE_MOUSE_TEMP) == 0) &&
- ((paintbrush->flag & GP_BRUSH_FILL_ONLY) == 0))
+ (paintbrush->type == GP_BRUSH_TYPE_DRAW))
{
imm_draw_circle_fill_2d(pos, x, y, radius, 40);
}
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index a6ddab79749..e73198ee4f2 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -139,7 +139,7 @@ typedef struct bGPDbrush {
float uv_random; /* random factor for UV rotation */
int input_samples; /* maximum distance before generate new point for very fast mouse movements */
- char pad[4];
+ int type; /* type of brush (draw, fill, erase, etc..) */
} bGPDbrush;
/* bGPDbrush->flag */
@@ -159,7 +159,7 @@ typedef enum eGPDbrush_Flag {
/* enable screen cursor */
GP_BRUSH_ENABLE_CURSOR = (1 << 6),
/* brush is only for filling */
- GP_BRUSH_FILL_ONLY = (1 << 7),
+ GP_BRUSH_FILL_ONLY = (1 << 7), /* Deprecated */
/* fill hide transparent */
GP_BRUSH_FILL_HIDE = (1 << 8),
/* show fill help lines */
@@ -539,6 +539,13 @@ typedef enum eGP_FillDrawModes {
GP_FILL_DMODE_CONTROL = 2,
} eGP_FillDrawModes;
+/* bGPDbrush->brush type */
+typedef enum eGP_BrushType {
+ GP_BRUSH_TYPE_DRAW = 0,
+ GP_BRUSH_TYPE_FILL = 1,
+ GP_BRUSH_TYPE_ERASE = 2,
+} eGP_BrushType;
+
/* xray modes (Depth Ordering) */
typedef enum eGP_DepthOrdering {
GP_XRAY_FRONT = 0,
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index cc5ad69ce03..19576eafa8b 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -446,10 +446,16 @@ EnumPropertyItem rna_enum_gpencil_drawing_brushes_items[] = {
};
static EnumPropertyItem rna_enum_gpencil_fill_draw_modes_items[] = {
-{ GP_FILL_DMODE_STROKE, "STROKE", 0, "Strokes", "Use visible strokes as fill boundary limits" },
-{ GP_FILL_DMODE_CONTROL, "CONTROL", 0, "Control", "Use internal control lines as fill boundary limits" },
-{ GP_FILL_DMODE_BOTH, "BOTH", 0, "Both", "Use visible strokes and control lines as fill boundary limits" },
-{ 0, NULL, 0, NULL, NULL }
+ { GP_FILL_DMODE_STROKE, "STROKE", 0, "Strokes", "Use visible strokes as fill boundary limits" },
+ { GP_FILL_DMODE_CONTROL, "CONTROL", 0, "Control", "Use internal control lines as fill boundary limits" },
+ { GP_FILL_DMODE_BOTH, "BOTH", 0, "Both", "Use visible strokes and control lines as fill boundary limits" },
+ { 0, NULL, 0, NULL, NULL }
+};
+static EnumPropertyItem rna_enum_gpencil_brush_types_items[] = {
+ { GP_BRUSH_TYPE_DRAW, "DRAW", 0, "Draw", "The brush is of type used f
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list