summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRay <[email protected]>2023-02-21 13:15:11 +0100
committerRay <[email protected]>2023-02-21 13:15:11 +0100
commitbcae065c8851eacb1ab1e60cf085dd7edcf2a8f7 (patch)
tree6f979ccc8ffd9a41459e4f532f9d67ba50f4286d /src
parent1347a155397621d789f23a4bd1f49e3652cb125d (diff)
downloadraylib-bcae065c8851eacb1ab1e60cf085dd7edcf2a8f7.tar.gz
raylib-bcae065c8851eacb1ab1e60cf085dd7edcf2a8f7.zip
REVIEWED: `IsShaderReady()`
Diffstat (limited to 'src')
-rw-r--r--src/rcore.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/rcore.c b/src/rcore.c
index df5f193c..6fdeb94e 100644
--- a/src/rcore.c
+++ b/src/rcore.c
@@ -2561,7 +2561,33 @@ Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode)
// Check if a shader is ready
bool IsShaderReady(Shader shader)
{
- return shader.locs != NULL;
+ return ((shader.id > 0) && // Validate shader id (loaded successfully)
+ (shader.locs != NULL)); // Validate memory has been allocated for default shader locations
+
+ // The following locations are tried to be set automatically (locs[i] >= 0),
+ // any of them can be checked for validation but the only mandatory one is, afaik, SHADER_LOC_VERTEX_POSITION
+ // NOTE: Users can also setup manually their own attributes/uniforms and do not used the default raylib ones
+
+ // Vertex shader attribute locations (default)
+ // shader.locs[SHADER_LOC_VERTEX_POSITION] // Set by default internal shader
+ // shader.locs[SHADER_LOC_VERTEX_TEXCOORD01] // Set by default internal shader
+ // shader.locs[SHADER_LOC_VERTEX_TEXCOORD02]
+ // shader.locs[SHADER_LOC_VERTEX_NORMAL]
+ // shader.locs[SHADER_LOC_VERTEX_TANGENT]
+ // shader.locs[SHADER_LOC_VERTEX_COLOR] // Set by default internal shader
+
+ // Vertex shader uniform locations (default)
+ // shader.locs[SHADER_LOC_MATRIX_MVP] // Set by default internal shader
+ // shader.locs[SHADER_LOC_MATRIX_VIEW]
+ // shader.locs[SHADER_LOC_MATRIX_PROJECTION]
+ // shader.locs[SHADER_LOC_MATRIX_MODEL]
+ // shader.locs[SHADER_LOC_MATRIX_NORMAL]
+
+ // Fragment shader uniform locations (default)
+ // shader.locs[SHADER_LOC_COLOR_DIFFUSE] // Set by default internal shader
+ // shader.locs[SHADER_LOC_MAP_DIFFUSE] // Set by default internal shader
+ // shader.locs[SHADER_LOC_MAP_SPECULAR]
+ // shader.locs[SHADER_LOC_MAP_NORMAL]
}
// Unload shader from GPU memory (VRAM)