Fix T97709: Compositor: Scenes are being set to no users after doing a full copy.

Similar issue/solution as in rB5188c14718c5 from this Monday actually,
there may be more of those still lurking around... Quite surprising they
all get reported now, this behavior has been in Blender since years.
This commit is contained in:
Bastien Montagne 2022-05-04 17:05:12 +02:00
parent b5c3885bf0
commit 60772baebf
Notes: blender-bot 2023-02-14 11:42:40 +01:00
Referenced by issue #97709, Compositor:  Scenes are being set to no users after doing a full copy.
2 changed files with 4 additions and 2 deletions

View File

@ -57,7 +57,9 @@ enum {
ID_REMAP_FORCE_NEVER_NULL_USAGE = 1 << 3,
/** Do not remap library override pointers. */
ID_REMAP_SKIP_OVERRIDE_LIBRARY = 1 << 5,
/** Don't touch the user count (use for low level actions such as swapping pointers). */
/** Don't touch the special user counts (use when the 'old' remapped ID remains in use):
* - Do not transfer 'fake user' status from old to new ID.
* - Do not clear 'extra user' from old ID. */
ID_REMAP_SKIP_USER_CLEAR = 1 << 6,
/**
* Force internal ID runtime pointers (like `ID.newid`, `ID.orig_id` etc.) to also be processed.

View File

@ -274,7 +274,7 @@ static void scene_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int
scene_dst->nodetree,
(void *)(&scene_src->id),
&scene_dst->id,
ID_REMAP_SKIP_NEVER_NULL_USAGE);
ID_REMAP_SKIP_NEVER_NULL_USAGE | ID_REMAP_SKIP_USER_CLEAR);
}
if (scene_src->rigidbody_world) {