aboutsummaryrefslogtreecommitdiffstats
path: root/alc
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2019-12-17 22:36:26 -0800
committerChris Robinson <[email protected]>2019-12-17 22:40:49 -0800
commit5e35f73cadda8e92204e580712ef8d29ab0a91b1 (patch)
treedb060abe09c2aef660b30a827f900dcbe8c63a34 /alc
parenta8de1570e9d9e4bf07f1d95a01f79865c4027736 (diff)
Don't process direct channel sources with attenuation
Diffstat (limited to 'alc')
-rw-r--r--alc/alu.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/alc/alu.cpp b/alc/alu.cpp
index f312c161..48641f93 100644
--- a/alc/alu.cpp
+++ b/alc/alu.cpp
@@ -1579,11 +1579,11 @@ void CalcSourceParams(ALvoice *voice, ALCcontext *context, bool force)
AtomicReplaceHead(context->mFreeVoiceProps, props);
}
- if((voice->mProps.mSpatializeMode == SpatializeAuto && voice->mFmtChannels == FmtMono) ||
- voice->mProps.mSpatializeMode == SpatializeOn)
- CalcAttnSourceParams(voice, &voice->mProps, context);
- else
+ if(voice->mProps.DirectChannels || voice->mProps.mSpatializeMode == SpatializeOff
+ || (voice->mProps.mSpatializeMode == SpatializeAuto && voice->mFmtChannels != FmtMono))
CalcNonAttnSourceParams(voice, &voice->mProps, context);
+ else
+ CalcAttnSourceParams(voice, &voice->mProps, context);
}