aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-08-12 05:26:36 -0700
committerChris Robinson <[email protected]>2016-08-12 05:26:36 -0700
commit770e2ff7ed516a41721d6cde931b3cefc07c190e (patch)
treece6d59d89039aba7339575e5bb0783032289e401 /OpenAL32
parentc6c6e3324dd9d5d864b6146ca7a6c6e6369978a6 (diff)
Use a more specialized mixer function for B-Format to HRTF
Diffstat (limited to 'OpenAL32')
-rw-r--r--OpenAL32/Include/alMain.h4
-rw-r--r--OpenAL32/Include/alu.h4
2 files changed, 6 insertions, 2 deletions
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 3d099ca2..b173c515 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -599,8 +599,8 @@ struct ALCdevice_struct
ALCenum Hrtf_Status;
/* HRTF filter state for dry buffer content */
- HrtfState Hrtf_State[4];
- HrtfParams Hrtf_Params[4];
+ alignas(16) ALfloat Hrtf_Values[4][HRIR_LENGTH][2];
+ alignas(16) ALfloat Hrtf_Coeffs[4][HRIR_LENGTH][2];
ALuint Hrtf_Offset;
ALuint Hrtf_IrSize;
diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h
index 9913a117..1d922881 100644
--- a/OpenAL32/Include/alu.h
+++ b/OpenAL32/Include/alu.h
@@ -167,6 +167,10 @@ typedef void (*HrtfMixerFunc)(ALfloat (*restrict OutBuffer)[BUFFERSIZE], ALuint
const ALfloat *data, ALuint Counter, ALuint Offset, ALuint OutPos,
const ALuint IrSize, const MixHrtfParams *hrtfparams,
HrtfState *hrtfstate, ALuint BufferSize);
+typedef void (*HrtfDirectMixerFunc)(ALfloat (*restrict OutBuffer)[BUFFERSIZE],
+ ALuint lidx, ALuint ridx, const ALfloat *data, ALuint Offset,
+ const ALuint IrSize, ALfloat (*restrict Coeffs)[2],
+ ALfloat (*restrict Values)[2], ALuint BufferSize);
#define GAIN_SILENCE_THRESHOLD (0.00001f) /* -100dB */