Initial Grease Pencil 3.0 stage #106848
|
@ -497,6 +497,8 @@ class GreasePencilMaterialsPanel:
|
|||
show_full_ui = (self.bl_space_type == 'PROPERTIES')
|
||||
|
||||
is_view3d = (self.bl_space_type == 'VIEW_3D')
|
||||
is_grease_pencil_version3 = context.preferences.experimental.use_grease_pencil_version3
|
||||
|
||||
tool_settings = context.scene.tool_settings
|
||||
gpencil_paint = tool_settings.gpencil_paint
|
||||
brush = gpencil_paint.brush if gpencil_paint else None
|
||||
|
@ -547,7 +549,7 @@ class GreasePencilMaterialsPanel:
|
|||
icon_link = 'MESH_DATA' if slot.link == 'DATA' else 'OBJECT_DATA'
|
||||
row.prop(slot, "link", icon=icon_link, icon_only=True)
|
||||
|
||||
if ob.data.use_stroke_edit_mode:
|
||||
if not is_grease_pencil_version3 and ob.data.use_stroke_edit_mode:
|
||||
row = layout.row(align=True)
|
||||
row.operator("gpencil.stroke_change_color", text="Assign")
|
||||
row.operator("gpencil.material_select", text="Select").deselect = False
|
||||
|
|
|
@ -1929,6 +1929,13 @@ class _defs_gpencil_paint:
|
|||
|
||||
@staticmethod
|
||||
def generate_from_brushes(context):
|
||||
if context and context.preferences.experimental.use_grease_pencil_version3:
|
||||
return tuple([ToolDef.from_dict(dict(
|
||||
idname="builtin_brush.draw",
|
||||
label="Draw",
|
||||
icon="brush.gpencil_draw.draw",
|
||||
data_block='DRAW',
|
||||
))])
|
||||
return generate_from_enum_ex(
|
||||
context,
|
||||
idname_prefix="builtin_brush.",
|
||||
|
@ -1941,15 +1948,6 @@ class _defs_gpencil_paint:
|
|||
),
|
||||
)
|
||||
|
||||
@ToolDef.from_fn
|
||||
def draw():
|
||||
return dict(
|
||||
idname="builtin_brush.draw",
|
||||
label="Draw",
|
||||
icon="brush.gpencil_draw.draw",
|
||||
data_block='DRAW',
|
||||
)
|
||||
|
||||
@ToolDef.from_fn
|
||||
def cutter():
|
||||
def draw_settings(_context, layout, tool):
|
||||
|
@ -3130,7 +3128,7 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
|
|||
'PAINT_GPENCIL': [
|
||||
_defs_view3d_generic.cursor,
|
||||
None,
|
||||
_defs_gpencil_paint.draw,
|
||||
_defs_gpencil_paint.generate_from_brushes,
|
||||
_defs_gpencil_paint.cutter,
|
||||
None,
|
||||
_defs_gpencil_paint.eyedropper,
|
||||
|
|
|
@ -1965,7 +1965,7 @@ class VIEW3D_MT_paint_gpencil(Menu):
|
|||
layout.operator("gpencil.vertex_color_brightness_contrast", text="Brightness/Contrast")
|
||||
|
||||
|
||||
class VIEW3D_MT_select_gpencil(Menu):
|
||||
class VIEW3D_MT_select_edit_gpencil(Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -5391,6 +5391,13 @@ class VIEW3D_MT_edit_gpencil_showhide(Menu):
|
|||
layout.operator("gpencil.hide", text="Hide Inactive Layers").unselected = True
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_greasepencil(Menu):
|
||||
bl_label = "Grease Pencil"
|
||||
|
||||
def draw(self, _context):
|
||||
pass
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_curves(Menu):
|
||||
bl_label = "Curves"
|
||||
|
||||
|
@ -8140,7 +8147,7 @@ classes = (
|
|||
VIEW3D_MT_edit_lattice_context_menu,
|
||||
VIEW3D_MT_select_edit_lattice,
|
||||
VIEW3D_MT_select_edit_armature,
|
||||
VIEW3D_MT_select_gpencil,
|
||||
VIEW3D_MT_select_edit_gpencil,
|
||||
VIEW3D_MT_select_paint_mask,
|
||||
VIEW3D_MT_select_paint_mask_vertex,
|
||||
VIEW3D_MT_edit_curves_select_more_less,
|
||||
|
@ -8244,6 +8251,7 @@ classes = (
|
|||
VIEW3D_MT_gpencil_simplify,
|
||||
VIEW3D_MT_gpencil_autoweights,
|
||||
VIEW3D_MT_gpencil_edit_context_menu,
|
||||
VIEW3D_MT_edit_greasepencil,
|
||||
VIEW3D_MT_edit_curve,
|
||||
VIEW3D_MT_edit_curve_ctrlpoints,
|
||||
VIEW3D_MT_edit_curve_segments,
|
||||
|
|
|
@ -1167,6 +1167,8 @@ enum eContextObjectMode CTX_data_mode_enum_ex(const Object *obedit,
|
|||
return CTX_MODE_EDIT_LATTICE;
|
||||
case OB_CURVES:
|
||||
return CTX_MODE_EDIT_CURVES;
|
||||
case OB_GREASE_PENCIL:
|
||||
return CTX_MODE_EDIT_GPENCIL;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -2001,6 +2001,10 @@ char *BKE_object_data_editmode_flush_ptr_get(struct ID *id)
|
|||
/* Curves have no edit mode data. */
|
||||
return nullptr;
|
||||
}
|
||||
case ID_GP: {
|
||||
/* Grease Pencil has no edit mode data. */
|
||||
return nullptr;
|
||||
}
|
||||
default:
|
||||
BLI_assert_unreachable();
|
||||
return nullptr;
|
||||
|
|
|
@ -143,7 +143,12 @@ static bool gpencil_stroke_paintmode_draw_poll(bContext *C)
|
|||
if (object == NULL || object->type != OB_GREASE_PENCIL) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
ToolSettings *ts = CTX_data_tool_settings(C);
|
||||
if (!ts || !ts->gp_paint) {
|
||||
return false;
|
||||
}
|
||||
const Brush *brush = BKE_paint_brush_for_read(&ts->gp_paint->paint);
|
||||
return WM_toolsystem_active_tool_is_brush(C) && brush->gpencil_tool == GPAINT_TOOL_DRAW;
|
||||
}
|
||||
return gpencil_stroke_paintmode_poll_with_tool(C, GPAINT_TOOL_DRAW);
|
||||
}
|
||||
|
|
|
@ -879,9 +879,9 @@ bool ED_object_editmode_enter_ex(Main *bmain, Scene *scene, Object *ob, int flag
|
|||
ok = true;
|
||||
WM_main_add_notifier(NC_SCENE | ND_MODE | NS_EDITMODE_CURVES, scene);
|
||||
}
|
||||
else if (ob->type == OB_CURVES) {
|
||||
else if (ob->type == OB_GREASE_PENCIL) {
|
||||
ok = true;
|
||||
/* TODO: Add NS_EDITMODE_GREASE_PENCIL for WM_main_add_notifier. */
|
||||
WM_main_add_notifier(NC_SCENE | ND_MODE | NS_EDITMODE_GREASE_PENCIL, scene);
|
||||
}
|
||||
|
||||
if (ok) {
|
||||
|
|
|
@ -513,6 +513,7 @@ typedef struct wmNotifier {
|
|||
#define NS_MODE_POSE (9 << 8)
|
||||
#define NS_MODE_PARTICLE (10 << 8)
|
||||
#define NS_EDITMODE_CURVES (11 << 8)
|
||||
#define NS_EDITMODE_GREASE_PENCIL (12 << 8)
|
||||
|
||||
/* subtype 3d view editing */
|
||||
#define NS_VIEW3D_GPU (16 << 8)
|
||||
|
|
Loading…
Reference in New Issue