Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey@blender.org>2022-04-12 13:36:48 +0300
committerSergey Sharybin <sergey@blender.org>2022-04-14 15:57:49 +0300
commit31b2b84b3c788bfae2ced046d05c39c56f8056f0 (patch)
treeba64ddfd9274e7a2ed28d85f9cb4b47b332b0738 /source/blender/depsgraph/intern/builder/deg_builder_relations.h
parent1440074cac0a0e2c659539c241947409c3bbdb16 (diff)
Fix T97262: Crash with specific view layer setup
Originally was noticed when using a linked background scene and a scene camera from another (local) scene. The root issue was that relation from view layer to object's base flags evaluation was using wrong view layer. This is because the relation was created between object and currently built view layer, and it only was happening once (since the object-level relations are only built once). Depending on order in which `build_object` was called it was possible that relation from a wrong view layer was used. Now the code is better split to indicate which parts of object relations are built when object comes from a base in the view layer, and which ones are built on indirect linking of object to the dependency graph. This patch makes relations correct in the cases when the same object is used as a base in both active and set scenes. But, the operation which handles object-level flags might not behave correctly as there is no known design of what is the proper thing to do in this case. Making a clear design and implementation of case when object is shared between active and set scene is outside of the scope of this patch. Differential Revision: https://developer.blender.org/D14626
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations.h')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.h b/source/blender/depsgraph/intern/builder/deg_builder_relations.h
index e1312c68cea..1ccecc9a3f2 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.h
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.h
@@ -200,7 +200,8 @@ class DepsgraphRelationBuilder : public DepsgraphBuilder {
Object *object,
Collection *collection);
virtual void build_object(Object *object);
- virtual void build_object_from_layer_relations(Object *object);
+ virtual void build_object_from_view_layer_base(Object *object);
+ virtual void build_object_layer_component_relations(Object *object);
virtual void build_object_data(Object *object);
virtual void build_object_data_camera(Object *object);
virtual void build_object_data_geometry(Object *object);