Fixed: ugly fix to not crash when we cannot create a buffer #1116

This commit is contained in:
vl 2011-06-01 00:04:11 +02:00
parent 2c1cc5cbee
commit 5407fe2518

View file

@ -892,12 +892,19 @@ void CSourceAL::setStreamingBuffersMax(uint buffers)
for(uint i = 0; i < _BuffersMax; ++i) for(uint i = 0; i < _BuffersMax; ++i)
{ {
try {
// create a new buffer // create a new buffer
CBufferAL *buffer = static_cast<CBufferAL*>(_SoundDriver->createBuffer()); CBufferAL *buffer = static_cast<CBufferAL*>(_SoundDriver->createBuffer());
// use StorageSoftware because buffers will be reused // use StorageSoftware because buffers will be reused
// deleting and recreating them is a waste of time // deleting and recreating them is a waste of time
buffer->setStorageMode(IBuffer::StorageSoftware); buffer->setStorageMode(IBuffer::StorageSoftware);
_Buffers[buffer->bufferName()] = buffer; _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;
}
} }
} }