diff options
author | Chris Robinson <[email protected]> | 2016-08-26 19:46:46 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2016-08-26 21:19:38 -0700 |
commit | 4b153dade82b0558c96d54828bd2f9f86dc808fd (patch) | |
tree | f8bdb9f899633d8850c614232808392a7430ea58 /OpenAL32/alSource.c | |
parent | ef03de39814486a1d91949cfff8b6a33bd137f91 (diff) |
Allow sources to play while alcSuspendContext is in effect
This appears to be how Creative's Windows drivers handle it, and is necessary
for at least the Windows version of UT2k4 (otherwise it tries to play a source
while suspended, checks and sees it's stopped, then kills it before it's given
a chance to start playing).
Consequently, the internal properties it gets mixed with are determined by what
the source properties are at the time of the play call, and the listener
properties at the time of the suspend call.
This does not change alDeferUpdatesSOFT, which will still hold the play state
change until alProcessUpdatesSOFT.
Diffstat (limited to 'OpenAL32/alSource.c')
-rw-r--r-- | OpenAL32/alSource.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c index f5941729..a7d7f35c 100644 --- a/OpenAL32/alSource.c +++ b/OpenAL32/alSource.c @@ -2316,7 +2316,7 @@ AL_API ALvoid AL_APIENTRY alSourcePlayv(ALsizei n, const ALuint *sources) context->MaxVoices = newcount; } - if(ATOMIC_LOAD(&context->DeferUpdates, almemory_order_acquire)) + if(ATOMIC_LOAD(&context->DeferUpdates, almemory_order_acquire) == DeferAll) { for(i = 0;i < n;i++) { |