aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRay San <raysan5@gmail.com>2017-10-19 14:14:18 +0200
committerRay San <raysan5@gmail.com>2017-10-19 14:14:18 +0200
commit86df9168e78ab048f5aba989b2e704e87adea736 (patch)
tree80f6de63c6f6cfbe6004abcce6898fb9f5a6f43a /src
parent1474172b4a30d4764c2f35c1cb3e578b89d3136c (diff)
downloadraylib-86df9168e78ab048f5aba989b2e704e87adea736.tar.gz
raylib-86df9168e78ab048f5aba989b2e704e87adea736.zip
Updated raylib VS2015 project
Diffstat (limited to 'src')
-rw-r--r--src/models.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/models.c b/src/models.c
index ea8f6c30..4b8a6731 100644
--- a/src/models.c
+++ b/src/models.c
@@ -666,7 +666,7 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ)
// Vertices definition
int vertexCount = resX*resZ*6; // 6 vertex by quad
- Vector3 vertices[vertexCount];
+ Vector3 *vertices = (Vector3 *)malloc(vertexCount*sizeof(Vector3));
for (int z = 0; z < resZ; z++)
{
// [-length/2, length/2]
@@ -680,11 +680,11 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ)
}
// Normals definition
- Vector3 normals[vertexCount];
+ Vector3 *normals = (Vector3 *)malloc(vertexCount*sizeof(Vector3));
for (int n = 0; n < vertexCount; n++) normals[n] = (Vector3){ 0.0f, 1.0f, 0.0f }; // Vector3.up;
// TexCoords definition
- Vector2 texcoords[vertexCount];
+ Vector2 *texcoords = (Vector2 *)malloc(vertexCount*sizeof(Vector2));
for (int v = 0; v < resZ; v++)
{
for (int u = 0; u < resX; u++)
@@ -694,10 +694,10 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ)
}
// Triangles definition (indices)
- int nbFaces = (resX - 1)*(resZ - 1);
- int triangles[nbFaces*6];
+ int numFaces = (resX - 1)*(resZ - 1);
+ int *triangles = (int *)malloc(numFaces*6*sizeof(int));
int t = 0;
- for (int face = 0; face < nbFaces; face++)
+ for (int face = 0; face < numFaces; face++)
{
// Retrieve lower left corner from face ind
int i = face % (resX - 1) + (face/(resZ - 1)*resX);
@@ -712,7 +712,7 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ)
}
mesh.vertexCount = vertexCount;
- mesh.triangleCount = nbFaces*2;
+ mesh.triangleCount = numFaces*2;
mesh.vertices = (float *)malloc(mesh.vertexCount*3*sizeof(float));
mesh.texcoords = (float *)malloc(mesh.vertexCount*2*sizeof(float));
mesh.normals = (float *)malloc(mesh.vertexCount*3*sizeof(float));
@@ -744,6 +744,11 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ)
// Mesh indices array initialization
for (int i = 0; i < mesh.triangleCount*3; i++) mesh.indices[i] = triangles[i];
+ free(vertices);
+ free(normals);
+ free(texcoords);
+ free(triangles);
+
#else // Use par_shapes library to generate plane mesh
par_shapes_mesh *plane = par_shapes_create_plane(resX, resZ); // No normals/texcoords generated!!!