Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenloader/intern/readfile.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
| Show First 20 Lines • Show All 5,910 Lines • ▼ Show 20 Lines | if (sce->id.tag & LIB_TAG_NEED_LINK) { | ||||
| if (sce->nodetree) { | if (sce->nodetree) { | ||||
| lib_link_ntree(fd, &sce->id, sce->nodetree); | lib_link_ntree(fd, &sce->id, sce->nodetree); | ||||
| sce->nodetree->id.lib = sce->id.lib; | sce->nodetree->id.lib = sce->id.lib; | ||||
| composite_patch(sce->nodetree, sce); | composite_patch(sce->nodetree, sce); | ||||
| } | } | ||||
| for (SceneRenderLayer *srl = sce->r.layers.first; srl; srl = srl->next) { | for (SceneRenderLayer *srl = sce->r.layers.first; srl; srl = srl->next) { | ||||
| srl->mat_override = newlibadr_us(fd, sce->id.lib, srl->mat_override); | srl->mat_override = newlibadr_us(fd, sce->id.lib, srl->mat_override); | ||||
| srl->light_override = newlibadr_us(fd, sce->id.lib, srl->light_override); | |||||
| for (FreestyleModuleConfig *fmc = srl->freestyleConfig.modules.first; fmc; fmc = fmc->next) { | for (FreestyleModuleConfig *fmc = srl->freestyleConfig.modules.first; fmc; fmc = fmc->next) { | ||||
| fmc->script = newlibadr(fd, sce->id.lib, fmc->script); | fmc->script = newlibadr(fd, sce->id.lib, fmc->script); | ||||
| } | } | ||||
| for (FreestyleLineSet *fls = srl->freestyleConfig.linesets.first; fls; fls = fls->next) { | for (FreestyleLineSet *fls = srl->freestyleConfig.linesets.first; fls; fls = fls->next) { | ||||
| fls->linestyle = newlibadr_us(fd, sce->id.lib, fls->linestyle); | fls->linestyle = newlibadr_us(fd, sce->id.lib, fls->linestyle); | ||||
| fls->group = newlibadr_us(fd, sce->id.lib, fls->group); | fls->group = newlibadr_us(fd, sce->id.lib, fls->group); | ||||
| } | } | ||||
| } | } | ||||
| /*Game Settings: Dome Warp Text*/ | /*Game Settings: Dome Warp Text*/ | ||||
| sce->gm.dome.warptext = newlibadr(fd, sce->id.lib, sce->gm.dome.warptext); | sce->gm.dome.warptext = newlibadr(fd, sce->id.lib, sce->gm.dome.warptext); | ||||
| /* Motion Tracking */ | /* Motion Tracking */ | ||||
| sce->clip = newlibadr_us(fd, sce->id.lib, sce->clip); | sce->clip = newlibadr_us(fd, sce->id.lib, sce->clip); | ||||
| lib_link_scene_collection(fd, sce->id.lib, sce->collection); | lib_link_scene_collection(fd, sce->id.lib, sce->collection); | ||||
| for (SceneLayer *scene_layer = sce->render_layers.first; scene_layer; scene_layer = scene_layer->next) { | for (SceneLayer *scene_layer = sce->render_layers.first; scene_layer; scene_layer = scene_layer->next) { | ||||
| /* tag scene layer to update for collection tree evaluation */ | /* tag scene layer to update for collection tree evaluation */ | ||||
| scene_layer->flag |= SCENE_LAYER_ENGINE_DIRTY; | scene_layer->flag |= SCENE_LAYER_ENGINE_DIRTY; | ||||
| for (FreestyleModuleConfig *fmc = scene_layer->freestyle_config.modules.first; fmc; fmc = fmc->next) { | |||||
| fmc->script = newlibadr(fd, sce->id.lib, fmc->script); | |||||
| } | |||||
| for (FreestyleLineSet *fls = scene_layer->freestyle_config.linesets.first; fls; fls = fls->next) { | |||||
| fls->linestyle = newlibadr_us(fd, sce->id.lib, fls->linestyle); | |||||
| fls->group = newlibadr_us(fd, sce->id.lib, fls->group); | |||||
| } | |||||
| for (Base *base = scene_layer->object_bases.first; base; base = base->next) { | for (Base *base = scene_layer->object_bases.first; base; base = base->next) { | ||||
| /* we only bump the use count for the collection objects */ | /* we only bump the use count for the collection objects */ | ||||
| base->object = newlibadr(fd, sce->id.lib, base->object); | base->object = newlibadr(fd, sce->id.lib, base->object); | ||||
| base->flag |= BASE_DIRTY_ENGINE_SETTINGS; | base->flag |= BASE_DIRTY_ENGINE_SETTINGS; | ||||
| base->collection_properties = NULL; | base->collection_properties = NULL; | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 354 Lines • ▼ Show 20 Lines | static void direct_link_scene(FileData *fd, Scene *sce, Main *bmain) | ||||
| link_list(fd, &(sce->transform_spaces)); /* only for old files */ | link_list(fd, &(sce->transform_spaces)); /* only for old files */ | ||||
| link_list(fd, &(sce->r.layers)); | link_list(fd, &(sce->r.layers)); | ||||
| link_list(fd, &(sce->r.views)); | link_list(fd, &(sce->r.views)); | ||||
| for (srl = sce->r.layers.first; srl; srl = srl->next) { | for (srl = sce->r.layers.first; srl; srl = srl->next) { | ||||
| srl->prop = newdataadr(fd, srl->prop); | srl->prop = newdataadr(fd, srl->prop); | ||||
| IDP_DirectLinkGroup_OrFree(&srl->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); | IDP_DirectLinkGroup_OrFree(&srl->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); | ||||
| } | |||||
| for (srl = sce->r.layers.first; srl; srl = srl->next) { | |||||
| link_list(fd, &(srl->freestyleConfig.modules)); | link_list(fd, &(srl->freestyleConfig.modules)); | ||||
| } | |||||
| for (srl = sce->r.layers.first; srl; srl = srl->next) { | |||||
| link_list(fd, &(srl->freestyleConfig.linesets)); | link_list(fd, &(srl->freestyleConfig.linesets)); | ||||
| } | } | ||||
| sce->nodetree = newdataadr(fd, sce->nodetree); | sce->nodetree = newdataadr(fd, sce->nodetree); | ||||
| if (sce->nodetree) { | if (sce->nodetree) { | ||||
| direct_link_id(fd, &sce->nodetree->id); | direct_link_id(fd, &sce->nodetree->id); | ||||
| direct_link_nodetree(fd, sce->nodetree); | direct_link_nodetree(fd, sce->nodetree); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | for (scene_layer = sce->render_layers.first; scene_layer; scene_layer = scene_layer->next) { | ||||
| if (scene_layer->properties != NULL) { | if (scene_layer->properties != NULL) { | ||||
| scene_layer->properties = newdataadr(fd, scene_layer->properties); | scene_layer->properties = newdataadr(fd, scene_layer->properties); | ||||
| BLI_assert(scene_layer->properties != NULL); | BLI_assert(scene_layer->properties != NULL); | ||||
| IDP_DirectLinkGroup_OrFree(&scene_layer->properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); | IDP_DirectLinkGroup_OrFree(&scene_layer->properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); | ||||
| BKE_scene_layer_engine_settings_validate_layer(scene_layer); | BKE_scene_layer_engine_settings_validate_layer(scene_layer); | ||||
| } | } | ||||
| scene_layer->id_properties = newdataadr(fd, scene_layer->id_properties); | |||||
| IDP_DirectLinkGroup_OrFree(&scene_layer->id_properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); | |||||
| link_list(fd, &(scene_layer->freestyle_config.modules)); | |||||
| link_list(fd, &(scene_layer->freestyle_config.linesets)); | |||||
| scene_layer->properties_evaluated = NULL; | scene_layer->properties_evaluated = NULL; | ||||
| BLI_listbase_clear(&scene_layer->drawdata); | BLI_listbase_clear(&scene_layer->drawdata); | ||||
| } | } | ||||
| sce->collection_properties = newdataadr(fd, sce->collection_properties); | sce->collection_properties = newdataadr(fd, sce->collection_properties); | ||||
| IDP_DirectLinkGroup_OrFree(&sce->collection_properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); | IDP_DirectLinkGroup_OrFree(&sce->collection_properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); | ||||
| ▲ Show 20 Lines • Show All 3,415 Lines • ▼ Show 20 Lines | static void expand_scene(FileData *fd, Main *mainvar, Scene *sce) | ||||
| if (sce->set) | if (sce->set) | ||||
| expand_doit(fd, mainvar, sce->set); | expand_doit(fd, mainvar, sce->set); | ||||
| if (sce->nodetree) | if (sce->nodetree) | ||||
| expand_nodetree(fd, mainvar, sce->nodetree); | expand_nodetree(fd, mainvar, sce->nodetree); | ||||
| for (srl = sce->r.layers.first; srl; srl = srl->next) { | for (srl = sce->r.layers.first; srl; srl = srl->next) { | ||||
| expand_doit(fd, mainvar, srl->mat_override); | expand_doit(fd, mainvar, srl->mat_override); | ||||
| expand_doit(fd, mainvar, srl->light_override); | |||||
| for (module = srl->freestyleConfig.modules.first; module; module = module->next) { | for (module = srl->freestyleConfig.modules.first; module; module = module->next) { | ||||
| if (module->script) | if (module->script) | ||||
| expand_doit(fd, mainvar, module->script); | expand_doit(fd, mainvar, module->script); | ||||
| } | } | ||||
| for (lineset = srl->freestyleConfig.linesets.first; lineset; lineset = lineset->next) { | for (lineset = srl->freestyleConfig.linesets.first; lineset; lineset = lineset->next) { | ||||
| if (lineset->group) | if (lineset->group) | ||||
| expand_doit(fd, mainvar, lineset->group); | expand_doit(fd, mainvar, lineset->group); | ||||
| expand_doit(fd, mainvar, lineset->linestyle); | expand_doit(fd, mainvar, lineset->linestyle); | ||||
| } | } | ||||
| } | } | ||||
| for (SceneLayer *scene_layer = sce->render_layers.first; scene_layer; scene_layer = scene_layer->next) { | |||||
| for (module = scene_layer->freestyle_config.modules.first; module; module = module->next) { | |||||
| if (module->script) { | |||||
| expand_doit(fd, mainvar, module->script); | |||||
| } | |||||
| } | |||||
| for (lineset = scene_layer->freestyle_config.linesets.first; lineset; lineset = lineset->next) { | |||||
| if (lineset->group) { | |||||
| expand_doit(fd, mainvar, lineset->group); | |||||
| } | |||||
| expand_doit(fd, mainvar, lineset->linestyle); | |||||
| } | |||||
| } | |||||
| if (sce->r.dometext) | if (sce->r.dometext) | ||||
| expand_doit(fd, mainvar, sce->gm.dome.warptext); | expand_doit(fd, mainvar, sce->gm.dome.warptext); | ||||
| if (sce->gpd) | if (sce->gpd) | ||||
| expand_doit(fd, mainvar, sce->gpd); | expand_doit(fd, mainvar, sce->gpd); | ||||
| if (sce->ed) { | if (sce->ed) { | ||||
| Sequence *seq; | Sequence *seq; | ||||
| ▲ Show 20 Lines • Show All 1,036 Lines • Show Last 20 Lines | |||||