REVIEWED: Data types validation
This commit is contained in:
parent
15716e59dc
commit
ab1e246367
4 changed files with 25 additions and 9 deletions
10
src/raudio.c
10
src/raudio.c
|
@ -912,11 +912,11 @@ Sound LoadSoundFromWave(Wave wave)
|
|||
// Checks if a sound is ready
|
||||
bool IsSoundReady(Sound sound)
|
||||
{
|
||||
return ((sound.frameCount > 0) && // Validate frame count
|
||||
(sound.stream.buffer != NULL) && // Validate stream buffer
|
||||
(sound.stream.sampleRate > 0) && // Validate sample rate is supported
|
||||
(sound.stream.sampleSize > 0) && // Validate sample size is supported
|
||||
(sound.stream.channels > 0)); // Validate number of channels supported
|
||||
return ((sound.frameCount > 0) && // Validate frame count
|
||||
(sound.stream.buffer != NULL) && // Validate stream buffer
|
||||
(sound.stream.sampleRate > 0) && // Validate sample rate is supported
|
||||
(sound.stream.sampleSize > 0) && // Validate sample size is supported
|
||||
(sound.stream.channels > 0)); // Validate number of channels supported
|
||||
}
|
||||
|
||||
// Unload wave data
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue