diff --git a/src/models.c b/src/models.c index 729cc2a2b..7c45afd29 100644 --- a/src/models.c +++ b/src/models.c @@ -797,15 +797,11 @@ void UnloadModel(Model model) // Unload meshes for (int i = 0; i < model.meshCount; i++) UnloadMesh(model.meshes[i]); - // Unload materials maps and params + // Unload materials maps // NOTE: As the user could be sharing shaders and textures between models, - // we don't unload the material but just free it's maps and params, + // we don't unload the material but just free it's maps, // the user is responsible for freeing models shaders and textures - for (int i = 0; i < model.materialCount; i++) - { - RL_FREE(model.materials[i].maps); - RL_FREE(model.materials[i].params); - } + for (int i = 0; i < model.materialCount; i++) RL_FREE(model.materials[i].maps); // Unload arrays RL_FREE(model.meshes); @@ -822,15 +818,11 @@ void UnloadModel(Model model) // Unload model (but not meshes) from memory (RAM and/or VRAM) void UnloadModelKeepMeshes(Model model) { - // Unload materials maps and params + // Unload materials maps // NOTE: As the user could be sharing shaders and textures between models, - // we don't unload the material but just free it's maps and params, + // we don't unload the material but just free it's maps, // the user is responsible for freeing models shaders and textures - for (int i = 0; i < model.materialCount; i++) - { - RL_FREE(model.materials[i].maps); - RL_FREE(model.materials[i].params); - } + for (int i = 0; i < model.materialCount; i++) RL_FREE(model.materials[i].maps); // Unload arrays RL_FREE(model.meshes); @@ -1013,7 +1005,6 @@ void UnloadMaterial(Material material) } RL_FREE(material.maps); - RL_FREE(material.params); } // Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) diff --git a/src/raylib.h b/src/raylib.h index 676b07f5c..be071416f 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -349,7 +349,7 @@ typedef struct MaterialMap { typedef struct Material { Shader shader; // Material shader MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) - float *params; // Material generic parameters (if required) + float params[4]; // Material generic parameters (if required) } Material; // Transformation properties diff --git a/src/rlgl.h b/src/rlgl.h index d3fa2313a..2c2b98ef8 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -316,7 +316,7 @@ typedef enum { typedef struct Material { Shader shader; // Material shader MaterialMap *maps; // Material maps (MAX_MATERIAL_MAPS) - float *params; // Material generic parameters (if required) + float params[4]; // Material generic parameters (if required) } Material; // Camera type, defines a camera position/orientation in 3d space