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

@ -912,11 +912,11 @@ Sound LoadSoundFromWave(Wave wave)
// Checks if a sound is ready // Checks if a sound is ready
bool IsSoundReady(Sound sound) bool IsSoundReady(Sound sound)
{ {
return ((sound.frameCount > 0) && // Validate frame count return ((sound.frameCount > 0) && // Validate frame count
(sound.stream.buffer != NULL) && // Validate stream buffer (sound.stream.buffer != NULL) && // Validate stream buffer
(sound.stream.sampleRate > 0) && // Validate sample rate is supported (sound.stream.sampleRate > 0) && // Validate sample rate is supported
(sound.stream.sampleSize > 0) && // Validate sample size is supported (sound.stream.sampleSize > 0) && // Validate sample size is supported
(sound.stream.channels > 0)); // Validate number of channels supported (sound.stream.channels > 0)); // Validate number of channels supported
} }
// Unload wave data // Unload wave data

View file

@ -1112,7 +1112,13 @@ Model LoadModelFromMesh(Mesh mesh)
// Check if a model is ready // Check if a model is ready
bool IsModelReady(Model model) 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) // Unload model (meshes/materials) from memory (RAM and/or VRAM)
@ -1959,7 +1965,8 @@ Material LoadMaterialDefault(void)
// Check if a material is ready // Check if a material is ready
bool IsMaterialReady(Material material) 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 // 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 // Check if a font is ready
bool IsFontReady(Font font) 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 // Load font data for further use

View file

@ -3362,7 +3362,9 @@ void UnloadTexture(Texture2D texture)
// Check if a render texture is ready // Check if a render texture is ready
bool IsRenderTextureReady(RenderTexture2D target) 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) // Unload render texture from GPU memory (VRAM)