[Bf-blender-cvs] [7ac0d86582d] greasepencil-object: GPencil: Fix several issues with Vertex Paint
Antonio Vazquez
noreply at git.blender.org
Tue Jan 7 16:45:14 CET 2020
Commit: 7ac0d86582d88502e185b6ea62a3d593d9d80bc7
Author: Antonio Vazquez
Date: Tue Jan 7 16:45:06 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rB7ac0d86582d88502e185b6ea62a3d593d9d80bc7
GPencil: Fix several issues with Vertex Paint
Using big brush radius gets weird values.
Add missing some UI options
===================================================================
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/editors/gpencil/gpencil_vertex_paint.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 0de37f6729f..8859ecc5027 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -740,7 +740,14 @@ class VIEW3D_HT_header(Header):
row.prop(tool_settings, "use_gpencil_select_mask_stroke", text="")
row.prop(tool_settings, "use_gpencil_select_mask_segment", text="")
- if gpd.use_stroke_edit_mode or gpd.is_stroke_sculpt_mode or gpd.is_stroke_weight_mode:
+ # Select mode for Vertex Paint
+ if gpd.is_stroke_vertex_mode:
+ row = layout.row(align=True)
+ row.prop(tool_settings, "use_gpencil_vertex_select_mask_point", text="")
+ row.prop(tool_settings, "use_gpencil_vertex_select_mask_stroke", text="")
+ row.prop(tool_settings, "use_gpencil_vertex_select_mask_segment", text="")
+
+ if gpd.use_stroke_edit_mode or gpd.is_stroke_sculpt_mode or gpd.is_stroke_weight_mode or gpd.is_stroke_vertex_mode:
row = layout.row(align=True)
row.prop(gpd, "use_multiedit", text="", icon='GP_MULTIFRAME_EDITING')
@@ -6468,12 +6475,16 @@ class VIEW3D_PT_overlay_gpencil_options(Panel):
sub.prop(overlay, "gpencil_paper_opacity", text="Fade Objects", slider=True)
sub.prop(overlay, "use_gpencil_fade_objects", text="", icon='OUTLINER_OB_GREASEPENCIL')
- if context.object.mode in {'EDIT_GPENCIL', 'SCULPT_GPENCIL', 'WEIGHT_GPENCIL'}:
+ if context.object.mode in {'EDIT_GPENCIL', 'SCULPT_GPENCIL', 'WEIGHT_GPENCIL', 'VERTEX_GPENCIL'}:
layout.prop(overlay, "use_gpencil_edit_lines", text="Edit Lines")
layout.prop(overlay, "use_gpencil_multiedit_line_only", text="Show Edit Lines only in multiframe")
+
+ if context.object.mode in {'EDIT_GPENCIL', 'SCULPT_GPENCIL', 'WEIGHT_GPENCIL', 'VERTEX_GPENCIL'}:
layout.prop(overlay, "vertex_opacity", text="Vertex Opacity", slider=True)
- layout.prop(overlay, "gpencil_vertex_paint_opacity", slider=True)
+ if context.object.mode in {'PAINT_GPENCIL', 'EDIT_GPENCIL', 'SCULPT_GPENCIL', 'VERTEX_GPENCIL'}:
+ layout.label(text="Vertex Paint")
+ layout.prop(overlay, "gpencil_vertex_paint_opacity", text="Opacity", slider=True)
class VIEW3D_PT_quad_view(Panel):
@@ -6792,11 +6803,23 @@ class VIEW3D_PT_gpencil_draw_context_menu(Panel):
bl_label = "Draw Context Menu"
def draw(self, context):
- brush = context.tool_settings.gpencil_paint.brush
+ ts = context.tool_settings
+ settings = ts.gpencil_paint
+ brush = settings.brush
gp_settings = brush.gpencil_settings
layout = self.layout
+ if brush.gpencil_tool not in {'ERASE', 'CUTTER', 'EYEDROPPER'} and settings.use_vertex_color:
+ split = layout.split(factor=0.1)
+ split.prop(brush, "color", text="")
+ split.template_color_picker(brush, "color", value_slider=True)
+
+ col = layout.column()
+ col.separator()
+ col.prop_menu_enum(gp_settings, "vertex_mode", text="Mode")
+ col.separator()
+
if brush.gpencil_tool not in {'FILL', 'CUTTER'}:
layout.prop(brush, "size", slider=True)
if brush.gpencil_tool not in {'ERASE', 'FILL', 'CUTTER'}:
diff --git a/source/blender/editors/gpencil/gpencil_vertex_paint.c b/source/blender/editors/gpencil/gpencil_vertex_paint.c
index 9c9e2231865..028412799fb 100644
--- a/source/blender/editors/gpencil/gpencil_vertex_paint.c
+++ b/source/blender/editors/gpencil/gpencil_vertex_paint.c
@@ -429,6 +429,9 @@ static bool brush_tint_apply(tGP_BrushVertexpaintData *gso,
100.0f;
float inf_fill = (gso->pressure * brush->gpencil_settings->draw_strength) / 1000.0f;
+ CLAMP(inf, 0.0f, 1.0f);
+ CLAMP(inf_fill, 0.0f, 1.0f);
+
bGPDspoint *pt = &gps->points[pt_index];
float alpha = pt->mix_color[3];
More information about the Bf-blender-cvs
mailing list