diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-11-15 18:52:47 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-11-22 12:13:33 +0300 |
commit | 0a6df6b173c5af2a38d2b808634adb2c6432ce3e (patch) | |
tree | 9247037f0857b4a9466bd145675989b78c384749 /source | |
parent | cb67be3f22c4d139ad43d6863ceea168d7872070 (diff) |
Doversion: We should always add the old RenderLayer
We cannot assume a render layer does not have a setting that was needed for
compositing. Even if:
```
(scene->lay & render_layer->lay) != (scene_lay) &&
(render_layer->lay | render_layer->lay_exclude) == 0))
```
Which would mean use the scene layers just as they are.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/versioning_280.c | 62 |
1 files changed, 30 insertions, 32 deletions
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 8d057330822..32aa908fe86 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -324,45 +324,43 @@ void do_versions_after_linking_280(Main *main) (ID *)srl->mat_override); } - if (srl->lay != scene->lay) { - /* unlink master collection */ - BKE_collection_unlink(scene_layer, scene_layer->layer_collections.first); - - /* Add new collection bases. */ - for (int layer = 0; layer < 20; layer++) { - if ((scene->lay & srl->lay & ~(srl->lay_exclude) & (1 << layer)) || - (srl->lay_zmask & (scene->lay | srl->lay_exclude) & (1 << layer))) - { - if (collections[DO_VERSION_COLLECTION_VISIBLE].created & (1 << layer)) { - - LayerCollection *layer_collection_parent; - layer_collection_parent = BKE_collection_link(scene_layer, - collections[DO_VERSION_COLLECTION_VISIBLE].collections[layer]); - - if (srl->lay_zmask & (1 << layer)) { - BKE_override_layer_collection_boolean_add( - layer_collection_parent, - ID_OB, - "cycles.is_holdout", - true); - } + /* unlink master collection */ + BKE_collection_unlink(scene_layer, scene_layer->layer_collections.first); - LayerCollection *layer_collection_child; - layer_collection_child = layer_collection_parent->layer_collections.first; + /* Add new collection bases. */ + for (int layer = 0; layer < 20; layer++) { + if ((scene->lay & srl->lay & ~(srl->lay_exclude) & (1 << layer)) || + (srl->lay_zmask & (scene->lay | srl->lay_exclude) & (1 << layer))) + { + if (collections[DO_VERSION_COLLECTION_VISIBLE].created & (1 << layer)) { + + LayerCollection *layer_collection_parent; + layer_collection_parent = BKE_collection_link(scene_layer, + collections[DO_VERSION_COLLECTION_VISIBLE].collections[layer]); + + if (srl->lay_zmask & (1 << layer)) { + BKE_override_layer_collection_boolean_add( + layer_collection_parent, + ID_OB, + "cycles.is_holdout", + true); + } - for (int j = 1; j < 4; j++) { - if (collections[j].created & (1 << layer)) { - layer_collection_child->flag = collections[j].flag_render & (~COLLECTION_DISABLED); + LayerCollection *layer_collection_child; + layer_collection_child = layer_collection_parent->layer_collections.first; - if (collections[j].flag_render & COLLECTION_DISABLED) { - BKE_collection_disable(scene_layer, layer_collection_child); - } + for (int j = 1; j < 4; j++) { + if (collections[j].created & (1 << layer)) { + layer_collection_child->flag = collections[j].flag_render & (~COLLECTION_DISABLED); - layer_collection_child = layer_collection_child->next; + if (collections[j].flag_render & COLLECTION_DISABLED) { + BKE_collection_disable(scene_layer, layer_collection_child); } + + layer_collection_child = layer_collection_child->next; } - BLI_assert(layer_collection_child == NULL); } + BLI_assert(layer_collection_child == NULL); } } } |