From c28731ea809d52c5c7c8e8950d7cb68080a7992e Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sat, 12 Feb 2022 09:37:30 -0400 Subject: [PATCH] opengl: fix love's internal quad index buffer failing to populate --- src/modules/graphics/Graphics.cpp | 6 ++++-- src/modules/graphics/metal/Buffer.mm | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/graphics/Graphics.cpp b/src/modules/graphics/Graphics.cpp index 92e1b3408..14f839c83 100644 --- a/src/modules/graphics/Graphics.cpp +++ b/src/modules/graphics/Graphics.cpp @@ -248,8 +248,10 @@ void Graphics::createQuadIndexBuffer() Buffer::Settings settings(BUFFERUSAGEFLAG_INDEX, BUFFERDATAUSAGE_STATIC); quadIndexBuffer = newBuffer(settings, DATAFORMAT_UINT16, nullptr, size, 0); - Buffer::Mapper map(*quadIndexBuffer); - fillIndices(TRIANGLEINDEX_QUADS, 0, LOVE_UINT16_MAX, (uint16 *) map.data); + { + Buffer::Mapper map(*quadIndexBuffer); + fillIndices(TRIANGLEINDEX_QUADS, 0, LOVE_UINT16_MAX, (uint16 *) map.data); + } quadIndexBuffer->setImmutable(true); } diff --git a/src/modules/graphics/metal/Buffer.mm b/src/modules/graphics/metal/Buffer.mm index b4ac8ef5b..07cc47f3a 100644 --- a/src/modules/graphics/metal/Buffer.mm +++ b/src/modules/graphics/metal/Buffer.mm @@ -111,7 +111,7 @@ Buffer::~Buffer() void *Buffer::map(MapType /*map*/, size_t offset, size_t size) { @autoreleasepool { - if (size == 0) + if (size == 0 || isImmutable()) return nullptr; Range r(offset, size); @@ -160,7 +160,7 @@ void Buffer::unmap(size_t usedoffset, size_t usedsize) void Buffer::fill(size_t offset, size_t size, const void *data) { @autoreleasepool { - if (size == 0) + if (size == 0 || isImmutable()) return; size_t buffersize = getSize();