Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/scene.c
| Show First 20 Lines • Show All 452 Lines • ▼ Show 20 Lines | void BKE_scene_make_local(Main *bmain, Scene *sce, const bool lib_local) | ||||
| /* For now should work, may need more work though to support all possible corner cases | /* For now should work, may need more work though to support all possible corner cases | ||||
| * (also scene_copy probably needs some love). */ | * (also scene_copy probably needs some love). */ | ||||
| BKE_id_make_local_generic(bmain, &sce->id, true, lib_local); | BKE_id_make_local_generic(bmain, &sce->id, true, lib_local); | ||||
| } | } | ||||
| /** Free (or release) any data used by this scene (does not free the scene itself). */ | /** Free (or release) any data used by this scene (does not free the scene itself). */ | ||||
| void BKE_scene_free_ex(Scene *sce, const bool do_id_user) | void BKE_scene_free_ex(Scene *sce, const bool do_id_user) | ||||
| { | { | ||||
| Main *bmain = G.main; /* XXX pass as arg */ | |||||
| BKE_animdata_free((ID *)sce, false); | BKE_animdata_free((ID *)sce, false); | ||||
| /* check all sequences */ | /* check all sequences */ | ||||
| BKE_sequencer_clear_scene_in_allseqs(G.main, sce); | BKE_sequencer_clear_scene_in_allseqs(bmain, sce); | ||||
| BKE_sequencer_editing_free(sce); | BKE_sequencer_editing_free(sce); | ||||
| BKE_keyingsets_free(&sce->keyingsets); | BKE_keyingsets_free(&sce->keyingsets); | ||||
| /* is no lib link block, but scene extension */ | /* is no lib link block, but scene extension */ | ||||
| if (sce->nodetree) { | if (sce->nodetree) { | ||||
| ntreeFreeTree(sce->nodetree); | ntreeFreeTree(sce->nodetree); | ||||
| ▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | void BKE_scene_free_ex(Scene *sce, const bool do_id_user) | ||||
| BKE_previewimg_free(&sce->preview); | BKE_previewimg_free(&sce->preview); | ||||
| curvemapping_free_data(&sce->r.mblur_shutter_curve); | curvemapping_free_data(&sce->r.mblur_shutter_curve); | ||||
| for (ViewLayer *view_layer = sce->view_layers.first, *view_layer_next; view_layer; view_layer = view_layer_next) { | for (ViewLayer *view_layer = sce->view_layers.first, *view_layer_next; view_layer; view_layer = view_layer_next) { | ||||
| view_layer_next = view_layer->next; | view_layer_next = view_layer->next; | ||||
| BLI_remlink(&sce->view_layers, view_layer); | BLI_remlink(&sce->view_layers, view_layer); | ||||
| BKE_view_layer_free_ex(view_layer, do_id_user); | BKE_view_layer_free_ex(view_layer, bmain, do_id_user); | ||||
| } | } | ||||
| /* Master Collection */ | /* Master Collection */ | ||||
| BKE_collection_master_free(&sce->id, do_id_user); | BKE_collection_master_free(&sce->id, do_id_user); | ||||
| MEM_freeN(sce->collection); | MEM_freeN(sce->collection); | ||||
| sce->collection = NULL; | sce->collection = NULL; | ||||
| /* LayerCollection engine settings. */ | /* LayerCollection engine settings. */ | ||||
| ▲ Show 20 Lines • Show All 1,682 Lines • Show Last 20 Lines | |||||