mirror of
https://github.com/love2d/love.git
synced 2026-08-14 01:20:56 +02:00
metal: fix crash when stream buffers are resized
This commit is contained in:
@@ -190,9 +190,12 @@ Graphics::~Graphics()
|
||||
|
||||
defaultFont.set(nullptr);
|
||||
|
||||
delete batchedDrawState.vb[0];
|
||||
delete batchedDrawState.vb[1];
|
||||
delete batchedDrawState.indexBuffer;
|
||||
if (batchedDrawState.vb[0])
|
||||
batchedDrawState.vb[0]->release();
|
||||
if (batchedDrawState.vb[1])
|
||||
batchedDrawState.vb[1]->release();
|
||||
if (batchedDrawState.indexBuffer)
|
||||
batchedDrawState.indexBuffer->release();
|
||||
|
||||
for (int i = 0; i < (int) ShaderStage::STAGE_MAX_ENUM; i++)
|
||||
cachedShaderStages[i].clear();
|
||||
@@ -1196,14 +1199,14 @@ Graphics::BatchedVertexData Graphics::requestBatchedDraw(const BatchedDrawComman
|
||||
{
|
||||
if (state.vb[i]->getSize() < buffersizes[i])
|
||||
{
|
||||
delete state.vb[i];
|
||||
state.vb[i]->release();
|
||||
state.vb[i] = newStreamBuffer(BUFFERUSAGE_VERTEX, buffersizes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (state.indexBuffer->getSize() < buffersizes[2])
|
||||
{
|
||||
delete state.indexBuffer;
|
||||
state.indexBuffer->release();
|
||||
state.indexBuffer = newStreamBuffer(BUFFERUSAGE_INDEX, buffersizes[2]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user