Commit: 913472165b1d49e0d964fce59f1ec156e92f9e9c Author: Dalai Felinto Date: Wed Apr 19 19:08:37 2017 +0200 Branches: blender2.8 https://developer.blender.org/rB913472165b1d49e0d964fce59f1ec156e92f9e9c
Fix T51215: depsgraph evaluation of collection properties (overrides) =================================================================== M source/blender/blenkernel/BKE_layer.h M source/blender/blenkernel/intern/layer.c M source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc =================================================================== diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h index 2cd11db1699..e1aaf39e2a3 100644 --- a/source/blender/blenkernel/BKE_layer.h +++ b/source/blender/blenkernel/BKE_layer.h @@ -131,7 +131,6 @@ void BKE_layer_eval_layer_collection_pre(struct EvaluationContext *eval_ctx, struct Scene *scene, struct SceneLayer *scene_layer); void BKE_layer_eval_layer_collection(struct EvaluationContext *eval_ctx, - struct Scene *scene, struct LayerCollection *layer_collection, struct LayerCollection *parent_layer_collection); void BKE_layer_eval_layer_collection_post(struct EvaluationContext *eval_ctx, diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index 6107b6ca12b..e9c3a43fe1b 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -1365,7 +1365,7 @@ static void idproperty_reset(IDProperty **props, IDProperty *props_ref) *props = IDP_New(IDP_GROUP, &val, ROOT_PROP); if (props_ref) { - IDP_MergeGroup(*props, props_ref, true); + IDP_MergeGroupValues(*props, props_ref); } } @@ -1383,7 +1383,6 @@ void BKE_layer_eval_layer_collection_pre(struct EvaluationContext *UNUSED(eval_c } void BKE_layer_eval_layer_collection(struct EvaluationContext *UNUSED(eval_ctx), - Scene *scene, LayerCollection *layer_collection, LayerCollection *parent_layer_collection) { @@ -1404,25 +1403,21 @@ void BKE_layer_eval_layer_collection(struct EvaluationContext *UNUSED(eval_ctx), } /* overrides */ - if (parent_layer_collection != NULL) { - idproperty_reset(&layer_collection->properties_evaluated, parent_layer_collection->properties_evaluated); - } - else if (layer_collection->prev != NULL) { - idproperty_reset(&layer_collection->properties_evaluated, NULL); - } - else { - idproperty_reset(&layer_collection->properties_evaluated, scene->collection_properties); - } - if (is_visible) { - IDP_MergeGroup(layer_collection->properties_evaluated, layer_collection->properties, true); + if (parent_layer_collection == NULL) { + idproperty_reset(&layer_collection->properties_evaluated, layer_collection->properties); + } + else { + idproperty_reset(&layer_collection->properties_evaluated, parent_layer_collection->properties_evaluated); + IDP_MergeGroupValues(layer_collection->properties_evaluated, layer_collection->properties); + } } for (LinkData *link = layer_collection->object_bases.first; link != NULL; link = link->next) { Base *base = link->data; if (is_visible) { - IDP_SyncGroupValues(base->collection_properties, layer_collection->properties_evaluated); + IDP_MergeGroupValues(base->collection_properties, layer_collection->properties_evaluated); base->flag |= BASE_VISIBLED; } diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc index 494ae585272..9fd59608d9e 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc @@ -71,7 +71,6 @@ void DepsgraphNodeBuilder::build_layer_collection(Scene *scene, DEPSOP_TYPE_EXEC, function_bind(BKE_layer_eval_layer_collection, _1, - scene, layer_collection, state->parent), DEG_OPCODE_SCENE_LAYER_EVAL, _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs