Fix (unreported) linestyle/greasepencil actions not being duplicated by full scene copy.
Noted those as missing in XXX comments some time ago, running again on that code I still see no reason for this missing feature, so now when doing a full scene copy, including duplication of Freestyl's linestyles and scene's greasepencil data, their potential Actions will also be properly duplicated (like it was already the case for world, and scene itself).
This commit is contained in:
@@ -399,8 +399,11 @@ Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type)
|
||||
for (FreestyleLineSet *lineset = view_layer_dst->freestyle_config.linesets.first; lineset; lineset = lineset->next) {
|
||||
if (lineset->linestyle) {
|
||||
id_us_min(&lineset->linestyle->id);
|
||||
/* XXX Not copying actions here? */
|
||||
BKE_id_copy(bmain, (ID *)lineset->linestyle, (ID **)&lineset->linestyle);
|
||||
BKE_id_copy_ex(
|
||||
bmain,
|
||||
(ID *)lineset->linestyle,
|
||||
(ID **)&lineset->linestyle,
|
||||
LIB_ID_COPY_ACTIONS);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -415,10 +418,9 @@ Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type)
|
||||
BKE_collection_copy_full(bmain, sce_copy->master_collection);
|
||||
|
||||
/* Full copy of GreasePencil. */
|
||||
/* XXX Not copying actions here? */
|
||||
if (sce_copy->gpd) {
|
||||
id_us_min(&sce_copy->gpd->id);
|
||||
BKE_id_copy(bmain, (ID *)sce_copy->gpd, (ID **)&sce_copy->gpd);
|
||||
BKE_id_copy_ex(bmain, (ID *)sce_copy->gpd, (ID **)&sce_copy->gpd, LIB_ID_COPY_ACTIONS);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user