GPencil: Add warning to Outline modifer when no Camera

The modifier needs a scene camera to work. Now
if the camera is not defined, there is a warning.

The optimal solution would be to use the `isDisabled` callback
but the callback function hasn't the scene parameter and to pass
this parameter is necessary to change a lot of things and now
we are focus in the next version of GPencil 3.0 and this change 
not worth the work now.

The optimal solution will be implemented in the 3.0 refactor.

Related to T102375

Reviewed by: Pablo Vazquez, Matias Mendiola
This commit is contained in:
Antonio Vazquez 2022-11-10 19:59:07 +01:00
parent d3121fe4ec
commit cad11f3098
Notes: blender-bot 2023-02-13 23:17:13 +01:00
Referenced by issue #102375, Grease Pencil Outline Modifier not showing with duplicated camera in outliner
1 changed files with 6 additions and 1 deletions

View File

@ -287,7 +287,7 @@ static void updateDepsgraph(GpencilModifierData *md,
DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "Outline Modifier");
}
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
static void panel_draw(const bContext *C, Panel *panel)
{
uiLayout *layout = panel->layout;
@ -302,6 +302,11 @@ static void panel_draw(const bContext *UNUSED(C), Panel *panel)
uiItemR(layout, ptr, "outline_material", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "object", 0, NULL, ICON_NONE);
Scene *scene = CTX_data_scene(C);
if (scene->camera == NULL) {
uiItemL(layout, IFACE_("Outline requires an active camera"), ICON_ERROR);
}
gpencil_modifier_panel_end(layout, ptr);
}