[Bf-blender-cvs] [52c9b6cdad7] greasepencil-object: GPencil: Basic Vertex Color mode working

Antonio Vazquez noreply at git.blender.org
Thu Nov 7 18:07:35 CET 2019


Commit: 52c9b6cdad71170e6a78b49f0eaa30d6acdee051
Author: Antonio Vazquez
Date:   Thu Nov 7 17:29:34 2019 +0100
Branches: greasepencil-object
https://developer.blender.org/rB52c9b6cdad71170e6a78b49f0eaa30d6acdee051

GPencil: Basic Vertex Color mode working

Still pending panels and tools

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

M	release/scripts/startup/bl_ui/properties_grease_pencil_common.py
M	release/scripts/startup/bl_ui/properties_paint_common.py
M	release/scripts/startup/bl_ui/space_view3d.py
M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	source/blender/blenkernel/BKE_context.h
M	source/blender/blenkernel/intern/context.c
M	source/blender/editors/gpencil/gpencil_tint.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 fe3ea429665..33b84f0f791 100644
--- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
+++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
@@ -924,20 +924,22 @@ class GreasePencilVertexcolorPanel:
         layout.use_property_decorate = False
 
         ts = context.scene.tool_settings
-        gpencil_paint = ts.gpencil_paint
+        is_vertex = context.mode == 'VERTEX_GPENCIL'
+        gpencil_paint = ts.gpencil_vertex_paint if is_vertex else ts.gpencil_paint
         brush = gpencil_paint.brush
         gp_settings = brush.gpencil_settings
+        tool = brush.gpencil_vertex_tool if is_vertex else brush.gpencil_tool
 
         ob = context.object
 
         if ob:
-            if brush.gpencil_tool == 'DRAW':
+            if tool == 'DRAW' and is_vertex is False:
                 row = layout.row(align=True)
                 row.prop(gpencil_paint, "use_vertex_mode", text="Mode")
                 row = layout.row(align=True)
                 row.prop(gp_settings, "vertex_color_factor", slider=True, text="Mix Factor")
 
-            if brush.gpencil_tool == 'TINT':
+            if tool == 'TINT' or is_vertex is True:
                 row = layout.row(align=True)
                 row.prop(gpencil_paint, "use_vertex_mode", text="Mode")
 
diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py b/release/scripts/startup/bl_ui/properties_paint_common.py
index 98e812cf02d..71b84945c8b 100644
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@ -497,6 +497,19 @@ def brush_basic_gpencil_weight_settings(layout, _context, brush, *, compact=Fals
     layout.prop(brush, "weight", slider=True)
 
 
+def brush_basic_gpencil_vertex_settings(layout, _context, brush, tool, *, compact=True, is_toolbar=False):
+    gp_settings = brush.gpencil_settings
+
+    # Brush details
+    if brush.gpencil_vertex_tool == 'DRAW':
+        row = layout.row(align=True)
+        row.prop(brush, "size", text="Radius")
+        row.prop(gp_settings, "use_pressure", text="", icon='STYLUS_PRESSURE')
+        row = layout.row(align=True)
+        row.prop(gp_settings, "pen_strength", slider=True)
+        row.prop(gp_settings, "use_strength_pressure", text="", icon='STYLUS_PRESSURE')
+
+
 classes = (
     VIEW3D_MT_tools_projectpaint_clone,
 )
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index b207f18a4e2..929620c6122 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -434,16 +434,16 @@ class _draw_tool_settings_context_mode:
 
         row.separator(factor=0.4)
         row.prop(brush, "color", text="")
-        # row.popover(
-        #     panel="TOPBAR_PT_gpencil_vertexcolor",
-        #     text="Vertex Color",
-        # )
+        row.popover(
+            panel="TOPBAR_PT_gpencil_vertexcolor",
+            text="Vertex Color",
+        )
 
         from bl_ui.properties_paint_common import (
-            brush_basic_gpencil_paint_settings,
+            brush_basic_gpencil_vertex_settings,
         )
 
-        brush_basic_gpencil_paint_settings(layout, context, brush, tool, compact=True, is_toolbar=True)
+        brush_basic_gpencil_vertex_settings(layout, context, brush, tool, compact=True, is_toolbar=True)
 
     @staticmethod
     def PARTICLE(context, layout, tool):
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 9ab473e3e4d..e9c22968f9f 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -2229,10 +2229,8 @@ class VIEW3D_PT_tools_grease_pencil_brushcurves_jitter(View3DPanel, Panel):
         layout.template_curve_mapping(gp_settings, "curve_jitter", brush=True,
                                       use_negative_slope=True)
 
-# Grease Pecil Vertex Paint tools
-# Grease Pencil drawing brushes
-
 
+# Grease Pecil Vertex Paint tools
 class VIEW3D_PT_tools_grease_pencil_vertex_brush(View3DPanel, Panel):
     bl_context = ".greasepencil_vertex"
     bl_label = "Brush"
@@ -2256,14 +2254,28 @@ class VIEW3D_PT_tools_grease_pencil_vertex_brush(View3DPanel, Panel):
         layout.use_property_decorate = False
 
         tool_settings = context.scene.tool_settings
-        gpencil_paint = tool_settings.gpencil_vertex_paint
+        gpencil_vertex_paint = tool_settings.gpencil_vertex_paint
 
         row = layout.row()
         col = row.column()
-        col.template_ID_preview(gpencil_paint, "brush", new="brush.add", rows=3, cols=8)
+        col.template_ID_preview(gpencil_vertex_paint, "brush", new="brush.add", rows=3, cols=8)
 
         col = row.column()
-        brush = gpencil_paint.brush
+        brush = gpencil_vertex_paint.brush
+
+        # sub = col.column(align=True)
+        # sub.operator("gpencil.brush_presets_create", icon='PRESET_NEW', text="")
+
+        if brush is not None:
+            gp_settings = brush.gpencil_settings
+
+            # if brush.gpencil_tool in {'DRAW', 'BLUR'}:
+            if not self.is_popover:
+                from bl_ui.properties_paint_common import (
+                    brush_basic_gpencil_paint_settings,
+                )
+                tool = context.workspace.tools.from_space_view3d_mode(context.mode, create=False)
+                brush_basic_gpencil_paint_settings(layout, context, brush, tool, compact=True, is_toolbar=False)
 
 
 # Grease Pencil stroke editing tools
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index a15a9e9c8a5..378294516f2 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -117,7 +117,7 @@ typedef enum eContextObjectMode {
   CTX_MODE_WEIGHT_GPENCIL,
   CTX_MODE_VERTEX_GPENCIL,
 } eContextObjectMode;
-#define CTX_MODE_NUM (CTX_MODE_WEIGHT_GPENCIL + 1)
+#define CTX_MODE_NUM (CTX_MODE_VERTEX_GPENCIL + 1)
 
 /* Context */
 
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 2641d20c91e..d711c6e5f4c 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -1131,25 +1131,11 @@ enum eContextObjectMode CTX_data_mode_enum(const bContext *C)
 /* would prefer if we can use the enum version below over this one - Campbell */
 /* must be aligned with above enum  */
 static const char *data_mode_strings[] = {
-    "mesh_edit",
-    "curve_edit",
-    "surface_edit",
-    "text_edit",
-    "armature_edit",
-    "mball_edit",
-    "lattice_edit",
-    "posemode",
-    "sculpt_mode",
-    "weightpaint",
-    "vertexpaint",
-    "imagepaint",
-    "particlemode",
-    "objectmode",
-    "greasepencil_paint",
-    "greasepencil_edit",
-    "greasepencil_sculpt",
-    "greasepencil_weight",
-    NULL,
+    "mesh_edit",           "curve_edit",          "surface_edit",        "text_edit",
+    "armature_edit",       "mball_edit",          "lattice_edit",        "posemode",
+    "sculpt_mode",         "weightpaint",         "vertexpaint",         "imagepaint",
+    "particlemode",        "objectmode",          "greasepencil_paint",  "greasepencil_edit",
+    "greasepencil_sculpt", "greasepencil_weight", "greasepencil_vertex", NULL,
 };
 BLI_STATIC_ASSERT(ARRAY_SIZE(data_mode_strings) == CTX_MODE_NUM + 1,
                   "Must have a string for each context mode")
diff --git a/source/blender/editors/gpencil/gpencil_tint.c b/source/blender/editors/gpencil/gpencil_tint.c
index 9a1b1b2dec0..ee05d7f0b8e 100644
--- a/source/blender/editors/gpencil/gpencil_tint.c
+++ b/source/blender/editors/gpencil/gpencil_tint.c
@@ -567,7 +567,8 @@ static bool gptint_brush_do_frame(bContext *C,
 {
   bool changed = false;
   Object *ob = CTX_data_active_object(C);
-
+  char tool = ob->mode == OB_MODE_VERTEX_GPENCIL ? gso->brush->gpencil_vertex_tool :
+                                                   gso->brush->gpencil_tool;
   for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) {
     /* skip strokes that are invalid for current view */
     if (ED_gpencil_stroke_can_use(C, gps) == false) {
@@ -578,8 +579,9 @@ static bool gptint_brush_do_frame(bContext *C,
       continue;
     }
 
-    switch (gso->brush->gpencil_tool) {
-      case GPAINT_TOOL_TINT: {
+    switch (tool) {
+      case GPAINT_TOOL_TINT:
+      case GPVERTEX_TOOL_DRAW: {
         changed |= gptint_brush_do_stroke(gso, gps, diff_mat, brush_tint_apply);
         break;
       }



More information about the Bf-blender-cvs mailing list