Changed: Exceptions catched by reference

This commit is contained in:
kervala 2011-06-02 18:44:48 +02:00
parent e896f53b6b
commit 69bc6a6d4e

View file

@ -890,22 +890,25 @@ void CSourceAL::setStreamingBuffersMax(uint buffers)
unqueueBuffers();
removeBuffers();
for(uint i = 0; i < _BuffersMax; ++i)
{
try {
// create a new buffer
CBufferAL *buffer = static_cast<CBufferAL*>(_SoundDriver->createBuffer());
// use StorageSoftware because buffers will be reused
// deleting and recreating them is a waste of time
buffer->setStorageMode(IBuffer::StorageSoftware);
_Buffers[buffer->bufferName()] = buffer;
} catch(ESoundDriverGenBuf &e) {
nlwarning("Cannot create %d buffers. openal fails after %d buffers", buffers, i);
_BuffersMax = i;
_BuffersName.resize(i);
break;
}
}
for(uint i = 0; i < _BuffersMax; ++i)
{
try
{
// create a new buffer
CBufferAL *buffer = static_cast<CBufferAL*>(_SoundDriver->createBuffer());
// use StorageSoftware because buffers will be reused
// deleting and recreating them is a waste of time
buffer->setStorageMode(IBuffer::StorageSoftware);
_Buffers[buffer->bufferName()] = buffer;
}
catch(const ESoundDriverGenBuf &e)
{
nlwarning("Cannot create %d buffers. openal fails after %d buffers", buffers, i);
_BuffersMax = i;
_BuffersName.resize(i);
break;
}
}
}
/// Set the default size for streaming buffers