|
@@ -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)
|