summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRay <[email protected]>2021-03-02 00:34:10 +0100
committerRay <[email protected]>2021-03-02 00:34:10 +0100
commit2ff5fa73e9a4745aa1cc37a4e5be05c841778200 (patch)
treeb7ed37f6d2d0b728f24aeb866f4f37378cc8fe0f
parent742206c1f27dc987d3bf2ca09e5e72db8b6840f8 (diff)
downloadraylib-2ff5fa73e9a4745aa1cc37a4e5be05c841778200.tar.gz
raylib-2ff5fa73e9a4745aa1cc37a4e5be05c841778200.zip
REVIEWED: rlUnloadMesh() #1615
-rw-r--r--src/models.c2
-rw-r--r--src/rlgl.h11
2 files changed, 7 insertions, 6 deletions
diff --git a/src/models.c b/src/models.c
index b9222855..b3cd625e 100644
--- a/src/models.c
+++ b/src/models.c
@@ -859,7 +859,7 @@ void UploadMesh(Mesh *mesh)
void UnloadMesh(Mesh mesh)
{
// Unload rlgl mesh vboId data
- rlUnloadMesh(mesh);
+ rlUnloadMesh(&mesh);
RL_FREE(mesh.vertices);
RL_FREE(mesh.texcoords);
diff --git a/src/rlgl.h b/src/rlgl.h
index 26fd4b05..20b42cf8 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -575,7 +575,7 @@ RLAPI void rlUpdateMesh(Mesh mesh, int buffer, int count); // Upd
RLAPI void rlUpdateMeshAt(Mesh mesh, int buffer, int count, int index); // Update vertex or index data on GPU, at index
RLAPI void rlDrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform
RLAPI void rlDrawMeshInstanced(Mesh mesh, Material material, Matrix *transforms, int count); // Draw a 3d mesh with material and transform
-RLAPI void rlUnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU
+RLAPI void rlUnloadMesh(Mesh *mesh); // Unload mesh data from CPU and GPU
// NOTE: There is a set of shader related functions that are available to end user,
// to avoid creating function wrappers through core module, they have been directly declared in raylib.h
@@ -3012,20 +3012,21 @@ void rlDrawMeshInstanced(Mesh mesh, Material material, Matrix *transforms, int c
}
// Unload mesh data from CPU and GPU
-void rlUnloadMesh(Mesh mesh)
+void rlUnloadMesh(Mesh *mesh)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
- for (int i = 0; i < 7; i++) glDeleteBuffers(1, &mesh.vboId[i]); // DEFAULT_MESH_VERTEX_BUFFERS (model.c)
+ for (int i = 0; i < 7; i++) glDeleteBuffers(1, mesh->vboId[i]); // DEFAULT_MESH_VERTEX_BUFFERS (model.c)
if (RLGL.ExtSupported.vao)
{
glBindVertexArray(0);
- glDeleteVertexArrays(1, &mesh.vaoId);
+ glDeleteVertexArrays(1, mesh->vaoId);
TRACELOG(LOG_INFO, "VAO: [ID %i] Unloaded vertex data from VRAM (GPU)", mesh.vaoId);
}
else TRACELOG(LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)");
#endif
- RL_FREE(mesh.vboId);
+ RL_FREE(mesh->vboId);
+ mesh->vboId = NULL;
}
// Read screen pixel data (color buffer)