From 153470d60503e840d5b0a15abe3647a4316e988c Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 21 Feb 2023 23:55:55 +0100 Subject: [PATCH] REVIEWED: `GenMeshTangents()`, avoid crash on missing texcoords data #2927 --- src/rmodels.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index 2fd2d5a4a..f8d6ec135 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -3326,9 +3326,15 @@ BoundingBox GetMeshBoundingBox(Mesh mesh) // Compute mesh tangents // NOTE: To calculate mesh tangents and binormals we need mesh vertex positions and texture coordinates -// Implementation base don: https://answers.unity.com/questions/7789/calculating-tangents-vector4.html +// Implementation based on: https://answers.unity.com/questions/7789/calculating-tangents-vector4.html void GenMeshTangents(Mesh *mesh) { + if ((mesh->vertices == NULL) || (mesh->texcoords == NULL)) + { + TRACELOG(LOG_WARNING, "MESH: Tangents generation requires texcoord vertex attribute data"); + return; + } + if (mesh->tangents == NULL) mesh->tangents = (float *)RL_MALLOC(mesh->vertexCount*4*sizeof(float)); else {