Fix T47931: Missed world shader update when having object dependency

This commit is contained in:
Sergey Sharybin 2016-03-28 10:45:29 +02:00
parent 8a9dd6f6fb
commit e2e72a20ec

@ -133,11 +133,19 @@ bool BlenderSync::sync_recalc()
BL::BlendData::worlds_iterator b_world; BL::BlendData::worlds_iterator b_world;
for(b_data.worlds.begin(b_world); b_world != b_data.worlds.end(); ++b_world) { for(b_data.worlds.begin(b_world); b_world != b_data.worlds.end(); ++b_world) {
if(world_map == b_world->ptr.data && if(world_map == b_world->ptr.data) {
(b_world->is_updated() || (b_world->node_tree() && b_world->node_tree().is_updated()))) if(b_world->is_updated() ||
(b_world->node_tree() && b_world->node_tree().is_updated()))
{ {
world_recalc = true; world_recalc = true;
} }
else if(b_world->node_tree() && b_world->use_nodes()) {
Shader *shader = scene->shaders[scene->default_background];
if(has_updated_objects && shader != NULL && shader->has_object_dependency) {
world_recalc = true;
}
}
}
} }
bool recalc = bool recalc =