AuroraOpenALSoft/Alc
Chris Robinson 9613b4bfe2 Use a different method for storing and looking up buffers
Rather than each buffer being individually allocated with a generated 'thunk'
ID that's used with a uint:ptr map, buffers are allocated in arrays of 64
within a vector. Each group of 64 has an associated 64-bit mask indicating
which are free to use, and the buffer ID is comprised of the two array indices
which directly locate the buffer (no searching, binary or otherwise).

Currently no buffers are actually deallocated after being allocated, though
they are reused. So an app that creates a ton of buffers once, then deletes
them all and uses only a couple from then on, will have a bit of waste, while
an app that's more consistent with the number of used buffers won't be a
problem. This can be improved by removing elements of the containing vector
that contain all-free buffers while there are plenty of other free buffers.

Also, this method can easily be applied to other resources, like sources.
2018-01-27 01:51:01 -08:00
..
backends Avoid using alloca in the CoreAudio backend 2018-01-16 12:54:20 -08:00
effects Construct error messages using parameterized values 2018-01-25 15:59:59 -08:00
ALc.c Use a different method for storing and looking up buffers 2018-01-27 01:51:01 -08:00
alconfig.c Avoid fixed-PATH_MAX-size buffers 2018-01-13 04:40:20 -08:00
alconfig.h Move the config function declarations to their own header 2018-01-11 07:56:54 -08:00
alstring.h Add a string function to copy a wide-char range 2018-01-13 02:03:13 -08:00
ALu.c Use a voice flag to indicate it being static 2018-01-16 18:07:59 -08:00
ambdec.c Rename al_string_* functions to alstr_* 2017-04-04 06:58:53 -07:00
ambdec.h More ALsizei, with the B-Format decoder 2017-01-16 09:37:55 -08:00
bformatdec.c Use a global RowMixerFunc 2018-01-16 12:18:59 -08:00
bformatdec.h Replace some freq_mult variable names with f0norm 2018-01-13 09:14:46 -08:00
bs2b.c Fix more uses of unsigned sizes and offsets 2017-02-10 06:20:16 -08:00
compat.h Allow GetProcPath to return the filename also 2018-01-13 02:59:21 -08:00
converter.c Move the FPU mode declarations to a separate header 2018-01-11 08:44:52 -08:00
converter.h Use one macro to handle both resample padding sizes 2018-01-09 23:55:59 -08:00
cpu_caps.h Move the CPU capability flags to a separate header 2018-01-11 07:19:19 -08:00
fpu_modes.h Move the FPU mode declarations to a separate header 2018-01-11 08:44:52 -08:00
helpers.c Avoid fixed-PATH_MAX-size buffers 2018-01-13 04:40:20 -08:00
hrtf.c Assign the HRTF storage pointers separately 2018-01-15 08:38:25 -08:00
hrtf.h Move some HRTF structures to hrtf.h 2018-01-11 03:53:25 -08:00
inprogext.h Don't rely on alMain.h in alBuffer.h 2018-01-26 21:32:43 -08:00
logging.h Move logging declarations to a separate header 2018-01-11 20:17:02 -08:00
mastering.c Move the compressor/limiter declarations to their own header 2018-01-11 06:50:53 -08:00
mastering.h Move the compressor/limiter declarations to their own header 2018-01-11 06:50:53 -08:00
mixer_c.c Separate some anonymous structs into defined structs 2018-01-14 15:42:25 -08:00
mixer_defs.h Replace the sinc4 resampler with cubic 2018-01-07 05:32:07 -08:00
mixer_inc.c Add a mixing function to blend HRIRs 2017-05-03 03:29:21 -07:00
mixer_neon.c Replace the sinc4 resampler with cubic 2018-01-07 05:32:07 -08:00
mixer_sse2.c Store the sinc4 table in the filter state 2017-08-16 18:09:53 -07:00
mixer_sse3.c Replace the sinc4 resampler with cubic 2018-01-07 05:32:07 -08:00
mixer_sse41.c Replace the sinc4 resampler with cubic 2018-01-07 05:32:07 -08:00
mixer_sse.c Add casts for assigning the SSE bsinc filter pointers 2017-10-07 15:28:35 -07:00
mixer.c Handle double-precision buffers in the mixer 2018-01-21 18:34:03 -08:00
nfcfilter.c Fix NFC filter to set the correct center frequency 2017-03-16 19:58:21 -07:00
nfcfilter.h Add an NFC filter implementation 2017-03-09 15:41:20 -08:00
panning.c Fix up some types for MSVC 2018-01-11 10:55:35 -08:00
polymorphism.h Remove SET_VTABLE1 2018-01-11 09:39:52 -08:00
ringbuffer.c Avoid including alMain.h in ringbuffer.c 2018-01-11 10:03:26 -08:00
ringbuffer.h Move the ringbuffer declarations to a separate header 2018-01-11 09:16:28 -08:00
uhjfilter.c Move the UNEXPECTED macro to the main header and rename it 2018-01-07 22:20:08 -08:00
uhjfilter.h Use ALsizei in a few more places 2017-01-16 08:59:08 -08:00
vector.h Avoid dereferencing a NULL pointer 2017-12-31 23:19:41 -08:00