diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.h b/source/blender/depsgraph/intern/builder/deg_builder_relations.h index 4eafd66b0c0..1c2ba7298e2 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.h +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.h @@ -125,6 +125,7 @@ class DepsgraphRelationBuilder : public DepsgraphBuilder { virtual void build_idproperties(IDProperty *id_property); + virtual void build_scene_camera(Scene *scene); virtual void build_scene_render(Scene *scene, ViewLayer *view_layer); virtual void build_scene_parameters(Scene *scene); virtual void build_scene_compositor(Scene *scene); diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc index 0b117867c9f..166607a6d45 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc @@ -32,6 +32,18 @@ void DepsgraphRelationBuilder::build_scene_render(Scene *scene, ViewLayer *view_ } } +void DepsgraphRelationBuilder::build_scene_camera(Scene *scene) +{ + if (scene->camera != nullptr) { + build_object(scene->camera); + } + LISTBASE_FOREACH (TimeMarker *, marker, &scene->markers) { + if (!ELEM(marker->camera, nullptr, scene->camera)) { + build_object(marker->camera); + } + } +} + void DepsgraphRelationBuilder::build_scene_parameters(Scene *scene) { if (built_map_.checkIsBuiltAndTag(scene, BuilderMap::TAG_PARAMETERS)) { diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc index 287050ebe01..203d26bd346 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc @@ -118,9 +118,7 @@ void DepsgraphRelationBuilder::build_view_layer(Scene *scene, build_view_layer_collections(view_layer); - if (scene->camera != nullptr) { - build_object(scene->camera); - } + build_scene_camera(scene); /* Rigidbody. */ if (scene->rigidbody_world != nullptr) { build_rigidbody(scene);