diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2020-04-14 20:22:18 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2020-04-17 17:33:05 +0300 |
commit | 6adb254bb046ab337cfd4225ca55e17f196db312 (patch) | |
tree | 6a568097a02fdd700123ec1411f6b1169a99c6df /source/blender/depsgraph/intern/builder/deg_builder_nodes.cc | |
parent | 27941b027b245e4814074698a9bdc193a8d0a0d3 (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_nodes.cc')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_nodes.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index 04333dbd038..0adea027ecc 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -1736,7 +1736,14 @@ void DepsgraphNodeBuilder::build_scene_audio(Scene *scene) if (built_map_.checkIsBuiltAndTag(scene, BuilderMap::TAG_SCENE_AUDIO)) { return; } + add_operation_node(&scene->id, NodeType::AUDIO, OperationCode::SOUND_EVAL); + + Scene *scene_cow = get_cow_datablock(scene); + add_operation_node(&scene->id, + NodeType::AUDIO, + OperationCode::AUDIO_VOLUME, + function_bind(BKE_scene_update_tag_audio_volume, _1, scene_cow)); } void DepsgraphNodeBuilder::build_scene_speakers(Scene * /*scene*/, ViewLayer *view_layer) |