Blender V5.0
deg_builder_relations_scene.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2013 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
10
11#include "DNA_scene_types.h"
12
13#include "BLI_listbase.h"
14
15namespace blender::deg {
16
18{
19 scene_ = scene;
20 const bool build_compositor = (scene->r.scemode & R_DOCOMP);
21 const bool build_sequencer = (scene->r.scemode & R_DOSEQ);
23 build_animdata(&scene->id);
24 build_scene_audio(scene);
25 if (build_compositor) {
27 }
28 if (build_sequencer) {
30 build_scene_speakers(scene, view_layer);
31 }
32 build_scene_camera(scene);
33}
34
36{
37 if (scene->camera != nullptr) {
38 build_object(scene->camera);
39 }
40 LISTBASE_FOREACH (TimeMarker *, marker, &scene->markers) {
41 if (!ELEM(marker->camera, nullptr, scene->camera)) {
42 build_object(marker->camera);
43 }
44 }
45}
46
48{
49 if (built_map_.check_is_built_and_tag(scene, BuilderMap::TAG_PARAMETERS)) {
50 return;
51 }
52
53 /* TODO(sergey): Trace as a scene parameters. */
54
57 build_parameters(&scene->id);
58 OperationKey parameters_eval_key(
60 ComponentKey scene_eval_key(&scene->id, NodeType::SCENE);
61 add_relation(parameters_eval_key, scene_eval_key, "Parameters -> Scene Eval");
62
63 LISTBASE_FOREACH (TimeMarker *, marker, &scene->markers) {
64 build_idproperties(marker->prop);
65 }
66}
67
69{
70 if (built_map_.check_is_built_and_tag(scene, BuilderMap::TAG_SCENE_COMPOSITOR)) {
71 return;
72 }
73 if (scene->compositing_node_group == nullptr) {
74 return;
75 }
76
77 /* TODO(sergey): Trace as a scene compositor. */
79}
80
81} // namespace blender::deg
#define LISTBASE_FOREACH(type, var, list)
#define ELEM(...)
@ R_DOSEQ
@ R_DOCOMP
virtual void build_scene_speakers(Scene *scene, ViewLayer *view_layer)
virtual void build_scene_render(Scene *scene, ViewLayer *view_layer)
virtual void build_nodetree(bNodeTree *ntree)
Relation * add_relation(const KeyFrom &key_from, const KeyTo &key_to, const char *description, int flags=0)
virtual void build_idproperties(IDProperty *id_property)
IDProperty * system_properties
Definition DNA_ID.h:489
IDProperty * properties
Definition DNA_ID.h:480
struct bNodeTree * compositing_node_group
struct RenderData r
struct Object * camera
ListBase markers