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

Reply via email to