Browse Source

metal: fix Buffers, fix shader cleanup

Alex Szpakowski 4 years ago
parent
commit
1e85e1b414

+ 2 - 0
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)

+ 1 - 0
src/modules/graphics/metal/Graphics.mm

@@ -1637,6 +1637,7 @@ void Graphics::initCapabilities()
 
 void Graphics::getAPIStats(int &shaderswitches) const
 {
+	// TODO
 	shaderswitches = 0;
 }
 

+ 3 - 1
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;