Depsgraph: Directly linked objects should be priority for base flags over set scenes

This commit is contained in:
Sergey Sharybin
2017-11-24 14:32:14 +01:00
parent ad288c9c34
commit dde05cbcc2
2 changed files with 15 additions and 16 deletions

View File

@@ -91,14 +91,6 @@ void DepsgraphNodeBuilder::build_view_layer(Scene *scene,
/* timesource */
add_time_source();
/* build subgraph for set, and link this in... */
// XXX: depending on how this goes, that scene itself could probably store its
// own little partial depsgraph?
if (scene->set != NULL) {
ViewLayer *set_view_layer = BKE_view_layer_from_scene_get(scene->set);
build_view_layer(scene->set, set_view_layer, DEG_ID_LINKED_VIA_SET);
}
/* Setup currently building context. */
scene_ = scene;
@@ -165,6 +157,12 @@ void DepsgraphNodeBuilder::build_view_layer(Scene *scene,
NULL,
DEG_OPCODE_PLACEHOLDER,
"Scene Eval");
/* Build all set scenes. */
if (scene->set != NULL) {
ViewLayer *set_view_layer = BKE_view_layer_from_scene_get(scene->set);
build_view_layer(scene->set, set_view_layer, DEG_ID_LINKED_VIA_SET);
}
}
} // namespace DEG

View File

@@ -70,14 +70,6 @@ namespace DEG {
void DepsgraphRelationBuilder::build_view_layer(Scene *scene, ViewLayer *view_layer)
{
if (scene->set != NULL) {
ViewLayer *set_view_layer = BKE_view_layer_from_scene_get(scene->set);
build_view_layer(scene->set, set_view_layer);
}
graph_->scene = scene;
graph_->view_layer = view_layer;
/* Setup currently building context. */
scene_ = scene;
@@ -136,6 +128,15 @@ void DepsgraphRelationBuilder::build_view_layer(Scene *scene, ViewLayer *view_la
object->customdata_mask |= node->customdata_mask;
}
}
/* Build all set scenes. */
if (scene->set != NULL) {
ViewLayer *set_view_layer = BKE_view_layer_from_scene_get(scene->set);
build_view_layer(scene->set, set_view_layer);
}
graph_->scene = scene;
graph_->view_layer = view_layer;
}
} // namespace DEG