diff options
author | Chris Robinson <[email protected]> | 2012-08-15 08:19:04 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2012-08-15 08:19:04 -0700 |
commit | 0bca771a88f83e77cd6a5eb04757125b4fa5dc6c (patch) | |
tree | 5d38eb665129c0b708e1b61634922b54a96d05fb /Alc/mixer_c.c | |
parent | f4ff63e2715b28e8ed1fd54e48e3ee6077f1689d (diff) |
Apply HRTF mixer coefficients with stepping using SSE
Diffstat (limited to 'Alc/mixer_c.c')
-rw-r--r-- | Alc/mixer_c.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Alc/mixer_c.c b/Alc/mixer_c.c index f59b3190..eeb75bf4 100644 --- a/Alc/mixer_c.c +++ b/Alc/mixer_c.c @@ -6,6 +6,22 @@ #include "alu.h" +static __inline void ApplyCoeffsStep(ALuint Offset, ALfloat (*RESTRICT Values)[2], + ALfloat (*RESTRICT Coeffs)[2], + ALfloat (*RESTRICT CoeffStep)[2], + ALfloat left, ALfloat right) +{ + ALuint c; + for(c = 0;c < HRIR_LENGTH;c++) + { + const ALuint off = (Offset+c)&HRIR_MASK; + Values[off][0] += Coeffs[c][0] * left; + Values[off][1] += Coeffs[c][1] * right; + Coeffs[c][0] += CoeffStep[c][0]; + Coeffs[c][1] += CoeffStep[c][1]; + } +} + static __inline void ApplyCoeffs(ALuint Offset, ALfloat (*RESTRICT Values)[2], ALfloat (*RESTRICT Coeffs)[2], ALfloat left, ALfloat right) |