REVIEWED: Data types validation

This commit is contained in:
Ray 2023-03-07 20:33:45 +01:00
parent 15716e59dc
commit ab1e246367
4 changed files with 25 additions and 9 deletions

View file

@ -1112,7 +1112,13 @@ Model LoadModelFromMesh(Mesh mesh)
// Check if a model is ready
bool IsModelReady(Model model)
{
return model.meshes != NULL && model.materials != NULL && model.meshMaterial != NULL && model.meshCount > 0 && model.materialCount > 0;
return ((model.meshes != NULL) && // Validate model contains some mesh
(model.materials != NULL) && // Validate model contains some material (at least default one)
(model.meshMaterial != NULL) && // Validate mesh-material linkage
(model.meshCount > 0) && // Validate mesh count
(model.materialCount > 0)); // Validate material count
// NOTE: This is a very general model validation, many elements could be validated from a model...
}
// Unload model (meshes/materials) from memory (RAM and/or VRAM)
@ -1959,7 +1965,8 @@ Material LoadMaterialDefault(void)
// Check if a material is ready
bool IsMaterialReady(Material material)
{
return material.maps != NULL;
return ((material.maps != NULL) && // Validate material contain some map
(material.shader.id > 0)); // Validate material shader is valid
}
// Unload material from memory

View file

@ -538,7 +538,14 @@ Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int
// Check if a font is ready
bool IsFontReady(Font font)
{
return font.glyphs != NULL;
return ((font.texture.id > 0) && // Validate OpenGL id fot font texture atlas
(font.baseSize > 0) && // Validate font size
(font.glyphCount > 0) && // Validate font contains some glyph
(font.recs != NULL) && // Validate font recs defining glyphs on texture atlas
(font.glyphs != NULL)); // Validate glyph data is loaded
// NOTE: Further validations could be done to verify if recs count and glyphs count
// match glyphCount and to verify that data contained is valid (glyphs values, metrics...)
}
// Load font data for further use

View file

@ -3362,7 +3362,9 @@ void UnloadTexture(Texture2D texture)
// Check if a render texture is ready
bool IsRenderTextureReady(RenderTexture2D target)
{
return target.id > 0 && IsTextureReady(target.depth) && IsTextureReady(target.texture);
return ((target.id > 0) && // Validate OpenGL id
IsTextureReady(target.depth) && // Validate FBO depth texture/renderbuffer
IsTextureReady(target.texture)); // Validate FBO texture
}
// Unload render texture from GPU memory (VRAM)