Cleanup: Move Compositor versioning code from Scene's 'lib_link' to actual versioning code.
Not sure when that versioning was added, but nowadays there are the 'after_linking` versioning handlers for that kind of case.
This commit is contained in:
parent
616e0c8c1d
commit
257f21d494
@ -1506,18 +1506,6 @@ static void scene_blend_read_data(BlendDataReader *reader, ID *id)
|
||||
}
|
||||
|
||||
/* patch for missing scene IDs, can't be in do-versions */
|
||||
static void composite_patch(bNodeTree *ntree, Scene *scene)
|
||||
{
|
||||
for (bNode *node : ntree->all_nodes()) {
|
||||
if (node->id == nullptr &&
|
||||
((node->type == CMP_NODE_R_LAYERS) ||
|
||||
(node->type == CMP_NODE_CRYPTOMATTE && node->custom1 == CMP_CRYPTOMATTE_SRC_RENDER)))
|
||||
{
|
||||
node->id = &scene->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void scene_blend_read_lib(BlendLibReader *reader, ID *id)
|
||||
{
|
||||
Scene *sce = (Scene *)id;
|
||||
@ -1620,10 +1608,6 @@ static void scene_blend_read_lib(BlendLibReader *reader, ID *id)
|
||||
}
|
||||
}
|
||||
|
||||
if (sce->nodetree) {
|
||||
composite_patch(sce->nodetree, sce);
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (SceneRenderLayer *, srl, &sce->r.layers) {
|
||||
BLO_read_id_address(reader, id, &srl->mat_override);
|
||||
LISTBASE_FOREACH (FreestyleModuleConfig *, fmc, &srl->freestyleConfig.modules) {
|
||||
|
@ -49,6 +49,18 @@
|
||||
|
||||
// static CLG_LogRef LOG = {"blo.readfile.doversion"};
|
||||
|
||||
static void version_composite_nodetree_null_id(bNodeTree *ntree, Scene *scene)
|
||||
{
|
||||
for (bNode *node : ntree->all_nodes()) {
|
||||
if (node->id == nullptr &&
|
||||
((node->type == CMP_NODE_R_LAYERS) ||
|
||||
(node->type == CMP_NODE_CRYPTOMATTE && node->custom1 == CMP_CRYPTOMATTE_SRC_RENDER)))
|
||||
{
|
||||
node->id = &scene->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void do_versions_after_linking_400(FileData *fd, Main *bmain)
|
||||
{
|
||||
if (!MAIN_VERSION_FILE_ATLEAST(bmain, 400, 9)) {
|
||||
@ -60,6 +72,14 @@ void do_versions_after_linking_400(FileData *fd, Main *bmain)
|
||||
}
|
||||
}
|
||||
|
||||
/* XXX This was added several years ago in 'lib_link` code of Scene... Should be safe enough
|
||||
* here. */
|
||||
LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
|
||||
if (scene->nodetree) {
|
||||
version_composite_nodetree_null_id(scene->nodetree, scene);
|
||||
}
|
||||
}
|
||||
|
||||
/* Object proxies have been deprecated sine 3.x era, so their update & sanity check can now
|
||||
* happen in do_versions code. */
|
||||
LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
|
||||
|
Loading…
Reference in New Issue
Block a user