aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2013-10-05 00:33:56 -0700
committerChris Robinson <[email protected]>2013-10-05 00:33:56 -0700
commit43c375716a7f3cd73f3b3ce8bb03136bef4f5d82 (patch)
treee5b712e00e5ece4c6a7def60f894dd978bbc4a74 /Alc
parentead8573aaf9d5dbe37a6224678188d54d1f0566d (diff)
Only rest as long as needed in the Null renderer
Diffstat (limited to 'Alc')
-rw-r--r--Alc/backends/null.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/Alc/backends/null.c b/Alc/backends/null.c
index 93b38063..d001cb41 100644
--- a/Alc/backends/null.c
+++ b/Alc/backends/null.c
@@ -43,8 +43,6 @@ static ALuint NullProc(ALvoid *ptr)
null_data *data = (null_data*)Device->ExtraData;
ALuint now, start;
ALuint64 avail, done;
- const ALuint restTime = (ALuint64)Device->UpdateSize * 1000 /
- Device->Frequency / 2;
done = 0;
start = timeGetTime();
@@ -62,15 +60,16 @@ static ALuint NullProc(ALvoid *ptr)
}
if(avail-done < Device->UpdateSize)
{
+ ALuint restTime = (Device->UpdateSize - (avail-done)) * 1000 /
+ Device->Frequency;
Sleep(restTime);
continue;
}
- while(avail-done >= Device->UpdateSize)
- {
+ do {
aluMixData(Device, NULL, Device->UpdateSize);
done += Device->UpdateSize;
- }
+ } while(avail-done >= Device->UpdateSize);
}
return 0;