aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alu.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2019-12-29 19:17:29 -0800
committerChris Robinson <[email protected]>2019-12-29 19:17:29 -0800
commit9ac8f25a05ff8fc6950b3056c78d937737baf68f (patch)
tree083381a538661d2f41381215271c86536609567f /alc/alu.cpp
parent137394c2cfb7d3133e06b8b24a827db95995f7d8 (diff)
Ignore direct channels for mono and B-Format buffers
Diffstat (limited to 'alc/alu.cpp')
-rw-r--r--alc/alu.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/alc/alu.cpp b/alc/alu.cpp
index adc6d435..227ab575 100644
--- a/alc/alu.cpp
+++ b/alc/alu.cpp
@@ -1576,7 +1576,8 @@ void CalcSourceParams(ALvoice *voice, ALCcontext *context, bool force)
AtomicReplaceHead(context->mFreeVoiceProps, props);
}
- if(voice->mProps.DirectChannels != DirectMode::Off
+ if((voice->mProps.DirectChannels != DirectMode::Off && voice->mFmtChannels != FmtMono
+ && voice->mFmtChannels != FmtBFormat2D && voice->mFmtChannels != FmtBFormat3D)
|| voice->mProps.mSpatializeMode == SpatializeOff
|| (voice->mProps.mSpatializeMode == SpatializeAuto && voice->mFmtChannels != FmtMono))
CalcNonAttnSourceParams(voice, &voice->mProps, context);