From 3e2672ec9f5c2a84a0f871bd0379ee387f9a95ce Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Wed, 9 Mar 2016 22:57:38 -0800 Subject: Track the virtual and real output buffers ecplicitly --- OpenAL32/Include/alMain.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'OpenAL32') diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index 8c75cb83..f79002fe 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -494,9 +494,20 @@ struct ALCdevice_struct alignas(16) ALfloat ResampledData[BUFFERSIZE]; alignas(16) ALfloat FilteredData[BUFFERSIZE]; - /* Dry path buffer mix. */ + /* Dry path buffer mix (will be aliased by the virtual or real output). */ alignas(16) ALfloat (*DryBuffer)[BUFFERSIZE]; + /* Virtual output, to be post-processed to the real output. */ + struct { + ALfloat (*Buffer)[BUFFERSIZE]; + ALuint NumChannels; + } VirtOut; + /* "Real" output, which will be written to the device buffer. */ + struct { + ALfloat (*Buffer)[BUFFERSIZE]; + ALuint NumChannels; + } RealOut; + /* Running count of the mixer invocations, in 31.1 fixed point. This * actually increments *twice* when mixing, first at the start and then at * the end, so the bottom bit indicates if the device is currently mixing -- cgit v1.2.3