summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rlgl.h27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/rlgl.h b/src/rlgl.h
index fc5857b8..3ae8575f 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -3550,19 +3550,22 @@ unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode)
if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId;
else
{
- id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId);
-
- if (vertexShaderId != RLGL.State.defaultVShaderId)
- {
- // Detach shader before deletion to make sure memory is freed
- glDetachShader(id, vertexShaderId);
- glDeleteShader(vertexShaderId);
- }
- if (fragmentShaderId != RLGL.State.defaultFShaderId)
+ if ((vertexShaderId != 0) && (fragmentShaderId != 0))
{
- // Detach shader before deletion to make sure memory is freed
- glDetachShader(id, fragmentShaderId);
- glDeleteShader(fragmentShaderId);
+ id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId);
+
+ if (vertexShaderId != RLGL.State.defaultVShaderId)
+ {
+ // Detach shader before deletion to make sure memory is freed
+ glDetachShader(id, vertexShaderId);
+ glDeleteShader(vertexShaderId);
+ }
+ if (fragmentShaderId != RLGL.State.defaultFShaderId)
+ {
+ // Detach shader before deletion to make sure memory is freed
+ glDetachShader(id, fragmentShaderId);
+ glDeleteShader(fragmentShaderId);
+ }
}
if (id == 0)