From df822513fa9656f1a0fea1ef3f895f7ec5cee48c Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sat, 7 Aug 2010 09:13:51 -0700 Subject: Don't re-init and re-allocate some stuff when the device is left running --- Alc/ALc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Alc') diff --git a/Alc/ALc.c b/Alc/ALc.c index 02de6ce0..2a27b34e 100644 --- a/Alc/ALc.c +++ b/Alc/ALc.c @@ -1559,7 +1559,10 @@ ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCin device->NumAuxSends = numSends; } - if(running == AL_FALSE && ALCdevice_ResetPlayback(device) == ALC_FALSE) + if(running != AL_FALSE) + goto make_context; + + if(ALCdevice_ResetPlayback(device) == ALC_FALSE) { alcSetError(device, ALC_INVALID_DEVICE); aluHandleDisconnect(device); @@ -1638,6 +1641,7 @@ ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCin else device->HeadDampen = 0.0f; +make_context: temp = realloc(device->Contexts, (device->NumContexts+1) * sizeof(*device->Contexts)); if(!temp) { -- cgit v1.2.3