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 */
|
/* 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)
|
static void scene_blend_read_lib(BlendLibReader *reader, ID *id)
|
||||||
{
|
{
|
||||||
Scene *sce = (Scene *)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) {
|
LISTBASE_FOREACH (SceneRenderLayer *, srl, &sce->r.layers) {
|
||||||
BLO_read_id_address(reader, id, &srl->mat_override);
|
BLO_read_id_address(reader, id, &srl->mat_override);
|
||||||
LISTBASE_FOREACH (FreestyleModuleConfig *, fmc, &srl->freestyleConfig.modules) {
|
LISTBASE_FOREACH (FreestyleModuleConfig *, fmc, &srl->freestyleConfig.modules) {
|
||||||
|
@ -49,6 +49,18 @@
|
|||||||
|
|
||||||
// static CLG_LogRef LOG = {"blo.readfile.doversion"};
|
// 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)
|
void do_versions_after_linking_400(FileData *fd, Main *bmain)
|
||||||
{
|
{
|
||||||
if (!MAIN_VERSION_FILE_ATLEAST(bmain, 400, 9)) {
|
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
|
/* Object proxies have been deprecated sine 3.x era, so their update & sanity check can now
|
||||||
* happen in do_versions code. */
|
* happen in do_versions code. */
|
||||||
LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
|
LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
|
||||||
|
Loading…
Reference in New Issue
Block a user