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