diff options
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations.h')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.h | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.h b/source/blender/depsgraph/intern/builder/deg_builder_relations.h index aa8dc2a4982..ea7e23eca79 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.h +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.h @@ -56,6 +56,7 @@ struct ID; struct FCurve; struct Group; struct Key; +struct LayerCollection; struct Main; struct Mask; struct Material; @@ -67,7 +68,9 @@ struct Object; struct bPoseChannel; struct bConstraint; struct ParticleSystem; +struct ParticleSettings; struct Scene; +struct ViewLayer; struct Tex; struct World; struct EffectorWeights; @@ -189,9 +192,10 @@ struct DepsgraphRelationBuilder const char *description, bool check_unique = false); - void build_scene(Scene *scene); + void build_view_layer(Scene *scene, ViewLayer *view_layer); void build_group(Object *object, Group *group); - void build_object(Object *object); + void build_object(Base *base, Object *object); + void build_object_flags(Base *base, Object *object); void build_object_data(Object *object); void build_object_parent(Object *object); void build_constraints(ID *id, @@ -216,6 +220,7 @@ struct DepsgraphRelationBuilder void build_world(World *world); void build_rigidbody(Scene *scene); void build_particles(Object *object); + void build_particle_settings(ParticleSettings *part); void build_particles_visualization_object(Object *object, ParticleSystem *psys, Object *draw_object); @@ -243,12 +248,12 @@ struct DepsgraphRelationBuilder void build_cachefile(CacheFile *cache_file); void build_mask(Mask *mask); void build_movieclip(MovieClip *clip); + void build_lightprobe(Object *object); void add_collision_relations(const OperationKey &key, Scene *scene, Object *object, Group *group, - int layer, bool dupli, const char *name); void add_forcefield_relations(const OperationKey &key, @@ -256,8 +261,24 @@ struct DepsgraphRelationBuilder Object *object, ParticleSystem *psys, EffectorWeights *eff, - bool add_absorption, - const char *name); + bool add_absorption, const char *name); + + struct LayerCollectionState { + int index; + OperationKey init_key; + OperationKey done_key; + OperationKey prev_key; + }; + void build_layer_collection(ID *owner_id, + LayerCollection *layer_collection, + LayerCollectionState *state); + void build_layer_collections(ID *owner_id, + ListBase *layer_collections, + LayerCollectionState *state); + void build_view_layer_collections(struct ID *owner_id, ViewLayer *view_layer); + + void build_copy_on_write_relations(); + void build_copy_on_write_relations(IDDepsNode *id_node); template <typename KeyType> OperationDepsNode *find_operation_node(const KeyType &key); |