Fix missing relations built for camera referenced by markers

A missing part since PR #110139: the nodes and relations builders
needs to be in-sync and build the same objects. The relations builder
was missing relations building for camera referenced by markers.

Pull Request: https://projects.blender.org/blender/blender/pulls/114443
This commit is contained in:
Sergey Sharybin 2023-11-03 15:41:05 +01:00 • committed by Philipp Oeser
parent 73f313c119
commit 93f8b59172
3 changed files with 14 additions and 3 deletions

View file

@ -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);

View file

@ -31,6 +31,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)) {

View file

@ -88,9 +88,7 @@ void DepsgraphRelationBuilder::build_view_layer(Scene *scene,
build_layer_collections(&view_layer->layer_collections);
if (scene->camera != nullptr) {
build_object(scene->camera);
}
build_scene_camera(scene);
/* Rigidbody. */
if (scene->rigidbody_world != nullptr) {
build_rigidbody(scene);