diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2018-11-28 05:49:36 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2019-02-05 23:42:02 +0300 |
commit | 3d984aa15038f7a7bdf4ffacb93da83713353613 (patch) | |
tree | 12f209375e734dd31476221fb9ce04fa32c97326 /source/blender/depsgraph | |
parent | d1ef6be4a770c8b2caacc70cb93d3cf9ab52e0d9 (diff) |
Per view-layer collection visibility
[re-committing]
We still control this in the viewport collections visibility menu. But
now we are actually changing the visibility of the collections, not of
the objects.
If a collection is indirectly invisible (because one of its parents are
invisible) we gray it out.
Also if you click directly in the collection names, it "isolates" the
collection by hiding all collections, and showing the direct parents and
all the children of the selected collection.
Development Note:
Right now I'm excluding the hidden collections from the depsgraph.
Thus the need for tagging relations to update.
If this proves to be too slow, we can change.
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc | 5 | ||||
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc index cc2d58dbe51..00981d75665 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc @@ -64,6 +64,11 @@ void DepsgraphNodeBuilder::build_layer_collections(ListBase *lb) COLLECTION_RESTRICT_VIEW : COLLECTION_RESTRICT_RENDER; for (LayerCollection *lc = (LayerCollection *)lb->first; lc; lc = lc->next) { + if ((graph_->mode == DAG_EVAL_VIEWPORT) && + ((lc->flag & LAYER_COLLECTION_RESTRICT_VIEW) != 0)) + { + continue; + } if (lc->collection->flag & restrict_flag) { continue; } diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc index c0fe5243e58..7f4a388718f 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc @@ -65,6 +65,11 @@ void DepsgraphRelationBuilder::build_layer_collections(ListBase *lb) COLLECTION_RESTRICT_VIEW : COLLECTION_RESTRICT_RENDER; for (LayerCollection *lc = (LayerCollection *)lb->first; lc; lc = lc->next) { + if ((graph_->mode == DAG_EVAL_VIEWPORT) && + ((lc->flag & LAYER_COLLECTION_RESTRICT_VIEW) != 0)) + { + continue; + } if ((lc->collection->flag & restrict_flag)) { continue; } |