UI: Asset Shelf (Experimental Feature) #104831
|
@ -6148,14 +6148,17 @@ class VIEW3D_PT_shading_lighting(Panel):
|
|||
split = layout.split(factor=0.9)
|
||||
col = split.column()
|
||||
|
||||
engine = context.scene.render.engine
|
||||
row = col.row()
|
||||
row.prop(shading, "use_studiolight_view_rotation", text="", icon='WORLD', toggle=True)
|
||||
row = row.row()
|
||||
if engine != 'BLENDER_EEVEE_NEXT':
|
||||
row.prop(shading, "use_studiolight_view_rotation", text="", icon='WORLD', toggle=True)
|
||||
row = row.row()
|
||||
row.prop(shading, "studiolight_rotate_z", text="Rotation")
|
||||
|
||||
col.prop(shading, "studiolight_intensity")
|
||||
col.prop(shading, "studiolight_background_alpha")
|
||||
col.prop(shading, "studiolight_background_blur")
|
||||
if engine != 'BLENDER_EEVEE_NEXT':
|
||||
col.prop(shading, "studiolight_background_blur")
|
||||
col = split.column() # to align properly with above
|
||||
|
||||
elif shading.type == 'RENDERED':
|
||||
|
@ -6179,7 +6182,9 @@ class VIEW3D_PT_shading_lighting(Panel):
|
|||
col.prop(shading, "studiolight_rotate_z", text="Rotation")
|
||||
col.prop(shading, "studiolight_intensity")
|
||||
col.prop(shading, "studiolight_background_alpha")
|
||||
col.prop(shading, "studiolight_background_blur")
|
||||
engine = context.scene.render.engine
|
||||
if engine != 'BLENDER_EEVEE_NEXT':
|
||||
col.prop(shading, "studiolight_background_blur")
|
||||
col = split.column() # to align properly with above
|
||||
|
||||
|
||||
|
|
|
@ -127,11 +127,11 @@ typedef enum eContextObjectMode {
|
|||
CTX_MODE_PAINT_TEXTURE,
|
||||
CTX_MODE_PARTICLE,
|
||||
CTX_MODE_OBJECT,
|
||||
CTX_MODE_PAINT_GPENCIL,
|
||||
CTX_MODE_PAINT_GPENCIL_LEGACY,
|
||||
CTX_MODE_EDIT_GPENCIL_LEGACY,
|
||||
CTX_MODE_SCULPT_GPENCIL,
|
||||
CTX_MODE_WEIGHT_GPENCIL,
|
||||
CTX_MODE_VERTEX_GPENCIL,
|
||||
CTX_MODE_SCULPT_GPENCIL_LEGACY,
|
||||
CTX_MODE_WEIGHT_GPENCIL_LEGACY,
|
||||
CTX_MODE_VERTEX_GPENCIL_LEGACY,
|
||||
CTX_MODE_SCULPT_CURVES,
|
||||
} eContextObjectMode;
|
||||
#define CTX_MODE_NUM (CTX_MODE_SCULPT_CURVES + 1)
|
||||
|
|
|
@ -579,19 +579,19 @@ Brush *BKE_brush_add_gpencil(Main *bmain, ToolSettings *ts, const char *name, eO
|
|||
Paint *paint = nullptr;
|
||||
Brush *brush;
|
||||
switch (mode) {
|
||||
case OB_MODE_PAINT_GPENCIL: {
|
||||
case OB_MODE_PAINT_GPENCIL_LEGACY: {
|
||||
paint = &ts->gp_paint->paint;
|
||||
break;
|
||||
}
|
||||
case OB_MODE_SCULPT_GPENCIL: {
|
||||
case OB_MODE_SCULPT_GPENCIL_LEGACY: {
|
||||
paint = &ts->gp_sculptpaint->paint;
|
||||
break;
|
||||
}
|
||||
case OB_MODE_WEIGHT_GPENCIL: {
|
||||
case OB_MODE_WEIGHT_GPENCIL_LEGACY: {
|
||||
paint = &ts->gp_weightpaint->paint;
|
||||
break;
|
||||
}
|
||||
case OB_MODE_VERTEX_GPENCIL: {
|
||||
case OB_MODE_VERTEX_GPENCIL_LEGACY: {
|
||||
paint = &ts->gp_vertexpaint->paint;
|
||||
break;
|
||||
}
|
||||
|
@ -1398,86 +1398,86 @@ void BKE_brush_gpencil_paint_presets(Main *bmain, ToolSettings *ts, const bool r
|
|||
Brush *brush_prev = paint->brush;
|
||||
Brush *brush, *deft_draw;
|
||||
/* Airbrush brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Airbrush", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Airbrush", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_AIRBRUSH);
|
||||
}
|
||||
|
||||
/* Ink Pen brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Ink Pen", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Ink Pen", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_INK_PEN);
|
||||
}
|
||||
|
||||
/* Ink Pen Rough brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Ink Pen Rough", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Ink Pen Rough", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_INK_PEN_ROUGH);
|
||||
}
|
||||
|
||||
/* Marker Bold brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Marker Bold", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Marker Bold", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_MARKER_BOLD);
|
||||
}
|
||||
|
||||
/* Marker Chisel brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Marker Chisel", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Marker Chisel", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_MARKER_CHISEL);
|
||||
}
|
||||
|
||||
/* Pen brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Pen", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Pen", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_PEN);
|
||||
}
|
||||
|
||||
/* Pencil Soft brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Pencil Soft", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Pencil Soft", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_PENCIL_SOFT);
|
||||
}
|
||||
|
||||
/* Pencil brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Pencil", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Pencil", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_PENCIL);
|
||||
}
|
||||
deft_draw = brush; /* save default brush. */
|
||||
|
||||
/* Fill brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Fill Area", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Fill Area", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_FILL_AREA);
|
||||
}
|
||||
|
||||
/* Soft Eraser brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Eraser Soft", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Eraser Soft", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_ERASER_SOFT);
|
||||
}
|
||||
|
||||
/* Hard Eraser brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Eraser Hard", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Eraser Hard", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_ERASER_HARD);
|
||||
}
|
||||
|
||||
/* Point Eraser brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Eraser Point", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Eraser Point", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_ERASER_POINT);
|
||||
}
|
||||
|
||||
/* Stroke Eraser brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Eraser Stroke", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Eraser Stroke", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_ERASER_STROKE);
|
||||
}
|
||||
|
||||
/* Tint brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Tint", OB_MODE_PAINT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Tint", OB_MODE_PAINT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_TINT);
|
||||
}
|
||||
|
@ -1499,29 +1499,29 @@ void BKE_brush_gpencil_vertex_presets(Main *bmain, ToolSettings *ts, const bool
|
|||
Brush *brush_prev = vertexpaint->brush;
|
||||
Brush *brush, *deft_vertex;
|
||||
/* Vertex Draw brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Draw", OB_MODE_VERTEX_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Draw", OB_MODE_VERTEX_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_VERTEX_DRAW);
|
||||
}
|
||||
deft_vertex = brush; /* save default brush. */
|
||||
|
||||
/* Vertex Blur brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Blur", OB_MODE_VERTEX_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Blur", OB_MODE_VERTEX_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_VERTEX_BLUR);
|
||||
}
|
||||
/* Vertex Average brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Average", OB_MODE_VERTEX_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Average", OB_MODE_VERTEX_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_VERTEX_AVERAGE);
|
||||
}
|
||||
/* Vertex Smear brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Smear", OB_MODE_VERTEX_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Smear", OB_MODE_VERTEX_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_VERTEX_SMEAR);
|
||||
}
|
||||
/* Vertex Replace brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Replace", OB_MODE_VERTEX_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Vertex Replace", OB_MODE_VERTEX_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_VERTEX_REPLACE);
|
||||
}
|
||||
|
@ -1546,56 +1546,59 @@ void BKE_brush_gpencil_sculpt_presets(Main *bmain, ToolSettings *ts, const bool
|
|||
Brush *brush, *deft_sculpt;
|
||||
|
||||
/* Smooth brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Smooth Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Smooth Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_SMOOTH_STROKE);
|
||||
}
|
||||
deft_sculpt = brush;
|
||||
|
||||
/* Strength brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Strength Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(
|
||||
bmain, ts, "Strength Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_STRENGTH_STROKE);
|
||||
}
|
||||
|
||||
/* Thickness brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Thickness Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(
|
||||
bmain, ts, "Thickness Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_THICKNESS_STROKE);
|
||||
}
|
||||
|
||||
/* Grab brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Grab Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Grab Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_GRAB_STROKE);
|
||||
}
|
||||
|
||||
/* Push brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Push Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Push Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_PUSH_STROKE);
|
||||
}
|
||||
|
||||
/* Twist brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Twist Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Twist Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_TWIST_STROKE);
|
||||
}
|
||||
|
||||
/* Pinch brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Pinch Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Pinch Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_PINCH_STROKE);
|
||||
}
|
||||
|
||||
/* Randomize brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Randomize Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(
|
||||
bmain, ts, "Randomize Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_RANDOMIZE_STROKE);
|
||||
}
|
||||
|
||||
/* Clone brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Clone Stroke", OB_MODE_SCULPT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Clone Stroke", OB_MODE_SCULPT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_CLONE_STROKE);
|
||||
}
|
||||
|
@ -1620,26 +1623,26 @@ void BKE_brush_gpencil_weight_presets(Main *bmain, ToolSettings *ts, const bool
|
|||
Brush *brush, *deft_weight;
|
||||
|
||||
/* Weight Draw brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Weight Draw", OB_MODE_WEIGHT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Weight Draw", OB_MODE_WEIGHT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_WEIGHT_DRAW);
|
||||
}
|
||||
deft_weight = brush; /* save default brush. */
|
||||
|
||||
/* Weight Blur brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Weight Blur", OB_MODE_WEIGHT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Weight Blur", OB_MODE_WEIGHT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_WEIGHT_BLUR);
|
||||
}
|
||||
|
||||
/* Weight Average brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Weight Average", OB_MODE_WEIGHT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Weight Average", OB_MODE_WEIGHT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_WEIGHT_AVERAGE);
|
||||
}
|
||||
|
||||
/* Weight Smear brush. */
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Weight Smear", OB_MODE_WEIGHT_GPENCIL, &r_new);
|
||||
brush = gpencil_brush_ensure(bmain, ts, "Weight Smear", OB_MODE_WEIGHT_GPENCIL_LEGACY, &r_new);
|
||||
if ((reset) || (r_new)) {
|
||||
BKE_gpencil_brush_preset_set(bmain, brush, GP_BRUSH_PRESET_WEIGHT_SMEAR);
|
||||
}
|
||||
|
|
|
@ -1213,20 +1213,20 @@ enum eContextObjectMode CTX_data_mode_enum_ex(const Object *obedit,
|
|||
if (object_mode & OB_MODE_PARTICLE_EDIT) {
|
||||
return CTX_MODE_PARTICLE;
|
||||
}
|
||||
if (object_mode & OB_MODE_PAINT_GPENCIL) {
|
||||
return CTX_MODE_PAINT_GPENCIL;
|
||||
if (object_mode & OB_MODE_PAINT_GPENCIL_LEGACY) {
|
||||
return CTX_MODE_PAINT_GPENCIL_LEGACY;
|
||||
}
|
||||
if (object_mode & OB_MODE_EDIT_GPENCIL) {
|
||||
if (object_mode & OB_MODE_EDIT_GPENCIL_LEGACY) {
|
||||
return CTX_MODE_EDIT_GPENCIL_LEGACY;
|
||||
}
|
||||
if (object_mode & OB_MODE_SCULPT_GPENCIL) {
|
||||
return CTX_MODE_SCULPT_GPENCIL;
|
||||
if (object_mode & OB_MODE_SCULPT_GPENCIL_LEGACY) {
|
||||
return CTX_MODE_SCULPT_GPENCIL_LEGACY;
|
||||
}
|
||||
if (object_mode & OB_MODE_WEIGHT_GPENCIL) {
|
||||
return CTX_MODE_WEIGHT_GPENCIL;
|
||||
if (object_mode & OB_MODE_WEIGHT_GPENCIL_LEGACY) {
|
||||
return CTX_MODE_WEIGHT_GPENCIL_LEGACY;
|
||||
}
|
||||
if (object_mode & OB_MODE_VERTEX_GPENCIL) {
|
||||
return CTX_MODE_VERTEX_GPENCIL;
|
||||
if (object_mode & OB_MODE_VERTEX_GPENCIL_LEGACY) {
|
||||
return CTX_MODE_VERTEX_GPENCIL_LEGACY;
|
||||
}
|
||||
if (object_mode & OB_MODE_SCULPT_CURVES) {
|
||||
return CTX_MODE_SCULPT_CURVES;
|
||||
|
|
|
@ -2623,7 +2623,7 @@ Object *BKE_object_pose_armature_get_with_wpaint_check(Object *ob)
|
|||
break;
|
||||
}
|
||||
case OB_GPENCIL_LEGACY: {
|
||||
if ((ob->mode & OB_MODE_WEIGHT_GPENCIL) == 0) {
|
||||
if ((ob->mode & OB_MODE_WEIGHT_GPENCIL_LEGACY) == 0) {
|
||||
return nullptr;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -498,13 +498,13 @@ Paint *BKE_paint_get_active(Scene *sce, ViewLayer *view_layer)
|
|||
return &ts->wpaint->paint;
|
||||
case OB_MODE_TEXTURE_PAINT:
|
||||
return &ts->imapaint.paint;
|
||||
case OB_MODE_PAINT_GPENCIL:
|
||||
case OB_MODE_PAINT_GPENCIL_LEGACY:
|
||||
return &ts->gp_paint->paint;
|
||||
case OB_MODE_VERTEX_GPENCIL:
|
||||
case OB_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
return &ts->gp_vertexpaint->paint;
|
||||
case OB_MODE_SCULPT_GPENCIL:
|
||||
case OB_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
return &ts->gp_sculptpaint->paint;
|
||||
case OB_MODE_WEIGHT_GPENCIL:
|
||||
case OB_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
return &ts->gp_weightpaint->paint;
|
||||
case OB_MODE_SCULPT_CURVES:
|
||||
return &ts->curves_sculpt->paint;
|
||||
|
@ -614,15 +614,15 @@ ePaintMode BKE_paintmode_get_from_tool(const bToolRef *tref)
|
|||
return PAINT_MODE_VERTEX;
|
||||
case CTX_MODE_PAINT_WEIGHT:
|
||||
return PAINT_MODE_WEIGHT;
|
||||
case CTX_MODE_PAINT_GPENCIL:
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY:
|
||||
return PAINT_MODE_GPENCIL;
|
||||
case CTX_MODE_PAINT_TEXTURE:
|
||||
return PAINT_MODE_TEXTURE_3D;
|
||||
case CTX_MODE_VERTEX_GPENCIL:
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
return PAINT_MODE_VERTEX_GPENCIL;
|
||||
case CTX_MODE_SCULPT_GPENCIL:
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
return PAINT_MODE_SCULPT_GPENCIL;
|
||||
case CTX_MODE_WEIGHT_GPENCIL:
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
return PAINT_MODE_WEIGHT_GPENCIL;
|
||||
case CTX_MODE_SCULPT_CURVES:
|
||||
return PAINT_MODE_SCULPT_CURVES;
|
||||
|
@ -685,19 +685,19 @@ void BKE_paint_runtime_init(const ToolSettings *ts, Paint *paint)
|
|||
}
|
||||
else if (ts->gp_paint && paint == &ts->gp_paint->paint) {
|
||||
paint->runtime.tool_offset = offsetof(Brush, gpencil_tool);
|
||||
paint->runtime.ob_mode = OB_MODE_PAINT_GPENCIL;
|
||||
paint->runtime.ob_mode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
}
|
||||
else if (ts->gp_vertexpaint && paint == &ts->gp_vertexpaint->paint) {
|
||||
paint->runtime.tool_offset = offsetof(Brush, gpencil_vertex_tool);
|
||||
paint->runtime.ob_mode = OB_MODE_VERTEX_GPENCIL;
|
||||
paint->runtime.ob_mode = OB_MODE_VERTEX_GPENCIL_LEGACY;
|
||||
}
|
||||
else if (ts->gp_sculptpaint && paint == &ts->gp_sculptpaint->paint) {
|
||||
paint->runtime.tool_offset = offsetof(Brush, gpencil_sculpt_tool);
|
||||
paint->runtime.ob_mode = OB_MODE_SCULPT_GPENCIL;
|
||||
paint->runtime.ob_mode = OB_MODE_SCULPT_GPENCIL_LEGACY;
|
||||
}
|
||||
else if (ts->gp_weightpaint && paint == &ts->gp_weightpaint->paint) {
|
||||
paint->runtime.tool_offset = offsetof(Brush, gpencil_weight_tool);
|
||||
paint->runtime.ob_mode = OB_MODE_WEIGHT_GPENCIL;
|
||||
paint->runtime.ob_mode = OB_MODE_WEIGHT_GPENCIL_LEGACY;
|
||||
}
|
||||
else if (ts->curves_sculpt && paint == &ts->curves_sculpt->paint) {
|
||||
paint->runtime.tool_offset = offsetof(Brush, curves_sculpt_tool);
|
||||
|
|
|
@ -264,7 +264,7 @@ void BLO_update_defaults_workspace(WorkSpace *workspace, const char *app_templat
|
|||
|
||||
/* For 2D animation template. */
|
||||
if (STREQ(workspace->id.name + 2, "Drawing")) {
|
||||
workspace->object_mode = OB_MODE_PAINT_GPENCIL;
|
||||
workspace->object_mode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
}
|
||||
|
||||
/* For Sculpting template. */
|
||||
|
@ -555,7 +555,7 @@ void BLO_update_defaults_startup_blend(Main *bmain, const char *app_template)
|
|||
if (object->type == OB_GPENCIL_LEGACY) {
|
||||
/* Set grease pencil object in drawing mode */
|
||||
bGPdata *gpd = (bGPdata *)object->data;
|
||||
object->mode = OB_MODE_PAINT_GPENCIL;
|
||||
object->mode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
gpd->flag |= GP_DATA_STROKE_PAINTMODE;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -152,6 +152,7 @@ set(SRC
|
|||
engines/eevee_next/eevee_light.cc
|
||||
engines/eevee_next/eevee_lightcache.cc
|
||||
engines/eevee_next/eevee_lightprobe.cc
|
||||
engines/eevee_next/eevee_lookdev.cc
|
||||
engines/eevee_next/eevee_material.cc
|
||||
engines/eevee_next/eevee_motion_blur.cc
|
||||
engines/eevee_next/eevee_pipeline.cc
|
||||
|
@ -297,6 +298,7 @@ set(SRC
|
|||
engines/eevee_next/eevee_light.hh
|
||||
engines/eevee_next/eevee_lightcache.hh
|
||||
engines/eevee_next/eevee_lightprobe.hh
|
||||
engines/eevee_next/eevee_lookdev.hh
|
||||
engines/eevee_next/eevee_material.hh
|
||||
engines/eevee_next/eevee_motion_blur.hh
|
||||
engines/eevee_next/eevee_pipeline.hh
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "eevee_irradiance_cache.hh"
|
||||
#include "eevee_light.hh"
|
||||
#include "eevee_lightprobe.hh"
|
||||
#include "eevee_lookdev.hh"
|
||||
#include "eevee_material.hh"
|
||||
#include "eevee_motion_blur.hh"
|
||||
#include "eevee_pipeline.hh"
|
||||
|
@ -71,6 +72,7 @@ class Instance {
|
|||
MainView main_view;
|
||||
CaptureView capture_view;
|
||||
World world;
|
||||
LookdevModule lookdev;
|
||||
LightProbeModule light_probes;
|
||||
IrradianceCache irradiance_cache;
|
||||
|
||||
|
@ -124,6 +126,7 @@ class Instance {
|
|||
main_view(*this),
|
||||
capture_view(*this),
|
||||
world(*this),
|
||||
lookdev(*this),
|
||||
light_probes(*this),
|
||||
irradiance_cache(*this){};
|
||||
~Instance(){};
|
||||
|
|
|
@ -0,0 +1,199 @@
|
|||
/* SPDX-FileCopyrightText: 2023 Blender Foundation
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
/** \file
|
||||
* \ingroup eevee
|
||||
*/
|
||||
|
||||
#include "BKE_image.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_node.hh"
|
||||
#include "BKE_studiolight.h"
|
||||
|
||||
#include "NOD_shader.h"
|
||||
|
||||
#include "eevee_instance.hh"
|
||||
|
||||
namespace blender::eevee {
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Viewport Override Node-Tree
|
||||
* \{ */
|
||||
|
||||
LookdevWorldNodeTree::LookdevWorldNodeTree()
|
||||
{
|
||||
bNodeTree *ntree = ntreeAddTree(nullptr, "Lookdev World Nodetree", ntreeType_Shader->idname);
|
||||
ntree_ = ntree;
|
||||
|
||||
bNode *coordinate = nodeAddStaticNode(nullptr, ntree, SH_NODE_TEX_COORD);
|
||||
bNodeSocket *coordinate_out = nodeFindSocket(coordinate, SOCK_OUT, "Generated");
|
||||
|
||||
bNode *rotate = nodeAddStaticNode(nullptr, ntree, SH_NODE_VECTOR_ROTATE);
|
||||
rotate->custom1 = NODE_VECTOR_ROTATE_TYPE_AXIS_Z;
|
||||
bNodeSocket *rotate_vector_in = nodeFindSocket(rotate, SOCK_IN, "Vector");
|
||||
angle_socket_ = static_cast<bNodeSocketValueFloat *>(
|
||||
static_cast<void *>(nodeFindSocket(rotate, SOCK_IN, "Angle")->default_value));
|
||||
bNodeSocket *rotate_out = nodeFindSocket(rotate, SOCK_OUT, "Vector");
|
||||
|
||||
bNode *environment = nodeAddStaticNode(nullptr, ntree, SH_NODE_TEX_ENVIRONMENT);
|
||||
environment_node_ = environment;
|
||||
NodeTexImage *environment_storage = static_cast<NodeTexImage *>(environment->storage);
|
||||
bNodeSocket *environment_vector_in = nodeFindSocket(environment, SOCK_IN, "Vector");
|
||||
bNodeSocket *environment_out = nodeFindSocket(environment, SOCK_OUT, "Color");
|
||||
|
||||
bNode *background = nodeAddStaticNode(nullptr, ntree, SH_NODE_BACKGROUND);
|
||||
bNodeSocket *background_out = nodeFindSocket(background, SOCK_OUT, "Background");
|
||||
bNodeSocket *background_color_in = nodeFindSocket(background, SOCK_IN, "Color");
|
||||
intensity_socket_ = static_cast<bNodeSocketValueFloat *>(
|
||||
static_cast<void *>(nodeFindSocket(background, SOCK_IN, "Strength")->default_value));
|
||||
|
||||
bNode *output = nodeAddStaticNode(nullptr, ntree, SH_NODE_OUTPUT_WORLD);
|
||||
bNodeSocket *output_in = nodeFindSocket(output, SOCK_IN, "Surface");
|
||||
|
||||
nodeAddLink(ntree, coordinate, coordinate_out, rotate, rotate_vector_in);
|
||||
nodeAddLink(ntree, rotate, rotate_out, environment, environment_vector_in);
|
||||
nodeAddLink(ntree, environment, environment_out, background, background_color_in);
|
||||
nodeAddLink(ntree, background, background_out, output, output_in);
|
||||
nodeSetActive(ntree, output);
|
||||
|
||||
/* Create a dummy image data block to hold GPU textures generated by studiolights. */
|
||||
BLI_strncpy(image.id.name, "IMLookdev", sizeof(image.id.name));
|
||||
BKE_libblock_init_empty(&image.id);
|
||||
image.type = IMA_TYPE_IMAGE;
|
||||
image.source = IMA_SRC_GENERATED;
|
||||
ImageTile *base_tile = BKE_image_get_tile(&image, 0);
|
||||
base_tile->gen_x = 1;
|
||||
base_tile->gen_y = 1;
|
||||
base_tile->gen_type = IMA_GENTYPE_BLANK;
|
||||
copy_v4_fl(base_tile->gen_color, 0.0f);
|
||||
/*
|
||||
* TODO: This works around the issue that the first time the texture is accessed the image would
|
||||
* overwrite the set GPU texture. A better solution would be to use image data-blocks as part of
|
||||
* the studiolights, but that requires a larger refactoring.
|
||||
*/
|
||||
BKE_image_get_gpu_texture(&image, &environment_storage->iuser, nullptr);
|
||||
}
|
||||
|
||||
LookdevWorldNodeTree::~LookdevWorldNodeTree()
|
||||
{
|
||||
ntreeFreeEmbeddedTree(ntree_);
|
||||
MEM_SAFE_FREE(ntree_);
|
||||
BKE_libblock_free_datablock(&image.id, 0);
|
||||
}
|
||||
|
||||
bNodeTree *LookdevWorldNodeTree::nodetree_get(const LookdevParameters ¶meters)
|
||||
{
|
||||
intensity_socket_->value = parameters.intensity;
|
||||
angle_socket_->value = parameters.rot_z;
|
||||
|
||||
GPU_TEXTURE_FREE_SAFE(image.gputexture[TEXTARGET_2D][0]);
|
||||
environment_node_->id = nullptr;
|
||||
|
||||
StudioLight *sl = BKE_studiolight_find(parameters.hdri.c_str(),
|
||||
STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE);
|
||||
if (sl) {
|
||||
BKE_studiolight_ensure_flag(sl, STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE);
|
||||
GPUTexture *texture = sl->equirect_radiance_gputexture;
|
||||
if (texture != nullptr) {
|
||||
GPU_texture_ref(texture);
|
||||
image.gputexture[TEXTARGET_2D][0] = texture;
|
||||
environment_node_->id = &image.id;
|
||||
}
|
||||
}
|
||||
|
||||
return ntree_;
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Lookdev
|
||||
*
|
||||
* \{ */
|
||||
|
||||
LookdevModule::~LookdevModule()
|
||||
{
|
||||
GPU_material_free(&gpu_materials_);
|
||||
gpu_material_ = nullptr;
|
||||
}
|
||||
|
||||
bool LookdevModule::sync_world()
|
||||
{
|
||||
/* Check based on the v3d if the world is overridden. */
|
||||
LookdevParameters new_parameters(inst_.v3d);
|
||||
if (parameters_ != new_parameters) {
|
||||
if (parameters_.gpu_parameters_changed(new_parameters)) {
|
||||
GPU_material_free(&gpu_materials_);
|
||||
gpu_material_ = nullptr;
|
||||
}
|
||||
|
||||
parameters_ = new_parameters;
|
||||
inst_.reflection_probes.do_world_update_set(true);
|
||||
inst_.sampling.reset();
|
||||
}
|
||||
|
||||
if (parameters_.show_scene_world) {
|
||||
return false;
|
||||
}
|
||||
|
||||
::bNodeTree *node_tree = world_override_tree.nodetree_get(parameters_);
|
||||
gpu_material_ = inst_.shaders.material_shader_get("EEVEE Lookdev Background",
|
||||
gpu_materials_,
|
||||
node_tree,
|
||||
MAT_PIPE_DEFERRED,
|
||||
MAT_GEOM_WORLD,
|
||||
true);
|
||||
inst_.pipelines.world.sync(gpu_material_);
|
||||
inst_.pipelines.background.sync(gpu_material_, parameters_.background_opacity);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Parameters
|
||||
* \{ */
|
||||
|
||||
LookdevParameters::LookdevParameters() {}
|
||||
|
||||
LookdevParameters::LookdevParameters(const ::View3D *v3d)
|
||||
{
|
||||
if (v3d == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
const ::View3DShading &shading = v3d->shading;
|
||||
show_scene_world = shading.type == OB_RENDER ? shading.flag & V3D_SHADING_SCENE_WORLD_RENDER :
|
||||
shading.flag & V3D_SHADING_SCENE_WORLD;
|
||||
if (!show_scene_world) {
|
||||
rot_z = shading.studiolight_rot_z;
|
||||
background_opacity = shading.studiolight_background;
|
||||
blur = shading.studiolight_blur;
|
||||
intensity = shading.studiolight_intensity;
|
||||
hdri = StringRefNull(shading.lookdev_light);
|
||||
}
|
||||
}
|
||||
|
||||
bool LookdevParameters::operator==(const LookdevParameters &other) const
|
||||
{
|
||||
return hdri == other.hdri && rot_z == other.rot_z &&
|
||||
background_opacity == other.background_opacity && blur == other.blur &&
|
||||
intensity == other.intensity && show_scene_world == other.show_scene_world;
|
||||
}
|
||||
|
||||
bool LookdevParameters::gpu_parameters_changed(const LookdevParameters &other) const
|
||||
{
|
||||
return !(hdri == other.hdri && rot_z == other.rot_z && blur == other.blur &&
|
||||
intensity == other.intensity);
|
||||
}
|
||||
|
||||
bool LookdevParameters::operator!=(const LookdevParameters &other) const
|
||||
{
|
||||
return !(*this == other);
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
} // namespace blender::eevee
|
|
@ -0,0 +1,96 @@
|
|||
/* SPDX-FileCopyrightText: 2023 Blender Foundation
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
/** \file
|
||||
* \ingroup eevee
|
||||
*
|
||||
* World rendering with material handling. Also take care of lookdev
|
||||
* HDRI and default material.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "DNA_world_types.h"
|
||||
|
||||
namespace blender::eevee {
|
||||
|
||||
class Instance;
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Parameters
|
||||
*
|
||||
* Parameters used to check changes and to configure the world shader node tree.
|
||||
*
|
||||
* \{ */
|
||||
struct LookdevParameters {
|
||||
std::string hdri;
|
||||
float rot_z = 0.0f;
|
||||
float background_opacity = 0.0f;
|
||||
float intensity = 1.0f;
|
||||
float blur = 0.0f;
|
||||
bool show_scene_world = true;
|
||||
|
||||
LookdevParameters();
|
||||
LookdevParameters(const ::View3D *v3d);
|
||||
bool operator==(const LookdevParameters &other) const;
|
||||
bool operator!=(const LookdevParameters &other) const;
|
||||
bool gpu_parameters_changed(const LookdevParameters &other) const;
|
||||
};
|
||||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Viewport Override Node-Tree
|
||||
*
|
||||
* In a viewport the world can be overridden by a custom HDRI and some settings.
|
||||
* \{ */
|
||||
|
||||
class LookdevWorldNodeTree {
|
||||
private:
|
||||
bNodeTree *ntree_ = nullptr;
|
||||
bNode *environment_node_ = nullptr;
|
||||
bNodeSocketValueFloat *intensity_socket_ = nullptr;
|
||||
bNodeSocketValueFloat *angle_socket_ = nullptr;
|
||||
::Image image = {};
|
||||
|
||||
public:
|
||||
LookdevWorldNodeTree();
|
||||
~LookdevWorldNodeTree();
|
||||
|
||||
bNodeTree *nodetree_get(const LookdevParameters ¶meters);
|
||||
};
|
||||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Lookdev
|
||||
*
|
||||
* Look Development can override the world.
|
||||
*
|
||||
* \{ */
|
||||
|
||||
class LookdevModule {
|
||||
public:
|
||||
private:
|
||||
Instance &inst_;
|
||||
|
||||
LookdevWorldNodeTree world_override_tree;
|
||||
|
||||
LookdevParameters parameters_;
|
||||
ListBase gpu_materials_ = {nullptr, nullptr};
|
||||
GPUMaterial *gpu_material_ = nullptr;
|
||||
|
||||
public:
|
||||
LookdevModule(Instance &inst) : inst_(inst){};
|
||||
~LookdevModule();
|
||||
|
||||
bool sync_world();
|
||||
|
||||
private:
|
||||
::World *get_world(::bNodeTree *node_tree);
|
||||
};
|
||||
|
||||
/** \} */
|
||||
|
||||
} // namespace blender::eevee
|
|
@ -22,7 +22,7 @@ namespace blender::eevee {
|
|||
* Used to draw background.
|
||||
* \{ */
|
||||
|
||||
void BackgroundPipeline::sync(GPUMaterial *gpumat)
|
||||
void BackgroundPipeline::sync(GPUMaterial *gpumat, const float background_opacity)
|
||||
{
|
||||
Manager &manager = *inst_.manager;
|
||||
RenderBuffers &rbufs = inst_.render_buffers;
|
||||
|
@ -32,7 +32,7 @@ void BackgroundPipeline::sync(GPUMaterial *gpumat)
|
|||
world_ps_.init();
|
||||
world_ps_.state_set(DRW_STATE_WRITE_COLOR);
|
||||
world_ps_.material_set(manager, gpumat);
|
||||
world_ps_.push_constant("world_opacity_fade", inst_.film.background_opacity_get());
|
||||
world_ps_.push_constant("world_opacity_fade", background_opacity);
|
||||
world_ps_.bind_texture("utility_tx", inst_.pipelines.utility_tx);
|
||||
/* RenderPasses & AOVs. Cleared by background (even if bad practice). */
|
||||
world_ps_.bind_image("rp_color_img", &rbufs.rp_color_tx);
|
||||
|
|
|
@ -37,7 +37,7 @@ class BackgroundPipeline {
|
|||
public:
|
||||
BackgroundPipeline(Instance &inst) : inst_(inst){};
|
||||
|
||||
void sync(GPUMaterial *gpumat);
|
||||
void sync(GPUMaterial *gpumat, float background_opacity);
|
||||
void render(View &view);
|
||||
};
|
||||
|
||||
|
|
|
@ -78,9 +78,9 @@ World::~World()
|
|||
|
||||
void World::sync()
|
||||
{
|
||||
// if (inst_.lookdev.sync_world()) {
|
||||
// return;
|
||||
// }
|
||||
if (inst_.lookdev.sync_world()) {
|
||||
return;
|
||||
}
|
||||
|
||||
::World *bl_world = inst_.scene->world;
|
||||
if (bl_world == nullptr) {
|
||||
|
@ -108,7 +108,7 @@ void World::sync()
|
|||
|
||||
inst_.manager->register_layer_attributes(gpumat);
|
||||
|
||||
inst_.pipelines.background.sync(gpumat);
|
||||
inst_.pipelines.background.sync(gpumat, inst_.film.background_opacity_get());
|
||||
inst_.pipelines.world.sync(gpumat);
|
||||
}
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ void GPENCIL_engine_init(void *ved)
|
|||
stl->pd->v3d_color_type = (v3d->shading.type == OB_SOLID) ? v3d->shading.color_type : -1;
|
||||
/* Special case: If Vertex Paint mode, use always Vertex mode. */
|
||||
if (v3d->shading.type == OB_SOLID && ctx->obact && ctx->obact->type == OB_GPENCIL_LEGACY &&
|
||||
ctx->obact->mode == OB_MODE_VERTEX_GPENCIL)
|
||||
ctx->obact->mode == OB_MODE_VERTEX_GPENCIL_LEGACY)
|
||||
{
|
||||
stl->pd->v3d_color_type = V3D_SHADING_VERTEX_COLOR;
|
||||
}
|
||||
|
|
|
@ -199,10 +199,10 @@ static void OVERLAY_cache_init(void *vedata)
|
|||
case CTX_MODE_EDIT_GPENCIL_LEGACY:
|
||||
OVERLAY_edit_gpencil_legacy_cache_init(data);
|
||||
break;
|
||||
case CTX_MODE_PAINT_GPENCIL:
|
||||
case CTX_MODE_SCULPT_GPENCIL:
|
||||
case CTX_MODE_VERTEX_GPENCIL:
|
||||
case CTX_MODE_WEIGHT_GPENCIL:
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY:
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
OVERLAY_edit_gpencil_legacy_cache_init(data);
|
||||
break;
|
||||
case CTX_MODE_EDIT_CURVES:
|
||||
|
@ -733,10 +733,10 @@ static void OVERLAY_draw_scene(void *vedata)
|
|||
case CTX_MODE_EDIT_GPENCIL_LEGACY:
|
||||
OVERLAY_edit_gpencil_legacy_draw(data);
|
||||
break;
|
||||
case CTX_MODE_PAINT_GPENCIL:
|
||||
case CTX_MODE_SCULPT_GPENCIL:
|
||||
case CTX_MODE_VERTEX_GPENCIL:
|
||||
case CTX_MODE_WEIGHT_GPENCIL:
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY:
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
OVERLAY_edit_gpencil_legacy_draw(data);
|
||||
break;
|
||||
case CTX_MODE_SCULPT_CURVES:
|
||||
|
|
|
@ -160,7 +160,7 @@ void OVERLAY_edit_gpencil_legacy_cache_init(OVERLAY_Data *vedata)
|
|||
/* control points for primitives and speed guide */
|
||||
const bool is_cppoint = (gpd->runtime.tot_cp_points > 0);
|
||||
const bool is_speed_guide = (ts->gp_sculpt.guide.use_guide &&
|
||||
(draw_ctx->object_mode == OB_MODE_PAINT_GPENCIL));
|
||||
(draw_ctx->object_mode == OB_MODE_PAINT_GPENCIL_LEGACY));
|
||||
const bool is_show_gizmo = (((v3d->gizmo_flag & V3D_GIZMO_HIDE) == 0) &&
|
||||
((v3d->gizmo_flag & V3D_GIZMO_HIDE_TOOL) == 0));
|
||||
|
||||
|
@ -442,7 +442,7 @@ void OVERLAY_gpencil_legacy_cache_populate(OVERLAY_Data *vedata, Object *ob)
|
|||
|
||||
/* don't show object extras in set's */
|
||||
if ((ob->base_flag & (BASE_FROM_SET | BASE_FROM_DUPLI)) == 0) {
|
||||
if ((v3d->gp_flag & V3D_GP_SHOW_MATERIAL_NAME) && (ob->mode == OB_MODE_EDIT_GPENCIL) &&
|
||||
if ((v3d->gp_flag & V3D_GP_SHOW_MATERIAL_NAME) && (ob->mode == OB_MODE_EDIT_GPENCIL_LEGACY) &&
|
||||
DRW_state_show_text())
|
||||
{
|
||||
OVERLAY_gpencil_color_names(ob);
|
||||
|
|
|
@ -81,7 +81,7 @@ static bool is_cursor_visible(const DRWContextState *draw_ctx, Scene *scene, Vie
|
|||
/* no exception met? then don't draw cursor! */
|
||||
return false;
|
||||
}
|
||||
if (draw_ctx->object_mode & OB_MODE_WEIGHT_GPENCIL) {
|
||||
if (draw_ctx->object_mode & OB_MODE_WEIGHT_GPENCIL_LEGACY) {
|
||||
/* grease pencil hide always in some modes */
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1954,7 +1954,7 @@ static int gpencil_brush_reset_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
Brush *brush = NULL;
|
||||
|
||||
switch (mode) {
|
||||
case CTX_MODE_PAINT_GPENCIL: {
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY: {
|
||||
Paint *paint = &ts->gp_paint->paint;
|
||||
brush = paint->brush;
|
||||
if (brush && brush->gpencil_settings) {
|
||||
|
@ -1962,7 +1962,7 @@ static int gpencil_brush_reset_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
}
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_SCULPT_GPENCIL: {
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY: {
|
||||
Paint *paint = &ts->gp_sculptpaint->paint;
|
||||
brush = paint->brush;
|
||||
if (brush && brush->gpencil_settings) {
|
||||
|
@ -1970,7 +1970,7 @@ static int gpencil_brush_reset_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
}
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_WEIGHT_GPENCIL: {
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY: {
|
||||
Paint *paint = &ts->gp_weightpaint->paint;
|
||||
brush = paint->brush;
|
||||
if (brush && brush->gpencil_settings) {
|
||||
|
@ -1978,7 +1978,7 @@ static int gpencil_brush_reset_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
}
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_VERTEX_GPENCIL: {
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY: {
|
||||
Paint *paint = &ts->gp_vertexpaint->paint;
|
||||
brush = paint->brush;
|
||||
if (brush && brush->gpencil_settings) {
|
||||
|
@ -2023,19 +2023,19 @@ static Brush *gpencil_brush_get_first_by_mode(Main *bmain,
|
|||
continue;
|
||||
}
|
||||
|
||||
if ((mode == CTX_MODE_PAINT_GPENCIL) && (brush->gpencil_tool == tool)) {
|
||||
if ((mode == CTX_MODE_PAINT_GPENCIL_LEGACY) && (brush->gpencil_tool == tool)) {
|
||||
return brush;
|
||||
}
|
||||
|
||||
if ((mode == CTX_MODE_SCULPT_GPENCIL) && (brush->gpencil_sculpt_tool == tool)) {
|
||||
if ((mode == CTX_MODE_SCULPT_GPENCIL_LEGACY) && (brush->gpencil_sculpt_tool == tool)) {
|
||||
return brush;
|
||||
}
|
||||
|
||||
if ((mode == CTX_MODE_WEIGHT_GPENCIL) && (brush->gpencil_weight_tool == tool)) {
|
||||
if ((mode == CTX_MODE_WEIGHT_GPENCIL_LEGACY) && (brush->gpencil_weight_tool == tool)) {
|
||||
return brush;
|
||||
}
|
||||
|
||||
if ((mode == CTX_MODE_VERTEX_GPENCIL) && (brush->gpencil_vertex_tool == tool)) {
|
||||
if ((mode == CTX_MODE_VERTEX_GPENCIL_LEGACY) && (brush->gpencil_vertex_tool == tool)) {
|
||||
return brush;
|
||||
}
|
||||
}
|
||||
|
@ -2052,7 +2052,7 @@ static void gpencil_brush_delete_mode_brushes(Main *bmain,
|
|||
for (Brush *brush = bmain->brushes.first; brush; brush = brush_next) {
|
||||
brush_next = brush->id.next;
|
||||
|
||||
if ((brush->gpencil_settings == NULL) && (brush->ob_mode != OB_MODE_PAINT_GPENCIL)) {
|
||||
if ((brush->gpencil_settings == NULL) && (brush->ob_mode != OB_MODE_PAINT_GPENCIL_LEGACY)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -2061,7 +2061,7 @@ static void gpencil_brush_delete_mode_brushes(Main *bmain,
|
|||
|
||||
if (preset != GP_BRUSH_PRESET_UNKNOWN) {
|
||||
/* Verify to delete only the brushes of the current mode. */
|
||||
if (mode == CTX_MODE_PAINT_GPENCIL) {
|
||||
if (mode == CTX_MODE_PAINT_GPENCIL_LEGACY) {
|
||||
if ((preset < GP_BRUSH_PRESET_AIRBRUSH) || (preset > GP_BRUSH_PRESET_TINT)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -2070,7 +2070,7 @@ static void gpencil_brush_delete_mode_brushes(Main *bmain,
|
|||
}
|
||||
}
|
||||
|
||||
if (mode == CTX_MODE_SCULPT_GPENCIL) {
|
||||
if (mode == CTX_MODE_SCULPT_GPENCIL_LEGACY) {
|
||||
if ((preset < GP_BRUSH_PRESET_SMOOTH_STROKE) || (preset > GP_BRUSH_PRESET_CLONE_STROKE)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -2079,7 +2079,7 @@ static void gpencil_brush_delete_mode_brushes(Main *bmain,
|
|||
}
|
||||
}
|
||||
|
||||
if (mode == CTX_MODE_WEIGHT_GPENCIL) {
|
||||
if (mode == CTX_MODE_WEIGHT_GPENCIL_LEGACY) {
|
||||
if ((preset < GP_BRUSH_PRESET_WEIGHT_DRAW) || (preset > GP_BRUSH_PRESET_WEIGHT_SMEAR)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -2088,7 +2088,7 @@ static void gpencil_brush_delete_mode_brushes(Main *bmain,
|
|||
}
|
||||
}
|
||||
|
||||
if (mode == CTX_MODE_VERTEX_GPENCIL) {
|
||||
if (mode == CTX_MODE_VERTEX_GPENCIL_LEGACY) {
|
||||
if ((preset < GP_BRUSH_PRESET_VERTEX_DRAW) || (preset > GP_BRUSH_PRESET_VERTEX_REPLACE)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -2119,19 +2119,19 @@ static int gpencil_brush_reset_all_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
Paint *paint = NULL;
|
||||
|
||||
switch (mode) {
|
||||
case CTX_MODE_PAINT_GPENCIL: {
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY: {
|
||||
paint = &ts->gp_paint->paint;
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_SCULPT_GPENCIL: {
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY: {
|
||||
paint = &ts->gp_sculptpaint->paint;
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_WEIGHT_GPENCIL: {
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY: {
|
||||
paint = &ts->gp_weightpaint->paint;
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_VERTEX_GPENCIL: {
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY: {
|
||||
paint = &ts->gp_vertexpaint->paint;
|
||||
break;
|
||||
}
|
||||
|
@ -2144,19 +2144,19 @@ static int gpencil_brush_reset_all_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
if (paint->brush) {
|
||||
Brush *brush_active = paint->brush;
|
||||
switch (mode) {
|
||||
case CTX_MODE_PAINT_GPENCIL: {
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY: {
|
||||
tool = brush_active->gpencil_tool;
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_SCULPT_GPENCIL: {
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY: {
|
||||
tool = brush_active->gpencil_sculpt_tool;
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_WEIGHT_GPENCIL: {
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY: {
|
||||
tool = brush_active->gpencil_weight_tool;
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_VERTEX_GPENCIL: {
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY: {
|
||||
tool = brush_active->gpencil_vertex_tool;
|
||||
break;
|
||||
}
|
||||
|
@ -2170,19 +2170,19 @@ static int gpencil_brush_reset_all_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
gpencil_brush_delete_mode_brushes(bmain, paint, mode);
|
||||
|
||||
switch (mode) {
|
||||
case CTX_MODE_PAINT_GPENCIL: {
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY: {
|
||||
BKE_brush_gpencil_paint_presets(bmain, ts, true);
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_SCULPT_GPENCIL: {
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY: {
|
||||
BKE_brush_gpencil_sculpt_presets(bmain, ts, true);
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_WEIGHT_GPENCIL: {
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY: {
|
||||
BKE_brush_gpencil_weight_presets(bmain, ts, true);
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_VERTEX_GPENCIL: {
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY: {
|
||||
BKE_brush_gpencil_vertex_presets(bmain, ts, true);
|
||||
break;
|
||||
}
|
||||
|
@ -2232,7 +2232,7 @@ static bool gpencil_vertex_group_poll(bContext *C)
|
|||
if (BKE_id_is_editable(bmain, &ob->id) && BKE_id_is_editable(bmain, ob->data) &&
|
||||
!BLI_listbase_is_empty(&gpd->vertex_group_names))
|
||||
{
|
||||
if (ELEM(ob->mode, OB_MODE_EDIT_GPENCIL, OB_MODE_SCULPT_GPENCIL)) {
|
||||
if (ELEM(ob->mode, OB_MODE_EDIT_GPENCIL_LEGACY, OB_MODE_SCULPT_GPENCIL_LEGACY)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -2251,7 +2251,7 @@ static bool gpencil_vertex_group_weight_poll(bContext *C)
|
|||
if (BKE_id_is_editable(bmain, &ob->id) && BKE_id_is_editable(bmain, ob->data) &&
|
||||
!BLI_listbase_is_empty(&gpd->vertex_group_names))
|
||||
{
|
||||
if (ob->mode == OB_MODE_WEIGHT_GPENCIL) {
|
||||
if (ob->mode == OB_MODE_WEIGHT_GPENCIL_LEGACY) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -179,7 +179,7 @@ static int gpencil_editmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
}
|
||||
/* set mode */
|
||||
if (gpd->flag & GP_DATA_STROKE_EDITMODE) {
|
||||
mode = OB_MODE_EDIT_GPENCIL;
|
||||
mode = OB_MODE_EDIT_GPENCIL_LEGACY;
|
||||
}
|
||||
else {
|
||||
mode = OB_MODE_OBJECT;
|
||||
|
@ -262,7 +262,8 @@ static bool gpencil_selectmode_toggle_poll(bContext *C)
|
|||
{
|
||||
/* edit only supported with grease pencil objects */
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
if ((ob == NULL) || (ob->type != OB_GPENCIL_LEGACY) || (ob->mode != OB_MODE_EDIT_GPENCIL)) {
|
||||
if ((ob == NULL) || (ob->type != OB_GPENCIL_LEGACY) || (ob->mode != OB_MODE_EDIT_GPENCIL_LEGACY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -374,7 +375,7 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
gpd->flag ^= GP_DATA_STROKE_PAINTMODE;
|
||||
/* set mode */
|
||||
if (gpd->flag & GP_DATA_STROKE_PAINTMODE) {
|
||||
mode = OB_MODE_PAINT_GPENCIL;
|
||||
mode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
}
|
||||
else {
|
||||
mode = OB_MODE_OBJECT;
|
||||
|
@ -389,7 +390,7 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
ob->mode = mode;
|
||||
}
|
||||
|
||||
if (mode == OB_MODE_PAINT_GPENCIL) {
|
||||
if (mode == OB_MODE_PAINT_GPENCIL_LEGACY) {
|
||||
/* Be sure we have brushes and Paint settings.
|
||||
* Need Draw and Vertex (used for Tint). */
|
||||
BKE_paint_ensure(ts, (Paint **)&ts->gp_paint);
|
||||
|
@ -490,7 +491,7 @@ static int gpencil_sculptmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
gpd->flag ^= GP_DATA_STROKE_SCULPTMODE;
|
||||
/* set mode */
|
||||
if (gpd->flag & GP_DATA_STROKE_SCULPTMODE) {
|
||||
mode = OB_MODE_SCULPT_GPENCIL;
|
||||
mode = OB_MODE_SCULPT_GPENCIL_LEGACY;
|
||||
}
|
||||
else {
|
||||
mode = OB_MODE_OBJECT;
|
||||
|
@ -505,7 +506,7 @@ static int gpencil_sculptmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
ob->mode = mode;
|
||||
}
|
||||
|
||||
if (mode == OB_MODE_SCULPT_GPENCIL) {
|
||||
if (mode == OB_MODE_SCULPT_GPENCIL_LEGACY) {
|
||||
/* Be sure we have brushes. */
|
||||
BKE_paint_ensure(ts, (Paint **)&ts->gp_sculptpaint);
|
||||
|
||||
|
@ -590,7 +591,7 @@ static int gpencil_weightmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
gpd = ob->data;
|
||||
is_object = true;
|
||||
}
|
||||
const int mode_flag = OB_MODE_WEIGHT_GPENCIL;
|
||||
const int mode_flag = OB_MODE_WEIGHT_GPENCIL_LEGACY;
|
||||
const bool is_mode_set = (ob->mode & mode_flag) != 0;
|
||||
|
||||
if (gpd == NULL) {
|
||||
|
@ -601,7 +602,7 @@ static int gpencil_weightmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
gpd->flag ^= GP_DATA_STROKE_WEIGHTMODE;
|
||||
/* set mode */
|
||||
if (gpd->flag & GP_DATA_STROKE_WEIGHTMODE) {
|
||||
mode = OB_MODE_WEIGHT_GPENCIL;
|
||||
mode = OB_MODE_WEIGHT_GPENCIL_LEGACY;
|
||||
}
|
||||
else {
|
||||
mode = OB_MODE_OBJECT;
|
||||
|
@ -619,7 +620,7 @@ static int gpencil_weightmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
ED_object_posemode_set_for_weight_paint(C, bmain, ob, is_mode_set);
|
||||
}
|
||||
|
||||
if (mode == OB_MODE_WEIGHT_GPENCIL) {
|
||||
if (mode == OB_MODE_WEIGHT_GPENCIL_LEGACY) {
|
||||
/* Be sure we have brushes. */
|
||||
BKE_paint_ensure(ts, (Paint **)&ts->gp_weightpaint);
|
||||
|
||||
|
@ -710,7 +711,7 @@ static int gpencil_vertexmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
gpd->flag ^= GP_DATA_STROKE_VERTEXMODE;
|
||||
/* set mode */
|
||||
if (gpd->flag & GP_DATA_STROKE_VERTEXMODE) {
|
||||
mode = OB_MODE_VERTEX_GPENCIL;
|
||||
mode = OB_MODE_VERTEX_GPENCIL_LEGACY;
|
||||
}
|
||||
else {
|
||||
mode = OB_MODE_OBJECT;
|
||||
|
@ -725,7 +726,7 @@ static int gpencil_vertexmode_toggle_exec(bContext *C, wmOperator *op)
|
|||
ob->mode = mode;
|
||||
}
|
||||
|
||||
if (mode == OB_MODE_VERTEX_GPENCIL) {
|
||||
if (mode == OB_MODE_VERTEX_GPENCIL_LEGACY) {
|
||||
/* Be sure we have brushes.
|
||||
* Need Draw as well (used for Palettes). */
|
||||
BKE_paint_ensure(ts, (Paint **)&ts->gp_paint);
|
||||
|
@ -5764,8 +5765,9 @@ bool ED_object_gpencil_exit(Main *bmain, Object *ob)
|
|||
GP_DATA_STROKE_WEIGHTMODE | GP_DATA_STROKE_VERTEXMODE);
|
||||
|
||||
ob->restore_mode = ob->mode;
|
||||
ob->mode &= ~(OB_MODE_PAINT_GPENCIL | OB_MODE_EDIT_GPENCIL | OB_MODE_SCULPT_GPENCIL |
|
||||
OB_MODE_WEIGHT_GPENCIL | OB_MODE_VERTEX_GPENCIL);
|
||||
ob->mode &= ~(OB_MODE_PAINT_GPENCIL_LEGACY | OB_MODE_EDIT_GPENCIL_LEGACY |
|
||||
OB_MODE_SCULPT_GPENCIL_LEGACY | OB_MODE_WEIGHT_GPENCIL_LEGACY |
|
||||
OB_MODE_VERTEX_GPENCIL_LEGACY);
|
||||
|
||||
/* Inform all CoW versions that we changed the mode. */
|
||||
DEG_id_tag_update_ex(bmain, &ob->id, ID_RECALC_COPY_ON_WRITE);
|
||||
|
@ -5793,7 +5795,7 @@ static bool gpencil_merge_by_distance_poll(bContext *C)
|
|||
|
||||
bGPDlayer *gpl = BKE_gpencil_layer_active_get(gpd);
|
||||
|
||||
return ((gpl != NULL) && (ob->mode == OB_MODE_EDIT_GPENCIL));
|
||||
return ((gpl != NULL) && (ob->mode == OB_MODE_EDIT_GPENCIL_LEGACY));
|
||||
}
|
||||
|
||||
static int gpencil_merge_by_distance_exec(bContext *C, wmOperator *op)
|
||||
|
@ -5880,7 +5882,7 @@ static bool gpencil_stroke_normalize_poll(bContext *C)
|
|||
|
||||
bGPDlayer *gpl = BKE_gpencil_layer_active_get(gpd);
|
||||
|
||||
return ((gpl != NULL) && (ob->mode == OB_MODE_EDIT_GPENCIL));
|
||||
return ((gpl != NULL) && (ob->mode == OB_MODE_EDIT_GPENCIL_LEGACY));
|
||||
}
|
||||
|
||||
static void gpencil_stroke_normalize_ui(bContext *UNUSED(C), wmOperator *op)
|
||||
|
|
|
@ -2334,7 +2334,7 @@ static bool gpencil_fill_poll(bContext *C)
|
|||
ScrArea *area = CTX_wm_area(C);
|
||||
if (area->spacetype == SPACE_VIEW3D) {
|
||||
if ((obact == NULL) || (obact->type != OB_GPENCIL_LEGACY) ||
|
||||
(obact->mode != OB_MODE_PAINT_GPENCIL))
|
||||
(obact->mode != OB_MODE_PAINT_GPENCIL_LEGACY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1912,7 +1912,8 @@ static Brush *gpencil_get_default_eraser(Main *bmain, ToolSettings *ts)
|
|||
if (brush->gpencil_settings == NULL) {
|
||||
continue;
|
||||
}
|
||||
if ((brush->ob_mode == OB_MODE_PAINT_GPENCIL) && (brush->gpencil_tool == GPAINT_TOOL_ERASE)) {
|
||||
if ((brush->ob_mode == OB_MODE_PAINT_GPENCIL_LEGACY) &&
|
||||
(brush->gpencil_tool == GPAINT_TOOL_ERASE)) {
|
||||
/* save first eraser to use later if no default */
|
||||
if (brush_dft == NULL) {
|
||||
brush_dft = brush;
|
||||
|
@ -1930,7 +1931,7 @@ static Brush *gpencil_get_default_eraser(Main *bmain, ToolSettings *ts)
|
|||
}
|
||||
/* create a new soft eraser brush */
|
||||
|
||||
brush_dft = BKE_brush_add_gpencil(bmain, ts, "Soft Eraser", OB_MODE_PAINT_GPENCIL);
|
||||
brush_dft = BKE_brush_add_gpencil(bmain, ts, "Soft Eraser", OB_MODE_PAINT_GPENCIL_LEGACY);
|
||||
brush_dft->size = 30.0f;
|
||||
brush_dft->gpencil_settings->flag |= GP_BRUSH_DEFAULT_ERASER;
|
||||
brush_dft->gpencil_settings->icon_id = GP_BRUSH_ICON_ERASE_SOFT;
|
||||
|
@ -3335,7 +3336,7 @@ static int gpencil_draw_invoke(bContext *C, wmOperator *op, const wmEvent *event
|
|||
p->gpd->flag &= ~GP_DATA_STROKE_WEIGHTMODE;
|
||||
/* set workspace mode */
|
||||
ob->restore_mode = ob->mode;
|
||||
ob->mode = OB_MODE_PAINT_GPENCIL;
|
||||
ob->mode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
/* redraw mode on screen */
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_MODE, NULL);
|
||||
}
|
||||
|
|
|
@ -543,10 +543,10 @@ static int gpencil_select_random_exec(bContext *C, wmOperator *op)
|
|||
const bool is_curve_edit = (bool)GPENCIL_CURVE_EDIT_SESSIONS_ON(gpd);
|
||||
|
||||
int selectmode;
|
||||
if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL) {
|
||||
if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL_LEGACY) {
|
||||
selectmode = gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt);
|
||||
}
|
||||
else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL) {
|
||||
else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL_LEGACY) {
|
||||
selectmode = gpencil_select_mode_from_vertex(ts->gpencil_selectmode_vertex);
|
||||
}
|
||||
else {
|
||||
|
@ -1671,10 +1671,10 @@ static int gpencil_circle_select_exec(bContext *C, wmOperator *op)
|
|||
const bool is_curve_edit = (bool)GPENCIL_CURVE_EDIT_SESSIONS_ON(gpd);
|
||||
|
||||
int selectmode;
|
||||
if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL) {
|
||||
if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL_LEGACY) {
|
||||
selectmode = gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt);
|
||||
}
|
||||
else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL) {
|
||||
else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL_LEGACY) {
|
||||
selectmode = gpencil_select_mode_from_vertex(ts->gpencil_selectmode_vertex);
|
||||
}
|
||||
else {
|
||||
|
@ -2161,10 +2161,10 @@ static int gpencil_generic_select_exec(bContext *C,
|
|||
const bool is_curve_edit = (bool)GPENCIL_CURVE_EDIT_SESSIONS_ON(gpd);
|
||||
|
||||
int selectmode;
|
||||
if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL) {
|
||||
if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL_LEGACY) {
|
||||
selectmode = gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt);
|
||||
}
|
||||
else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL) {
|
||||
else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL_LEGACY) {
|
||||
selectmode = gpencil_select_mode_from_vertex(ts->gpencil_selectmode_vertex);
|
||||
}
|
||||
else {
|
||||
|
@ -2436,11 +2436,11 @@ static int gpencil_select_exec(bContext *C, wmOperator *op)
|
|||
}
|
||||
|
||||
/* if select mode is stroke, use whole stroke */
|
||||
if ((ob) && (ob->mode == OB_MODE_SCULPT_GPENCIL)) {
|
||||
if ((ob) && (ob->mode == OB_MODE_SCULPT_GPENCIL_LEGACY)) {
|
||||
whole |= (bool)(gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt) ==
|
||||
GP_SELECTMODE_STROKE);
|
||||
}
|
||||
else if ((ob) && (ob->mode == OB_MODE_VERTEX_GPENCIL)) {
|
||||
else if ((ob) && (ob->mode == OB_MODE_VERTEX_GPENCIL_LEGACY)) {
|
||||
whole |= (bool)(gpencil_select_mode_from_vertex(ts->gpencil_selectmode_sculpt) ==
|
||||
GP_SELECTMODE_STROKE);
|
||||
}
|
||||
|
@ -2602,10 +2602,10 @@ static int gpencil_select_exec(bContext *C, wmOperator *op)
|
|||
|
||||
/* expand selection to segment */
|
||||
int selectmode;
|
||||
if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL) {
|
||||
if (ob && ob->mode == OB_MODE_SCULPT_GPENCIL_LEGACY) {
|
||||
selectmode = gpencil_select_mode_from_sculpt(ts->gpencil_selectmode_sculpt);
|
||||
}
|
||||
else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL) {
|
||||
else if (ob && ob->mode == OB_MODE_VERTEX_GPENCIL_LEGACY) {
|
||||
selectmode = gpencil_select_mode_from_vertex(ts->gpencil_selectmode_vertex);
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -1789,7 +1789,7 @@ float ED_gpencil_radial_control_scale(bContext *C,
|
|||
const int mval[2])
|
||||
{
|
||||
float scale_fac = 1.0f;
|
||||
if ((brush && brush->gpencil_settings) && (brush->ob_mode == OB_MODE_PAINT_GPENCIL) &&
|
||||
if ((brush && brush->gpencil_settings) && (brush->ob_mode == OB_MODE_PAINT_GPENCIL_LEGACY) &&
|
||||
(brush->gpencil_tool == GPAINT_TOOL_DRAW))
|
||||
{
|
||||
float cursor_radius = ED_gpencil_cursor_radius(C, mval[0], mval[1]);
|
||||
|
@ -2029,7 +2029,7 @@ void ED_gpencil_setup_modes(bContext *C, bGPdata *gpd, int newmode)
|
|||
}
|
||||
|
||||
switch (newmode) {
|
||||
case OB_MODE_EDIT_GPENCIL:
|
||||
case OB_MODE_EDIT_GPENCIL_LEGACY:
|
||||
gpd->flag |= GP_DATA_STROKE_EDITMODE;
|
||||
gpd->flag &= ~GP_DATA_STROKE_PAINTMODE;
|
||||
gpd->flag &= ~GP_DATA_STROKE_SCULPTMODE;
|
||||
|
@ -2037,7 +2037,7 @@ void ED_gpencil_setup_modes(bContext *C, bGPdata *gpd, int newmode)
|
|||
gpd->flag &= ~GP_DATA_STROKE_VERTEXMODE;
|
||||
ED_gpencil_toggle_brush_cursor(C, false, NULL);
|
||||
break;
|
||||
case OB_MODE_PAINT_GPENCIL:
|
||||
case OB_MODE_PAINT_GPENCIL_LEGACY:
|
||||
gpd->flag &= ~GP_DATA_STROKE_EDITMODE;
|
||||
gpd->flag |= GP_DATA_STROKE_PAINTMODE;
|
||||
gpd->flag &= ~GP_DATA_STROKE_SCULPTMODE;
|
||||
|
@ -2045,7 +2045,7 @@ void ED_gpencil_setup_modes(bContext *C, bGPdata *gpd, int newmode)
|
|||
gpd->flag &= ~GP_DATA_STROKE_VERTEXMODE;
|
||||
ED_gpencil_toggle_brush_cursor(C, true, NULL);
|
||||
break;
|
||||
case OB_MODE_SCULPT_GPENCIL:
|
||||
case OB_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
gpd->flag &= ~GP_DATA_STROKE_EDITMODE;
|
||||
gpd->flag &= ~GP_DATA_STROKE_PAINTMODE;
|
||||
gpd->flag |= GP_DATA_STROKE_SCULPTMODE;
|
||||
|
@ -2053,7 +2053,7 @@ void ED_gpencil_setup_modes(bContext *C, bGPdata *gpd, int newmode)
|
|||
gpd->flag &= ~GP_DATA_STROKE_VERTEXMODE;
|
||||
ED_gpencil_toggle_brush_cursor(C, true, NULL);
|
||||
break;
|
||||
case OB_MODE_WEIGHT_GPENCIL:
|
||||
case OB_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
gpd->flag &= ~GP_DATA_STROKE_EDITMODE;
|
||||
gpd->flag &= ~GP_DATA_STROKE_PAINTMODE;
|
||||
gpd->flag &= ~GP_DATA_STROKE_SCULPTMODE;
|
||||
|
@ -2061,7 +2061,7 @@ void ED_gpencil_setup_modes(bContext *C, bGPdata *gpd, int newmode)
|
|||
gpd->flag &= ~GP_DATA_STROKE_VERTEXMODE;
|
||||
ED_gpencil_toggle_brush_cursor(C, true, NULL);
|
||||
break;
|
||||
case OB_MODE_VERTEX_GPENCIL:
|
||||
case OB_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
gpd->flag &= ~GP_DATA_STROKE_EDITMODE;
|
||||
gpd->flag &= ~GP_DATA_STROKE_PAINTMODE;
|
||||
gpd->flag &= ~GP_DATA_STROKE_SCULPTMODE;
|
||||
|
|
|
@ -338,7 +338,7 @@ static bool gpencil_transform_fill_poll(bContext *C)
|
|||
|
||||
bGPDlayer *gpl = BKE_gpencil_layer_active_get(gpd);
|
||||
|
||||
if ((gpl == NULL) || (ob->mode != OB_MODE_EDIT_GPENCIL)) {
|
||||
if ((gpl == NULL) || (ob->mode != OB_MODE_EDIT_GPENCIL_LEGACY)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -702,8 +702,8 @@ static bool gpencil_vertexpaint_brush_init(bContext *C, wmOperator *op)
|
|||
Scene *scene = CTX_data_scene(C);
|
||||
ToolSettings *ts = CTX_data_tool_settings(C);
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
Paint *paint = ob->mode == OB_MODE_VERTEX_GPENCIL ? &ts->gp_vertexpaint->paint :
|
||||
&ts->gp_paint->paint;
|
||||
Paint *paint = ob->mode == OB_MODE_VERTEX_GPENCIL_LEGACY ? &ts->gp_vertexpaint->paint :
|
||||
&ts->gp_paint->paint;
|
||||
|
||||
/* set the brush using the tool */
|
||||
tGP_BrushVertexpaintData *gso;
|
||||
|
@ -990,8 +990,8 @@ static bool gpencil_vertexpaint_brush_do_frame(bContext *C,
|
|||
const float bound_mat[4][4])
|
||||
{
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
const char tool = ob->mode == OB_MODE_VERTEX_GPENCIL ? gso->brush->gpencil_vertex_tool :
|
||||
gso->brush->gpencil_tool;
|
||||
const char tool = ob->mode == OB_MODE_VERTEX_GPENCIL_LEGACY ? gso->brush->gpencil_vertex_tool :
|
||||
gso->brush->gpencil_tool;
|
||||
const int radius = (gso->brush->flag & GP_BRUSH_USE_PRESSURE) ?
|
||||
gso->brush->size * gso->pressure :
|
||||
gso->brush->size;
|
||||
|
|
|
@ -2480,17 +2480,17 @@ int UI_icon_from_object_mode(const int mode)
|
|||
case OB_MODE_OBJECT:
|
||||
return ICON_OBJECT_DATAMODE;
|
||||
case OB_MODE_EDIT:
|
||||
case OB_MODE_EDIT_GPENCIL:
|
||||
case OB_MODE_EDIT_GPENCIL_LEGACY:
|
||||
return ICON_EDITMODE_HLT;
|
||||
case OB_MODE_SCULPT:
|
||||
case OB_MODE_SCULPT_GPENCIL:
|
||||
case OB_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
case OB_MODE_SCULPT_CURVES:
|
||||
return ICON_SCULPTMODE_HLT;
|
||||
case OB_MODE_VERTEX_PAINT:
|
||||
case OB_MODE_VERTEX_GPENCIL:
|
||||
case OB_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
return ICON_VPAINT_HLT;
|
||||
case OB_MODE_WEIGHT_PAINT:
|
||||
case OB_MODE_WEIGHT_GPENCIL:
|
||||
case OB_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
return ICON_WPAINT_HLT;
|
||||
case OB_MODE_TEXTURE_PAINT:
|
||||
return ICON_TPAINT_HLT;
|
||||
|
@ -2498,7 +2498,7 @@ int UI_icon_from_object_mode(const int mode)
|
|||
return ICON_PARTICLEMODE;
|
||||
case OB_MODE_POSE:
|
||||
return ICON_POSE_HLT;
|
||||
case OB_MODE_PAINT_GPENCIL:
|
||||
case OB_MODE_PAINT_GPENCIL_LEGACY:
|
||||
return ICON_GREASEPENCIL;
|
||||
}
|
||||
return ICON_NONE;
|
||||
|
|
|
@ -1760,7 +1760,7 @@ static int object_mode_set_exec(bContext *C, wmOperator *op)
|
|||
|
||||
/* by default the operator assume is a mesh, but if gp object change mode */
|
||||
if ((ob->type == OB_GPENCIL_LEGACY) && (mode == OB_MODE_EDIT)) {
|
||||
mode = OB_MODE_EDIT_GPENCIL;
|
||||
mode = OB_MODE_EDIT_GPENCIL_LEGACY;
|
||||
}
|
||||
|
||||
if (!ED_object_mode_compat_test(ob, mode)) {
|
||||
|
|
|
@ -81,24 +81,24 @@ static const char *object_mode_op_string(eObjectMode mode)
|
|||
if (mode == OB_MODE_POSE) {
|
||||
return "OBJECT_OT_posemode_toggle";
|
||||
}
|
||||
if (mode == OB_MODE_EDIT_GPENCIL) {
|
||||
if (mode == OB_MODE_EDIT_GPENCIL_LEGACY) {
|
||||
return "GPENCIL_OT_editmode_toggle";
|
||||
}
|
||||
if (U.experimental.use_grease_pencil_version3) {
|
||||
if (mode == OB_MODE_PAINT_GPENCIL) {
|
||||
if (mode == OB_MODE_PAINT_GPENCIL_LEGACY) {
|
||||
return "GREASE_PENCIL_OT_draw_mode_toggle";
|
||||
}
|
||||
}
|
||||
if (mode == OB_MODE_PAINT_GPENCIL) {
|
||||
if (mode == OB_MODE_PAINT_GPENCIL_LEGACY) {
|
||||
return "GPENCIL_OT_paintmode_toggle";
|
||||
}
|
||||
if (mode == OB_MODE_SCULPT_GPENCIL) {
|
||||
if (mode == OB_MODE_SCULPT_GPENCIL_LEGACY) {
|
||||
return "GPENCIL_OT_sculptmode_toggle";
|
||||
}
|
||||
if (mode == OB_MODE_WEIGHT_GPENCIL) {
|
||||
if (mode == OB_MODE_WEIGHT_GPENCIL_LEGACY) {
|
||||
return "GPENCIL_OT_weightmode_toggle";
|
||||
}
|
||||
if (mode == OB_MODE_VERTEX_GPENCIL) {
|
||||
if (mode == OB_MODE_VERTEX_GPENCIL_LEGACY) {
|
||||
return "GPENCIL_OT_vertexmode_toggle";
|
||||
}
|
||||
if (mode == OB_MODE_SCULPT_CURVES) {
|
||||
|
@ -146,7 +146,7 @@ bool ED_object_mode_compat_test(const Object *ob, eObjectMode mode)
|
|||
}
|
||||
break;
|
||||
case OB_GPENCIL_LEGACY:
|
||||
if (mode & (OB_MODE_EDIT_GPENCIL | OB_MODE_ALL_PAINT_GPENCIL)) {
|
||||
if (mode & (OB_MODE_EDIT_GPENCIL_LEGACY | OB_MODE_ALL_PAINT_GPENCIL)) {
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
@ -156,7 +156,7 @@ bool ED_object_mode_compat_test(const Object *ob, eObjectMode mode)
|
|||
}
|
||||
break;
|
||||
case OB_GREASE_PENCIL:
|
||||
if (mode & (OB_MODE_EDIT | OB_MODE_PAINT_GPENCIL)) {
|
||||
if (mode & (OB_MODE_EDIT | OB_MODE_PAINT_GPENCIL_LEGACY)) {
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
@ -208,7 +208,7 @@ bool ED_object_mode_set_ex(bContext *C, eObjectMode mode, bool use_undo, ReportL
|
|||
}
|
||||
|
||||
if ((ob->type == OB_GPENCIL_LEGACY) && (mode == OB_MODE_EDIT)) {
|
||||
mode = OB_MODE_EDIT_GPENCIL;
|
||||
mode = OB_MODE_EDIT_GPENCIL_LEGACY;
|
||||
}
|
||||
|
||||
if (ob->mode == mode) {
|
||||
|
|
|
@ -188,7 +188,7 @@ static void grease_pencil_draw_mode_enter(bContext *C)
|
|||
GpPaint *grease_pencil_paint = scene->toolsettings->gp_paint;
|
||||
BKE_paint_ensure(scene->toolsettings, (Paint **)&grease_pencil_paint);
|
||||
|
||||
ob->mode = OB_MODE_PAINT_GPENCIL;
|
||||
ob->mode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
|
||||
/* TODO: Setup cursor color. BKE_paint_init() could be used, but creates an additional brush. */
|
||||
/* TODO: Call ED_paint_cursor_start(...) */
|
||||
|
@ -212,10 +212,10 @@ static int grease_pencil_draw_mode_toggle_exec(bContext *C, wmOperator *op)
|
|||
Object *ob = CTX_data_active_object(C);
|
||||
wmMsgBus *mbus = CTX_wm_message_bus(C);
|
||||
|
||||
const bool is_mode_set = ob->mode == OB_MODE_PAINT_GPENCIL;
|
||||
const bool is_mode_set = ob->mode == OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
|
||||
if (is_mode_set) {
|
||||
if (!ED_object_mode_compat_set(C, ob, OB_MODE_PAINT_GPENCIL, op->reports)) {
|
||||
if (!ED_object_mode_compat_set(C, ob, OB_MODE_PAINT_GPENCIL_LEGACY, op->reports)) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,7 +90,7 @@ static eGPBrush_Presets gpencil_get_brush_preset_from_tool(bToolRef *tool,
|
|||
enum eContextObjectMode mode)
|
||||
{
|
||||
switch (mode) {
|
||||
case CTX_MODE_PAINT_GPENCIL: {
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY: {
|
||||
if (STREQ(tool->runtime->data_block, "DRAW")) {
|
||||
return GP_BRUSH_PRESET_PENCIL;
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ static eGPBrush_Presets gpencil_get_brush_preset_from_tool(bToolRef *tool,
|
|||
}
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_SCULPT_GPENCIL: {
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY: {
|
||||
if (STREQ(tool->runtime->data_block, "SMOOTH")) {
|
||||
return GP_BRUSH_PRESET_SMOOTH_STROKE;
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ static eGPBrush_Presets gpencil_get_brush_preset_from_tool(bToolRef *tool,
|
|||
}
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_WEIGHT_GPENCIL: {
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY: {
|
||||
if (STREQ(tool->runtime->data_block, "DRAW")) {
|
||||
return GP_BRUSH_PRESET_WEIGHT_DRAW;
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ static eGPBrush_Presets gpencil_get_brush_preset_from_tool(bToolRef *tool,
|
|||
}
|
||||
break;
|
||||
}
|
||||
case CTX_MODE_VERTEX_GPENCIL: {
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY: {
|
||||
if (STREQ(tool->runtime->data_block, "DRAW")) {
|
||||
return GP_BRUSH_PRESET_VERTEX_DRAW;
|
||||
}
|
||||
|
@ -208,19 +208,19 @@ static int brush_add_gpencil_exec(bContext *C, wmOperator * /*op*/)
|
|||
|
||||
/* Get Brush mode base on context mode. */
|
||||
const enum eContextObjectMode mode = CTX_data_mode_enum(C);
|
||||
eObjectMode obmode = OB_MODE_PAINT_GPENCIL;
|
||||
eObjectMode obmode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
switch (mode) {
|
||||
case CTX_MODE_PAINT_GPENCIL:
|
||||
obmode = OB_MODE_PAINT_GPENCIL;
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY:
|
||||
obmode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
break;
|
||||
case CTX_MODE_SCULPT_GPENCIL:
|
||||
obmode = OB_MODE_SCULPT_GPENCIL;
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
obmode = OB_MODE_SCULPT_GPENCIL_LEGACY;
|
||||
break;
|
||||
case CTX_MODE_WEIGHT_GPENCIL:
|
||||
obmode = OB_MODE_WEIGHT_GPENCIL;
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
obmode = OB_MODE_WEIGHT_GPENCIL_LEGACY;
|
||||
break;
|
||||
case CTX_MODE_VERTEX_GPENCIL:
|
||||
obmode = OB_MODE_VERTEX_GPENCIL;
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
obmode = OB_MODE_VERTEX_GPENCIL_LEGACY;
|
||||
break;
|
||||
default:
|
||||
return OPERATOR_CANCELLED;
|
||||
|
|
|
@ -1753,16 +1753,16 @@ void ED_view3d_buttons_region_layout_ex(const bContext *C,
|
|||
case CTX_MODE_OBJECT:
|
||||
ARRAY_SET_ITEMS(contexts, ".objectmode");
|
||||
break;
|
||||
case CTX_MODE_PAINT_GPENCIL:
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_paint");
|
||||
break;
|
||||
case CTX_MODE_SCULPT_GPENCIL:
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_sculpt");
|
||||
break;
|
||||
case CTX_MODE_WEIGHT_GPENCIL:
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_weight");
|
||||
break;
|
||||
case CTX_MODE_VERTEX_GPENCIL:
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_vertex");
|
||||
break;
|
||||
case CTX_MODE_SCULPT_CURVES:
|
||||
|
@ -1773,19 +1773,19 @@ void ED_view3d_buttons_region_layout_ex(const bContext *C,
|
|||
}
|
||||
|
||||
switch (mode) {
|
||||
case CTX_MODE_PAINT_GPENCIL:
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_paint");
|
||||
break;
|
||||
case CTX_MODE_SCULPT_GPENCIL:
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_sculpt");
|
||||
break;
|
||||
case CTX_MODE_WEIGHT_GPENCIL:
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_weight");
|
||||
break;
|
||||
case CTX_MODE_EDIT_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_edit");
|
||||
break;
|
||||
case CTX_MODE_VERTEX_GPENCIL:
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
ARRAY_SET_ITEMS(contexts, ".greasepencil_vertex");
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -148,7 +148,7 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
|
|||
t->flag = 0;
|
||||
|
||||
if (obact && !(t->options & (CTX_CURSOR | CTX_TEXTURE_SPACE)) &&
|
||||
ELEM(object_mode, OB_MODE_EDIT, OB_MODE_EDIT_GPENCIL))
|
||||
ELEM(object_mode, OB_MODE_EDIT, OB_MODE_EDIT_GPENCIL_LEGACY))
|
||||
{
|
||||
t->obedit_type = obact->type;
|
||||
}
|
||||
|
|
|
@ -142,7 +142,7 @@ static void gizmo_mesh_extrude_setup(const bContext *C, wmGizmoGroup *gzgroup)
|
|||
{
|
||||
const char *op_idname = NULL;
|
||||
/* Grease pencil does not use `obedit`. */
|
||||
/* GPXX: Remove if OB_MODE_EDIT_GPENCIL is merged with OB_MODE_EDIT */
|
||||
/* GPXX: Remove if OB_MODE_EDIT_GPENCIL_LEGACY is merged with OB_MODE_EDIT */
|
||||
const Object *obact = CTX_data_active_object(C);
|
||||
if (obact->type == OB_GPENCIL_LEGACY) {
|
||||
op_idname = "GPENCIL_OT_extrude_move";
|
||||
|
|
|
@ -24,11 +24,11 @@ typedef enum eObjectMode {
|
|||
OB_MODE_TEXTURE_PAINT = 1 << 4,
|
||||
OB_MODE_PARTICLE_EDIT = 1 << 5,
|
||||
OB_MODE_POSE = 1 << 6,
|
||||
OB_MODE_EDIT_GPENCIL = 1 << 7,
|
||||
OB_MODE_PAINT_GPENCIL = 1 << 8,
|
||||
OB_MODE_SCULPT_GPENCIL = 1 << 9,
|
||||
OB_MODE_WEIGHT_GPENCIL = 1 << 10,
|
||||
OB_MODE_VERTEX_GPENCIL = 1 << 11,
|
||||
OB_MODE_EDIT_GPENCIL_LEGACY = 1 << 7,
|
||||
OB_MODE_PAINT_GPENCIL_LEGACY = 1 << 8,
|
||||
OB_MODE_SCULPT_GPENCIL_LEGACY = 1 << 9,
|
||||
OB_MODE_WEIGHT_GPENCIL_LEGACY = 1 << 10,
|
||||
OB_MODE_VERTEX_GPENCIL_LEGACY = 1 << 11,
|
||||
OB_MODE_SCULPT_CURVES = 1 << 12,
|
||||
} eObjectMode;
|
||||
|
||||
|
@ -47,14 +47,14 @@ typedef enum eDrawType {
|
|||
(OB_MODE_SCULPT | OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT)
|
||||
|
||||
#define OB_MODE_ALL_PAINT_GPENCIL \
|
||||
(OB_MODE_PAINT_GPENCIL | OB_MODE_SCULPT_GPENCIL | OB_MODE_WEIGHT_GPENCIL | \
|
||||
OB_MODE_VERTEX_GPENCIL)
|
||||
(OB_MODE_PAINT_GPENCIL_LEGACY | OB_MODE_SCULPT_GPENCIL_LEGACY | OB_MODE_WEIGHT_GPENCIL_LEGACY | \
|
||||
OB_MODE_VERTEX_GPENCIL_LEGACY)
|
||||
|
||||
/** Any mode that uses Object.sculpt. */
|
||||
#define OB_MODE_ALL_SCULPT (OB_MODE_SCULPT | OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT)
|
||||
|
||||
/** Any mode that uses weightpaint. */
|
||||
#define OB_MODE_ALL_WEIGHT_PAINT (OB_MODE_WEIGHT_PAINT | OB_MODE_WEIGHT_GPENCIL)
|
||||
#define OB_MODE_ALL_WEIGHT_PAINT (OB_MODE_WEIGHT_PAINT | OB_MODE_WEIGHT_GPENCIL_LEGACY)
|
||||
|
||||
/**
|
||||
* Any mode that has data or for Grease Pencil modes, we need to free when switching modes,
|
||||
|
@ -62,8 +62,8 @@ typedef enum eDrawType {
|
|||
*/
|
||||
#define OB_MODE_ALL_MODE_DATA \
|
||||
(OB_MODE_EDIT | OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_SCULPT | OB_MODE_POSE | \
|
||||
OB_MODE_PAINT_GPENCIL | OB_MODE_EDIT_GPENCIL | OB_MODE_SCULPT_GPENCIL | \
|
||||
OB_MODE_WEIGHT_GPENCIL | OB_MODE_VERTEX_GPENCIL | OB_MODE_SCULPT_CURVES)
|
||||
OB_MODE_PAINT_GPENCIL_LEGACY | OB_MODE_EDIT_GPENCIL_LEGACY | OB_MODE_SCULPT_GPENCIL_LEGACY | \
|
||||
OB_MODE_WEIGHT_GPENCIL_LEGACY | OB_MODE_VERTEX_GPENCIL_LEGACY | OB_MODE_SCULPT_CURVES)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -1060,7 +1060,7 @@ static void rna_BrushGpencilSettings_default_eraser_update(Main *bmain,
|
|||
for (Brush *brush = static_cast<Brush *>(bmain->brushes.first); brush;
|
||||
brush = static_cast<Brush *>(brush->id.next))
|
||||
{
|
||||
if ((brush != brush_cur) && (brush->ob_mode == OB_MODE_PAINT_GPENCIL) &&
|
||||
if ((brush != brush_cur) && (brush->ob_mode == OB_MODE_PAINT_GPENCIL_LEGACY) &&
|
||||
(brush->gpencil_tool == GPAINT_TOOL_ERASE))
|
||||
{
|
||||
brush->gpencil_settings->flag &= ~GP_BRUSH_DEFAULT_ERASER;
|
||||
|
@ -3708,11 +3708,11 @@ static void rna_def_brush(BlenderRNA *brna)
|
|||
RNA_def_property_ui_text(prop, "Use Texture", "Use this brush in texture paint mode");
|
||||
|
||||
prop = RNA_def_property(srna, "use_paint_grease_pencil", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "ob_mode", OB_MODE_PAINT_GPENCIL);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "ob_mode", OB_MODE_PAINT_GPENCIL_LEGACY);
|
||||
RNA_def_property_ui_text(prop, "Use Paint", "Use this brush in grease pencil drawing mode");
|
||||
|
||||
prop = RNA_def_property(srna, "use_vertex_grease_pencil", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "ob_mode", OB_MODE_VERTEX_GPENCIL);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "ob_mode", OB_MODE_VERTEX_GPENCIL_LEGACY);
|
||||
RNA_def_property_ui_text(
|
||||
prop, "Use Vertex", "Use this brush in grease pencil vertex color mode");
|
||||
|
||||
|
|
|
@ -39,11 +39,11 @@ const EnumPropertyItem rna_enum_context_mode_items[] = {
|
|||
{CTX_MODE_PAINT_TEXTURE, "PAINT_TEXTURE", 0, "Texture Paint", ""},
|
||||
{CTX_MODE_PARTICLE, "PARTICLE", 0, "Particle", ""},
|
||||
{CTX_MODE_OBJECT, "OBJECT", 0, "Object", ""},
|
||||
{CTX_MODE_PAINT_GPENCIL, "PAINT_GPENCIL", 0, "Grease Pencil Paint", ""},
|
||||
{CTX_MODE_PAINT_GPENCIL_LEGACY, "PAINT_GPENCIL", 0, "Grease Pencil Paint", ""},
|
||||
{CTX_MODE_EDIT_GPENCIL_LEGACY, "EDIT_GPENCIL", 0, "Grease Pencil Edit", ""},
|
||||
{CTX_MODE_SCULPT_GPENCIL, "SCULPT_GPENCIL", 0, "Grease Pencil Sculpt", ""},
|
||||
{CTX_MODE_WEIGHT_GPENCIL, "WEIGHT_GPENCIL", 0, "Grease Pencil Weight Paint", ""},
|
||||
{CTX_MODE_VERTEX_GPENCIL, "VERTEX_GPENCIL", 0, "Grease Pencil Vertex Paint", ""},
|
||||
{CTX_MODE_SCULPT_GPENCIL_LEGACY, "SCULPT_GPENCIL", 0, "Grease Pencil Sculpt", ""},
|
||||
{CTX_MODE_WEIGHT_GPENCIL_LEGACY, "WEIGHT_GPENCIL", 0, "Grease Pencil Weight Paint", ""},
|
||||
{CTX_MODE_VERTEX_GPENCIL_LEGACY, "VERTEX_GPENCIL", 0, "Grease Pencil Vertex Paint", ""},
|
||||
{CTX_MODE_SCULPT_CURVES, "SCULPT_CURVES", 0, "Curves Sculpt", ""},
|
||||
{0, nullptr, 0, nullptr, nullptr},
|
||||
};
|
||||
|
|
|
@ -60,27 +60,27 @@ const EnumPropertyItem rna_enum_object_mode_items[] = {
|
|||
{OB_MODE_WEIGHT_PAINT, "WEIGHT_PAINT", ICON_WPAINT_HLT, "Weight Paint", ""},
|
||||
{OB_MODE_TEXTURE_PAINT, "TEXTURE_PAINT", ICON_TPAINT_HLT, "Texture Paint", ""},
|
||||
{OB_MODE_PARTICLE_EDIT, "PARTICLE_EDIT", ICON_PARTICLEMODE, "Particle Edit", ""},
|
||||
{OB_MODE_EDIT_GPENCIL,
|
||||
{OB_MODE_EDIT_GPENCIL_LEGACY,
|
||||
"EDIT_GPENCIL",
|
||||
ICON_EDITMODE_HLT,
|
||||
"Edit Mode",
|
||||
"Edit Grease Pencil Strokes"},
|
||||
{OB_MODE_SCULPT_GPENCIL,
|
||||
{OB_MODE_SCULPT_GPENCIL_LEGACY,
|
||||
"SCULPT_GPENCIL",
|
||||
ICON_SCULPTMODE_HLT,
|
||||
"Sculpt Mode",
|
||||
"Sculpt Grease Pencil Strokes"},
|
||||
{OB_MODE_PAINT_GPENCIL,
|
||||
{OB_MODE_PAINT_GPENCIL_LEGACY,
|
||||
"PAINT_GPENCIL",
|
||||
ICON_GREASEPENCIL,
|
||||
"Draw Mode",
|
||||
"Paint Grease Pencil Strokes"},
|
||||
{OB_MODE_WEIGHT_GPENCIL,
|
||||
{OB_MODE_WEIGHT_GPENCIL_LEGACY,
|
||||
"WEIGHT_GPENCIL",
|
||||
ICON_WPAINT_HLT,
|
||||
"Weight Paint",
|
||||
"Grease Pencil Weight Paint Strokes"},
|
||||
{OB_MODE_VERTEX_GPENCIL,
|
||||
{OB_MODE_VERTEX_GPENCIL_LEGACY,
|
||||
"VERTEX_GPENCIL",
|
||||
ICON_VPAINT_HLT,
|
||||
"Vertex Paint",
|
||||
|
@ -98,27 +98,27 @@ const EnumPropertyItem rna_enum_workspace_object_mode_items[] = {
|
|||
{OB_MODE_WEIGHT_PAINT, "WEIGHT_PAINT", ICON_WPAINT_HLT, "Weight Paint", ""},
|
||||
{OB_MODE_TEXTURE_PAINT, "TEXTURE_PAINT", ICON_TPAINT_HLT, "Texture Paint", ""},
|
||||
{OB_MODE_PARTICLE_EDIT, "PARTICLE_EDIT", ICON_PARTICLEMODE, "Particle Edit", ""},
|
||||
{OB_MODE_EDIT_GPENCIL,
|
||||
{OB_MODE_EDIT_GPENCIL_LEGACY,
|
||||
"EDIT_GPENCIL",
|
||||
ICON_EDITMODE_HLT,
|
||||
"Grease Pencil Edit Mode",
|
||||
"Edit Grease Pencil Strokes"},
|
||||
{OB_MODE_SCULPT_GPENCIL,
|
||||
{OB_MODE_SCULPT_GPENCIL_LEGACY,
|
||||
"SCULPT_GPENCIL",
|
||||
ICON_SCULPTMODE_HLT,
|
||||
"Grease Pencil Sculpt Mode",
|
||||
"Sculpt Grease Pencil Strokes"},
|
||||
{OB_MODE_PAINT_GPENCIL,
|
||||
{OB_MODE_PAINT_GPENCIL_LEGACY,
|
||||
"PAINT_GPENCIL",
|
||||
ICON_GREASEPENCIL,
|
||||
"Grease Pencil Draw",
|
||||
"Paint Grease Pencil Strokes"},
|
||||
{OB_MODE_VERTEX_GPENCIL,
|
||||
{OB_MODE_VERTEX_GPENCIL_LEGACY,
|
||||
"VERTEX_GPENCIL",
|
||||
ICON_VPAINT_HLT,
|
||||
"Grease Pencil Vertex Paint",
|
||||
"Grease Pencil Vertex Paint Strokes"},
|
||||
{OB_MODE_WEIGHT_GPENCIL,
|
||||
{OB_MODE_WEIGHT_GPENCIL_LEGACY,
|
||||
"WEIGHT_GPENCIL",
|
||||
ICON_WPAINT_HLT,
|
||||
"Grease Pencil Weight Paint",
|
||||
|
|
|
@ -345,25 +345,25 @@ static bool rna_Brush_mode_with_tool_poll(PointerRNA *ptr, PointerRNA value)
|
|||
if (slot_index != brush->gpencil_tool) {
|
||||
return false;
|
||||
}
|
||||
mode = OB_MODE_PAINT_GPENCIL;
|
||||
mode = OB_MODE_PAINT_GPENCIL_LEGACY;
|
||||
}
|
||||
else if (paint_contains_brush_slot(&ts->gp_vertexpaint->paint, tslot, &slot_index)) {
|
||||
if (slot_index != brush->gpencil_vertex_tool) {
|
||||
return false;
|
||||
}
|
||||
mode = OB_MODE_VERTEX_GPENCIL;
|
||||
mode = OB_MODE_VERTEX_GPENCIL_LEGACY;
|
||||
}
|
||||
else if (paint_contains_brush_slot(&ts->gp_sculptpaint->paint, tslot, &slot_index)) {
|
||||
if (slot_index != brush->gpencil_sculpt_tool) {
|
||||
return false;
|
||||
}
|
||||
mode = OB_MODE_SCULPT_GPENCIL;
|
||||
mode = OB_MODE_SCULPT_GPENCIL_LEGACY;
|
||||
}
|
||||
else if (paint_contains_brush_slot(&ts->gp_weightpaint->paint, tslot, &slot_index)) {
|
||||
if (slot_index != brush->gpencil_weight_tool) {
|
||||
return false;
|
||||
}
|
||||
mode = OB_MODE_WEIGHT_GPENCIL;
|
||||
mode = OB_MODE_WEIGHT_GPENCIL_LEGACY;
|
||||
}
|
||||
else if (paint_contains_brush_slot(&ts->curves_sculpt->paint, tslot, &slot_index)) {
|
||||
if (slot_index != brush->curves_sculpt_tool) {
|
||||
|
|
|
@ -133,19 +133,19 @@ wmKeyMap *WM_keymap_guess_from_context(const bContext *C)
|
|||
case CTX_MODE_OBJECT:
|
||||
km_id = "Object Mode";
|
||||
break;
|
||||
case CTX_MODE_PAINT_GPENCIL:
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY:
|
||||
km_id = "Grease Pencil Stroke Paint Mode";
|
||||
break;
|
||||
case CTX_MODE_EDIT_GPENCIL_LEGACY:
|
||||
km_id = "Grease Pencil Stroke Edit Mode";
|
||||
break;
|
||||
case CTX_MODE_SCULPT_GPENCIL:
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
km_id = "Grease Pencil Stroke Sculpt Mode";
|
||||
break;
|
||||
case CTX_MODE_WEIGHT_GPENCIL:
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
km_id = "Grease Pencil Stroke Weight Mode";
|
||||
break;
|
||||
case CTX_MODE_VERTEX_GPENCIL:
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
km_id = "Grease Pencil Stroke Vertex Mode";
|
||||
break;
|
||||
case CTX_MODE_SCULPT_CURVES:
|
||||
|
|
|
@ -717,13 +717,13 @@ static const char *toolsystem_default_tool(const bToolKey *tkey)
|
|||
case CTX_MODE_PAINT_VERTEX:
|
||||
case CTX_MODE_PAINT_WEIGHT:
|
||||
case CTX_MODE_PAINT_TEXTURE:
|
||||
case CTX_MODE_PAINT_GPENCIL:
|
||||
case CTX_MODE_PAINT_GPENCIL_LEGACY:
|
||||
return "builtin_brush.Draw";
|
||||
case CTX_MODE_SCULPT_GPENCIL:
|
||||
case CTX_MODE_SCULPT_GPENCIL_LEGACY:
|
||||
return "builtin_brush.Push";
|
||||
case CTX_MODE_WEIGHT_GPENCIL:
|
||||
case CTX_MODE_WEIGHT_GPENCIL_LEGACY:
|
||||
return "builtin_brush.Weight";
|
||||
case CTX_MODE_VERTEX_GPENCIL:
|
||||
case CTX_MODE_VERTEX_GPENCIL_LEGACY:
|
||||
return "builtin_brush.Draw";
|
||||
case CTX_MODE_SCULPT_CURVES:
|
||||
return "builtin_brush.Density";
|
||||
|
|
|
@ -45,6 +45,8 @@ author_table = {
|
|||
"unclezeiv": "Davide Vercelli",
|
||||
"dilithjay": "Dilith Jayakody",
|
||||
"gaiaclary": "Gaia Clary",
|
||||
"DESKTOP-ON14TH5\Sonny Campbell": "Sonny Campbell",
|
||||
"demeterdzadik@gmail.com": "Demeter Dzadik",
|
||||
"Diego Hernan Borghetti": "Diego Borghetti",
|
||||
"Dotsnov Valentin": "Dontsov Valentin",
|
||||
"Eitan": "Eitan Traurig",
|
||||
|
|
Loading…
Reference in New Issue