With DirectChannels enabled, don't try to mix channels that have no matching output

This commit is contained in:
Chris Robinson 2012-03-12 18:27:25 -07:00
parent 93e71f0554
commit 335232207d

View File

@ -250,7 +250,17 @@ ALvoid CalcNonAttnSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
if(DirectChannels != AL_FALSE) if(DirectChannels != AL_FALSE)
{ {
for(c = 0;c < num_channels;c++) for(c = 0;c < num_channels;c++)
SrcMatrix[c][chans[c].channel] += DryGain * ListenerGain; {
for(i = 0;i < (ALint)Device->NumChan;i++)
{
enum Channel chan = Device->Speaker2Chan[i];
if(chan == chans[c].channel)
{
SrcMatrix[c][chan] += DryGain * ListenerGain;
break;
}
}
}
} }
else if(Device->Hrtf) else if(Device->Hrtf)
{ {