From 7834a4e2fc967e88bebb168ad63c8a28eb5e44eb Mon Sep 17 00:00:00 2001 From: raysan5 Date: Wed, 29 Jul 2015 21:43:30 +0200 Subject: Replaced old mail by twitter user --- src/models.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/models.c') diff --git a/src/models.c b/src/models.c index c45e18c8..862d96cc 100644 --- a/src/models.c +++ b/src/models.c @@ -4,7 +4,7 @@ * * Basic functions to draw 3d shapes and load/draw 3d models (.OBJ) * -* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) +* Copyright (c) 2014 Ramon Santamaria (@raysan5) * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. -- cgit v1.2.3 From 36552ff995e402c4acff6261d42541732febf10b Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 3 Aug 2015 17:27:04 +0200 Subject: Added security check if file not found --- src/models.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'src/models.c') diff --git a/src/models.c b/src/models.c index 862d96cc..81f3db68 100644 --- a/src/models.c +++ b/src/models.c @@ -558,22 +558,33 @@ void DrawGizmo(Vector3 position) Model LoadModel(const char *fileName) { VertexData vData; + + Model model; + + // TODO: Initialize default data for model in case loading fails, maybe a cube? if (strcmp(GetExtension(fileName),"obj") == 0) vData = LoadOBJ(fileName); else TraceLog(WARNING, "[%s] Model extension not recognized, it can't be loaded", fileName); // NOTE: At this point we have all vertex, texcoord, normal data for the model in vData struct - - // NOTE: model properties (transform, texture, shader) are initialized inside rlglLoadModel() - Model model = rlglLoadModel(vData); // Upload vertex data to GPU - - // Now that vertex data is uploaded to GPU, we can free arrays - // NOTE: We don't need CPU vertex data on OpenGL 3.3 or ES2 - if (rlGetVersion() != OPENGL_11) + + if (vData.vertexCount == 0) { - free(vData.vertices); - free(vData.texcoords); - free(vData.normals); + TraceLog(WARNING, "Model could not be loaded"); + } + else + { + // NOTE: model properties (transform, texture, shader) are initialized inside rlglLoadModel() + model = rlglLoadModel(vData); // Upload vertex data to GPU + + // Now that vertex data is uploaded to GPU, we can free arrays + // NOTE: We don't need CPU vertex data on OpenGL 3.3 or ES2 + if (rlGetVersion() != OPENGL_11) + { + free(vData.vertices); + free(vData.texcoords); + free(vData.normals); + } } return model; -- cgit v1.2.3 From a42bfa77942565b7806294c40a4d970f9c3d27df Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 5 Aug 2015 19:17:56 +0200 Subject: Added trace log for data unloading --- src/models.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/models.c') diff --git a/src/models.c b/src/models.c index 81f3db68..054febcf 100644 --- a/src/models.c +++ b/src/models.c @@ -1116,6 +1116,8 @@ void UnloadModel(Model model) rlDeleteBuffers(model.mesh.vboId[2]); rlDeleteVertexArrays(model.mesh.vaoId); + + TraceLog(INFO, "Unloaded model data"); } // Link a texture to a model -- cgit v1.2.3