Corrected bug and comments on model unloading
This commit is contained in:
parent
8b7ca8b670
commit
956a6e6f77
@ -608,6 +608,8 @@ void UnloadModel(Model model)
|
|||||||
//if (model.mesh.texcoords2 != NULL) free(model.mesh.texcoords2); // Not used
|
//if (model.mesh.texcoords2 != NULL) free(model.mesh.texcoords2); // Not used
|
||||||
//if (model.mesh.tangents != NULL) free(model.mesh.tangents); // 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[0]); // vertex
|
||||||
rlDeleteBuffers(model.mesh.vboId[1]); // texcoords
|
rlDeleteBuffers(model.mesh.vboId[1]); // texcoords
|
||||||
rlDeleteBuffers(model.mesh.vboId[2]); // normals
|
rlDeleteBuffers(model.mesh.vboId[2]); // normals
|
||||||
@ -616,9 +618,6 @@ void UnloadModel(Model model)
|
|||||||
//rlDeleteBuffers(model.mesh.vboId[5]); // colors (NOT USED)
|
//rlDeleteBuffers(model.mesh.vboId[5]); // colors (NOT USED)
|
||||||
|
|
||||||
rlDeleteVertexArrays(model.mesh.vaoId);
|
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
|
// Link a texture to a model
|
||||||
|
18
src/rlgl.c
18
src/rlgl.c
@ -823,7 +823,11 @@ void rlDeleteShader(unsigned int id)
|
|||||||
void rlDeleteVertexArrays(unsigned int id)
|
void rlDeleteVertexArrays(unsigned int id)
|
||||||
{
|
{
|
||||||
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
#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
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -832,6 +836,8 @@ void rlDeleteBuffers(unsigned int id)
|
|||||||
{
|
{
|
||||||
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
||||||
glDeleteBuffers(1, &id);
|
glDeleteBuffers(1, &id);
|
||||||
|
|
||||||
|
if (!vaoSupported) TraceLog(INFO, "[VBO ID %i] Unloaded model vertex data from VRAM (GPU)", id);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1139,7 +1145,7 @@ FBO rlglLoadFBO(int width, int height)
|
|||||||
|
|
||||||
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
|
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
|
||||||
|
|
||||||
if (status != GL_FRAMEBUFFER_COMPLETE)
|
if (status != GL_FRAMEBUFFER_COMPLETE)
|
||||||
{
|
{
|
||||||
TraceLog(WARNING, "Framebuffer object could not be created...");
|
TraceLog(WARNING, "Framebuffer object could not be created...");
|
||||||
|
|
||||||
@ -1238,12 +1244,6 @@ void rlglClose(void)
|
|||||||
rlglUnloadFBO(postproFbo);
|
rlglUnloadFBO(postproFbo);
|
||||||
|
|
||||||
// Unload postpro quad model data
|
// 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[0]);
|
||||||
rlDeleteBuffers(postproQuad.mesh.vboId[1]);
|
rlDeleteBuffers(postproQuad.mesh.vboId[1]);
|
||||||
rlDeleteBuffers(postproQuad.mesh.vboId[2]);
|
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);
|
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
|
// 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)
|
#elif defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
||||||
glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically
|
glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically
|
||||||
|
Loading…
Reference in New Issue
Block a user