Changed: Additional checks for streaming buffers in OpenAL

This commit is contained in:
kaetemi 2012-12-10 13:09:41 +01:00
parent d53a4bca98
commit 6502311563
2 changed files with 9 additions and 3 deletions

View file

@ -120,7 +120,7 @@ bool CBufferAL::unlock(uint size)
// Error handling
if (alGetError() == AL_NO_ERROR)
_IsLoaded = true;
_IsLoaded = true; // ->lock() set it to false
return _IsLoaded;
}
@ -161,8 +161,7 @@ bool CBufferAL::fill(const uint8 *src, uint size)
alBufferData(_BufferName, _SampleFormat, src, size, _Frequency);
// Error handling
if (alGetError() == AL_NO_ERROR)
_IsLoaded = true;
_IsLoaded = (alGetError() == AL_NO_ERROR);
return _IsLoaded;
}

View file

@ -162,6 +162,13 @@ void CSourceAL::submitStreamingBuffer(IBuffer *buffer)
CBufferAL *bufferAL = static_cast<CBufferAL *>(buffer);
ALuint bufferName = bufferAL->bufferName();
nlassert(bufferName);
if (!bufferAL->isBufferLoaded())
{
nlwarning("AL: Streaming buffer was not loaded, skipping buffer. This should not happen.");
return;
}
alSourceQueueBuffers(_Source, 1, &bufferName);
alTestError();
_QueuedBuffers.push(bufferAL);