aboutsummaryrefslogtreecommitdiff
path: root/src
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 /src
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()?
Diffstat (limited to 'src')
-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);
}
}