From 42c346028f535968dfb90ca446e794dd2bc874f9 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 10 May 2017 10:31:33 +0200 Subject: Fix missing relation in new DEG between World and its NodeTree. Was preventing update in 3DView etc. when changing something in the World's NodeTree, especially annoying in blender2.8 branch (since legacy depsgraph has been removed there), but also affecting master. --- source/blender/depsgraph/intern/builder/deg_builder_nodes.cc | 9 +++++---- source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 8 +++++++- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'source/blender/depsgraph/intern') diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index 7df9fe0bdc8..bd07bf449ae 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -653,12 +653,13 @@ void DepsgraphNodeBuilder::build_world(World *world) return; } - /* world itself */ - add_id_node(world_id); /* world shading/params? */ - build_animdata(world_id); - /* TODO: other settings? */ + /* world itself */ + add_component_node(world_id, DEPSNODE_TYPE_PARAMETERS); + + add_operation_node(world_id, DEPSNODE_TYPE_PARAMETERS, DEPSOP_TYPE_EXEC, NULL, + DEG_OPCODE_PLACEHOLDER, "Parameters Eval"); /* textures */ build_texture_stack(world->mtex); diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index 2dae3daaab2..d66ab5b1e68 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -1129,7 +1129,13 @@ void DepsgraphRelationBuilder::build_world(World *world) build_texture_stack(world->mtex); /* world's nodetree */ - build_nodetree(world->nodetree); + if (world->nodetree != NULL) { + build_nodetree(world->nodetree); + ComponentKey ntree_key(&world->nodetree->id, DEPSNODE_TYPE_PARAMETERS); + ComponentKey world_key(world_id, DEPSNODE_TYPE_PARAMETERS); + add_relation(ntree_key, world_key, + DEPSREL_TYPE_COMPONENT_ORDER, "NTree->World Parameters"); + } } void DepsgraphRelationBuilder::build_rigidbody(Scene *scene) -- cgit v1.2.3