aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2018-02-22 12:39:17 +0100
committerRay <raysan5@gmail.com>2018-02-22 12:39:17 +0100
commit6d64327a874b09e93290d1525edd5347a9787b84 (patch)
tree19e5747cd2ede30b2a1f7717de9867008ce13e21
parentcd5e2e0f17f87fc7c5794327bba1b384758f4937 (diff)
downloadraylib-6d64327a874b09e93290d1525edd5347a9787b84.tar.gz
raylib-6d64327a874b09e93290d1525edd5347a9787b84.zip
Reviewed unloading model data
When UnloadModel() --> UnloadMaterial(), avoid unloading default shader (if used) and avoid unlaoding default texture (if used), that data is managed by raylib internally. The question is... should UnloadModel() also UnloadMaterial()?
-rw-r--r--src/models.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/models.c b/src/models.c
index 1f37e345..02e69c0c 100644
--- a/src/models.c
+++ b/src/models.c
@@ -1671,14 +1671,13 @@ Material LoadMaterialDefault(void)
// Unload material from memory
void UnloadMaterial(Material material)
{
- // Unload material shader
- UnloadShader(material.shader);
+ // Unload material shader (avoid unloading default shader, managed by raylib)
+ if (material.shader.id != GetShaderDefault().id) UnloadShader(material.shader);
- // Unload loaded texture maps
+ // Unload loaded texture maps (avoid unloading default texture, managed by raylib)
for (int i = 0; i < MAX_MATERIAL_MAPS; i++)
{
- // NOTE: We already check for (tex.id > 0) inside function
- rlDeleteTextures(material.maps[i].texture.id);
+ if (material.maps[i].texture.id != GetTextureDefault().id) rlDeleteTextures(material.maps[i].texture.id);
}
}