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:
authorSybren A. Stüvel <sybren@blender.org>2020-04-14 20:22:18 +0300
committerSybren A. Stüvel <sybren@blender.org>2020-04-17 17:33:05 +0300
commit6adb254bb046ab337cfd4225ca55e17f196db312 (patch)
tree6a568097a02fdd700123ec1411f6b1169a99c6df /source/blender/depsgraph/intern/builder/deg_builder_relations.cc
parent27941b027b245e4814074698a9bdc193a8d0a0d3 (diff)
Fix T75686: Animating scene audio volume doesn't work
Scene audio volume changes require the scene to be tagged with `ID_RECALC_AUDIO_VOLUME` (see `BKE_scene_update_sound()`). Tagging happens in the RNA update function `rna_Scene_volume_update()`, but that function is not called by the animation system. As a result, animated volume changes are not sent to the audio system. This commit adds a new depsgraph operation node that sets this tag when necessary, so that the animated values are used in the rest of the depsgraph evaluation. Reviewed By: sergey Differential Revision: https://developer.blender.org/D7429
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations.cc')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 89def9e0bdc..e968ad1ea5d 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -2544,8 +2544,16 @@ void DepsgraphRelationBuilder::build_scene_sequencer(Scene *scene)
}
}
-void DepsgraphRelationBuilder::build_scene_audio(Scene * /*scene*/)
+void DepsgraphRelationBuilder::build_scene_audio(Scene *scene)
{
+ OperationKey scene_audio_volume_key(&scene->id, NodeType::AUDIO, OperationCode::AUDIO_VOLUME);
+ OperationKey scene_sound_eval_key(&scene->id, NodeType::AUDIO, OperationCode::SOUND_EVAL);
+ add_relation(scene_audio_volume_key, scene_sound_eval_key, "Audio Volume -> Sound");
+
+ if (scene->audio.flag & AUDIO_VOLUME_ANIMATED) {
+ ComponentKey scene_anim_key(&scene->id, NodeType::ANIMATION);
+ add_relation(scene_anim_key, scene_audio_volume_key, "Animation -> Audio Volume");
+ }
}
void DepsgraphRelationBuilder::build_scene_speakers(Scene * /*scene*/, ViewLayer *view_layer)