diff options
| author | Ray <raysan5@gmail.com> | 2018-02-22 12:39:17 +0100 |
|---|---|---|
| committer | Ray <raysan5@gmail.com> | 2018-02-22 12:39:17 +0100 |
| commit | 6d64327a874b09e93290d1525edd5347a9787b84 (patch) | |
| tree | 19e5747cd2ede30b2a1f7717de9867008ce13e21 /src | |
| parent | cd5e2e0f17f87fc7c5794327bba1b384758f4937 (diff) | |
| download | raylib-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.c | 9 |
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); } } |
