[Bf-blender-cvs] [fcfe1963a62] blender2.8: Fix depsgraph copying and evaluating hidden objects.
Brecht Van Lommel
noreply at git.blender.org
Thu May 31 10:44:18 CEST 2018
Commit: fcfe1963a622fed257b8b9597424bf11edb19c52
Author: Brecht Van Lommel
Date: Thu May 31 10:34:01 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBfcfe1963a622fed257b8b9597424bf11edb19c52
Fix depsgraph copying and evaluating hidden objects.
===================================================================
M source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
M source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc
===================================================================
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 a396aecd3a8..35f01c19608 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
@@ -102,10 +102,14 @@ void DepsgraphNodeBuilder::build_view_layer(
* tricks here iterating over the view layer.
*/
int base_index = 0;
+ const int base_flag = (graph_->mode == DAG_EVAL_VIEWPORT) ?
+ BASE_VISIBLE_VIEWPORT : BASE_VISIBLE_RENDER;
LISTBASE_FOREACH(Base *, base, &view_layer->object_bases) {
/* object itself */
- build_object(base_index, base->object, linked_state);
- base->object->select_color = select_color++;
+ if (base->flag & base_flag) {
+ build_object(base_index, base->object, linked_state);
+ base->object->select_color = select_color++;
+ }
++base_index;
}
build_layer_collections(&view_layer->layer_collections);
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 f575be9f659..4db72a349dc 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
@@ -86,8 +86,12 @@ void DepsgraphRelationBuilder::build_view_layer(Scene *scene, ViewLayer *view_la
* passed to the evaluation functions. During relations builder we only
* do NULL-pointer check of the base, so it's fine to pass original one.
*/
+ const int base_flag = (graph_->mode == DAG_EVAL_VIEWPORT) ?
+ BASE_VISIBLE_VIEWPORT : BASE_VISIBLE_RENDER;
LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
- build_object(base, base->object);
+ if (base->flag & base_flag) {
+ build_object(base, base->object);
+ }
}
build_layer_collections(&view_layer->layer_collections);
More information about the Bf-blender-cvs
mailing list