From 1e85e1b414332efe21f5f6cfb6d522a36e512ca7 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sat, 27 Mar 2021 22:21:00 -0300 Subject: [PATCH] metal: fix Buffers, fix shader cleanup --- src/modules/graphics/metal/Buffer.mm | 2 ++ src/modules/graphics/metal/Graphics.mm | 1 + src/modules/graphics/metal/Shader.mm | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modules/graphics/metal/Buffer.mm b/src/modules/graphics/metal/Buffer.mm index 013f9a587..60c2fa112 100644 --- a/src/modules/graphics/metal/Buffer.mm +++ b/src/modules/graphics/metal/Buffer.mm @@ -116,6 +116,7 @@ void *Buffer::map(MapType /*map*/, size_t offset, size_t size) if (mapBuffer != nil) { mappedRange = r; + mapped = true; return mapBuffer.contents; } @@ -142,6 +143,7 @@ void Buffer::unmap(size_t usedoffset, size_t usedsize) size:usedsize]; mapBuffer = nil; + mapped = false; }} void Buffer::fill(size_t offset, size_t size, const void *data) diff --git a/src/modules/graphics/metal/Graphics.mm b/src/modules/graphics/metal/Graphics.mm index b17e3d7bf..5757ddfad 100644 --- a/src/modules/graphics/metal/Graphics.mm +++ b/src/modules/graphics/metal/Graphics.mm @@ -1637,6 +1637,7 @@ void Graphics::initCapabilities() void Graphics::getAPIStats(int &shaderswitches) const { + // TODO shaderswitches = 0; } diff --git a/src/modules/graphics/metal/Shader.mm b/src/modules/graphics/metal/Shader.mm index 1e9385b35..1c218e056 100644 --- a/src/modules/graphics/metal/Shader.mm +++ b/src/modules/graphics/metal/Shader.mm @@ -427,9 +427,11 @@ Shader::~Shader() for (const auto &it : uniforms) { - free(it.second.data); if (it.second.textures != nullptr) + { + free(it.second.data); delete[] it.second.textures; + } } delete[] localUniformBufferData;