|  |  | @ -782,16 +782,50 @@ Model LoadModelFromMesh(Mesh mesh) | 
		
	
		
			
			|  |  |  | return model; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Unload model from memory (RAM and/or VRAM) | 
		
	
		
			
			|  |  |  | // Unload model (meshes/materials) from memory (RAM and/or VRAM) | 
		
	
		
			
			|  |  |  | // NOTE: This function takes care of all model elements, for a detailed control | 
		
	
		
			
			|  |  |  | // over them, use UnloadMesh() and UnloadMaterial() | 
		
	
		
			
			|  |  |  | void UnloadModel(Model model) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | // Unload meshes | 
		
	
		
			
			|  |  |  | for (int i = 0; i < model.meshCount; i++) UnloadMesh(model.meshes[i]); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // As the user could be sharing shaders and textures between models, | 
		
	
		
			
			|  |  |  | // 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); | 
		
	
		
			
			|  |  |  | // Unload materials maps  and params | 
		
	
		
			
			|  |  |  | // 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, | 
		
	
		
			
			|  |  |  | // 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); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Unload arrays | 
		
	
		
			
			|  |  |  | RL_FREE(model.meshes); | 
		
	
		
			
			|  |  |  | RL_FREE(model.materials); | 
		
	
		
			
			|  |  |  | RL_FREE(model.meshMaterial); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Unload animation data | 
		
	
		
			
			|  |  |  | RL_FREE(model.bones); | 
		
	
		
			
			|  |  |  | RL_FREE(model.bindPose); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | TRACELOG(LOG_INFO, "MODEL: Unloaded model (and meshes) from RAM and VRAM"); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Unload model (but not meshes) from memory (RAM and/or VRAM) | 
		
	
		
			
			|  |  |  | void UnloadModelKeepMeshes(Model model) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | // Unload materials maps  and params | 
		
	
		
			
			|  |  |  | // 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, | 
		
	
		
			
			|  |  |  | // 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); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Unload arrays | 
		
	
		
			
			|  |  |  | RL_FREE(model.meshes); | 
		
	
		
			
			|  |  |  | RL_FREE(model.materials); | 
		
	
		
			
			|  |  |  | RL_FREE(model.meshMaterial); | 
		
	
	
		
			
				|  |  | @ -800,7 +834,7 @@ void UnloadModel(Model model) | 
		
	
		
			
			|  |  |  | RL_FREE(model.bones); | 
		
	
		
			
			|  |  |  | RL_FREE(model.bindPose); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | TRACELOG(LOG_INFO, "MODEL: Unloaded model from RAM and VRAM"); | 
		
	
		
			
			|  |  |  | TRACELOG(LOG_INFO, "MODEL: Unloaded model (but not meshes) from RAM and VRAM"); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Load meshes from model file | 
		
	
	
		
			
				|  |  | @ -950,6 +984,7 @@ void UnloadMaterial(Material material) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | RL_FREE(material.maps); | 
		
	
		
			
			|  |  |  | RL_FREE(material.params); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...) | 
		
	
	
		
			
				|  |  |  |