diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2016-12-13 14:35:00 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2016-12-13 15:03:57 +0300 |
commit | c75e7516c32fd6181ab4232032d5ad6ace5fd630 (patch) | |
tree | d778decdf3431560da298a0d0d03ca0f3bf703cc /source/blender/blenkernel/intern/scene.c | |
parent | b7a42fe69f7fabb0abe830eb230f696b88bacc23 (diff) | |
parent | 9be6d5ff18fd593e853647d9eec8b3fb074acd7c (diff) |
Merge remote-tracking branch 'origin/blender2.8' into render-layers
plus manual rna fixup
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 200041747c5..e634fea9cc6 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -80,6 +80,7 @@ #include "BKE_image.h" #include "BKE_layer.h" #include "BKE_library.h" +#include "BKE_library_remap.h" #include "BKE_linestyle.h" #include "BKE_main.h" #include "BKE_mask.h" @@ -241,8 +242,6 @@ Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type) scen = BKE_libblock_copy(bmain, &sce->id); BLI_duplicatelist(&(scen->base), &(sce->base)); - BKE_main_id_clear_newpoins(bmain); - id_us_plus((ID *)scen->world); id_us_plus((ID *)scen->set); /* id_us_plus((ID *)scen->gm.dome.warptext); */ /* XXX Not refcounted? see readfile.c */ @@ -266,7 +265,7 @@ Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type) if (sce->nodetree) { /* ID's are managed on both copy and switch */ scen->nodetree = ntreeCopyTree(bmain, sce->nodetree); - ntreeSwitchID(scen->nodetree, &sce->id, &scen->id); + BKE_libblock_relink_ex(bmain, scen->nodetree, &sce->id, &scen->id, false); } obase = sce->base.first; @@ -280,7 +279,7 @@ Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type) } /* copy action and remove animation used by sequencer */ - BKE_animdata_copy_id_action(&scen->id); + BKE_animdata_copy_id_action(&scen->id, false); if (type != SCE_COPY_FULL) remove_sequencer_fcurves(scen); @@ -402,7 +401,7 @@ Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type) /* camera */ if (type == SCE_COPY_LINK_DATA || type == SCE_COPY_FULL) { - ID_NEW(scen->camera); + ID_NEW_REMAP(scen->camera); } /* before scene copy */ @@ -413,7 +412,7 @@ Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type) if (scen->world) { id_us_plus((ID *)scen->world); scen->world = BKE_world_copy(bmain, scen->world); - BKE_animdata_copy_id_action((ID *)scen->world); + BKE_animdata_copy_id_action((ID *)scen->world, false); } if (sce->ed) { |