From cd695d7f152831fab2d19d78e80ae8e7982eea72 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Tue, 20 Oct 2009 12:58:19 -0700 Subject: Allow creating multiple contexts on a device --- Alc/ALc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Alc/ALc.c b/Alc/ALc.c index 6eeb3bd8..b4463050 100644 --- a/Alc/ALc.c +++ b/Alc/ALc.c @@ -1138,12 +1138,13 @@ ALCAPI ALCcontext* ALCAPIENTRY alcCreateContext(ALCdevice *device, const ALCint // Reset Context Last Error code g_eLastContextError = ALC_NO_ERROR; - // Current implementation only allows one Context per Device + // If a context is already running on the device, stop playback so the + // device attributes can be updated if(device->NumContexts > 0) { - alcSetError(ALC_INVALID_VALUE); ProcessContext(NULL); - return NULL; + ALCdevice_StopPlayback(device); + SuspendContext(NULL); } // Check for attributes -- cgit v1.2.3