aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-03-27 18:33:30 +0200
committerraysan5 <raysan5@gmail.com>2016-03-27 18:34:05 +0200
commit956a6e6f7713a19e746497efb9e909ba88be9c3d (patch)
tree83eaaa6bc2c716a0739102cac0e566bf79f283d1 /src
parent8b7ca8b670a0f338fef85125311522833b945bf7 (diff)
downloadraylib-956a6e6f7713a19e746497efb9e909ba88be9c3d.tar.gz
raylib-956a6e6f7713a19e746497efb9e909ba88be9c3d.zip
Corrected bug and comments on model unloading
Diffstat (limited to 'src')
-rw-r--r--src/models.c5
-rw-r--r--src/rlgl.c18
2 files changed, 11 insertions, 12 deletions
diff --git a/src/models.c b/src/models.c
index a1590424..52c68f9b 100644
--- a/src/models.c
+++ b/src/models.c
@@ -608,6 +608,8 @@ void UnloadModel(Model model)
//if (model.mesh.texcoords2 != NULL) free(model.mesh.texcoords2); // Not used
//if (model.mesh.tangents != NULL) free(model.mesh.tangents); // Not used
+ TraceLog(INFO, "Unloaded model data from RAM (CPU)");
+
rlDeleteBuffers(model.mesh.vboId[0]); // vertex
rlDeleteBuffers(model.mesh.vboId[1]); // texcoords
rlDeleteBuffers(model.mesh.vboId[2]); // normals
@@ -616,9 +618,6 @@ void UnloadModel(Model model)
//rlDeleteBuffers(model.mesh.vboId[5]); // colors (NOT USED)
rlDeleteVertexArrays(model.mesh.vaoId);
-
- if (model.mesh.vaoId > 0) TraceLog(INFO, "[VAO ID %i] Unloaded model data from VRAM (GPU)", model.mesh.vaoId);
- else TraceLog(INFO, "[VBO ID %i][VBO ID %i][VBO ID %i] Unloaded model data from VRAM (GPU)", model.mesh.vboId[0], model.mesh.vboId[1], model.mesh.vboId[2]);
}
// Link a texture to a model
diff --git a/src/rlgl.c b/src/rlgl.c
index fc14a0af..39a34095 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -823,7 +823,11 @@ void rlDeleteShader(unsigned int id)
void rlDeleteVertexArrays(unsigned int id)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
- if (vaoSupported) glDeleteVertexArrays(1, &id);
+ if (vaoSupported)
+ {
+ glDeleteVertexArrays(1, &id);
+ TraceLog(INFO, "[VAO ID %i] Unloaded model data from VRAM (GPU)", id);
+ }
#endif
}
@@ -832,6 +836,8 @@ void rlDeleteBuffers(unsigned int id)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
glDeleteBuffers(1, &id);
+
+ if (!vaoSupported) TraceLog(INFO, "[VBO ID %i] Unloaded model vertex data from VRAM (GPU)", id);
#endif
}
@@ -1139,7 +1145,7 @@ FBO rlglLoadFBO(int width, int height)
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
- if (status != GL_FRAMEBUFFER_COMPLETE)
+ if (status != GL_FRAMEBUFFER_COMPLETE)
{
TraceLog(WARNING, "Framebuffer object could not be created...");
@@ -1238,12 +1244,6 @@ void rlglClose(void)
rlglUnloadFBO(postproFbo);
// Unload postpro quad model data
-#if defined(GRAPHICS_API_OPENGL_11)
- free(postproQuad.mesh.vertices);
- free(postproQuad.mesh.texcoords);
- free(postproQuad.mesh.normals);
-#endif
-
rlDeleteBuffers(postproQuad.mesh.vboId[0]);
rlDeleteBuffers(postproQuad.mesh.vboId[1]);
rlDeleteBuffers(postproQuad.mesh.vboId[2]);
@@ -1907,7 +1907,7 @@ void rlglGenerateMipmaps(Texture2D texture)
TraceLog(WARNING, "[TEX ID %i] Mipmaps generated manually on CPU side", texture.id);
// NOTE: Once mipmaps have been generated and data has been uploaded to GPU VRAM, we can discard RAM data
- free(data):
+ free(data);
#elif defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically