diff options
author | Bastien Montagne <bastien@blender.org> | 2022-05-30 18:24:16 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2022-05-30 18:43:22 +0300 |
commit | 3437cf155e7ca73cb96882ed5372f5baf2eac78a (patch) | |
tree | 0d839b663cde40d1c8d87c968b6274f2d8ee2f36 /source/blender/editors/space_view3d | |
parent | a5d9b3442d4ea5daaa56d8166bb52cfbca589643 (diff) |
LibOverride: Add full support for camera's background images.
Add support for adding (inserting) new background images into an
override of a linked Camera ID.
Request from the Blender studio.
This ended up being more involved than expected as it uncovered some
latent issues with existing background images code. Noticiably, a new
`BKE_camera_background_image_copy` had to be added to handle copying
of background images in a proper, generic ID-management way.
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_edit.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index fb5e7e58d33..a65e9a8d506 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -631,6 +631,17 @@ static int background_image_remove_exec(bContext *C, wmOperator *op) CameraBGImage *bgpic_rem = BLI_findlink(&cam->bg_images, index); if (bgpic_rem) { + if (ID_IS_OVERRIDE_LIBRARY(cam) && + (bgpic_rem->flag & CAM_BGIMG_FLAG_OVERRIDE_LIBRARY_LOCAL) == 0) { + BKE_reportf(op->reports, + RPT_WARNING, + "Cannot remove background image %d from camera '%s', as it is from the linked " + "reference data", + index, + cam->id.name + 2); + return OPERATOR_CANCELLED; + } + id_us_min((ID *)bgpic_rem->ima); id_us_min((ID *)bgpic_rem->clip); |