aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALu.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2011-07-11 01:05:42 -0700
committerChris Robinson <[email protected]>2011-07-11 01:05:42 -0700
commit58466a304b24e86c507f16d07fdbec051d2ada14 (patch)
treea40c6aace264c46abb9ba34ba2da7990101875a9 /Alc/ALu.c
parent51c09e94b84d386b51d130a540a2669a514061bb (diff)
Use a flag to signifiy that all sources need updating
Diffstat (limited to 'Alc/ALu.c')
-rw-r--r--Alc/ALu.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Alc/ALu.c b/Alc/ALu.c
index c2a2c5ea..2cd9326f 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -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);