diff options
author | Chris Robinson <[email protected]> | 2011-07-11 01:05:42 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2011-07-11 01:05:42 -0700 |
commit | 58466a304b24e86c507f16d07fdbec051d2ada14 (patch) | |
tree | a40c6aace264c46abb9ba34ba2da7990101875a9 /Alc/ALu.c | |
parent | 51c09e94b84d386b51d130a540a2669a514061bb (diff) |
Use a flag to signifiy that all sources need updating
Diffstat (limited to 'Alc/ALu.c')
-rw-r--r-- | Alc/ALu.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -989,6 +989,11 @@ ALvoid aluMixData(ALCdevice *device, ALvoid *buffer, ALsizei size) ctx_end = ctx + device->NumContexts; while(ctx != ctx_end) { + ALboolean UpdateSources; + + UpdateSources = (*ctx)->UpdateSources; + (*ctx)->UpdateSources = AL_FALSE; + src = (*ctx)->ActiveSources; src_end = src + (*ctx)->ActiveSourceCount; while(src != src_end) @@ -1000,10 +1005,10 @@ ALvoid aluMixData(ALCdevice *device, ALvoid *buffer, ALsizei size) continue; } - if((*src)->NeedsUpdate) + if((*src)->NeedsUpdate || UpdateSources) { - ALsource_Update(*src, *ctx); (*src)->NeedsUpdate = AL_FALSE; + ALsource_Update(*src, *ctx); } MixSource(*src, device, SamplesToDo); |