Reviewed possible issue with shaders detaching
This commit is contained in:
parent
fbf34f7c0d
commit
612c4ad1dc
1 changed files with 15 additions and 12 deletions
27
src/rlgl.h
27
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;
|
if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId);
|
if ((vertexShaderId != 0) && (fragmentShaderId != 0))
|
||||||
|
{
|
||||||
|
id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId);
|
||||||
|
|
||||||
if (vertexShaderId != RLGL.State.defaultVShaderId)
|
if (vertexShaderId != RLGL.State.defaultVShaderId)
|
||||||
{
|
{
|
||||||
// Detach shader before deletion to make sure memory is freed
|
// Detach shader before deletion to make sure memory is freed
|
||||||
glDetachShader(id, vertexShaderId);
|
glDetachShader(id, vertexShaderId);
|
||||||
glDeleteShader(vertexShaderId);
|
glDeleteShader(vertexShaderId);
|
||||||
}
|
}
|
||||||
if (fragmentShaderId != RLGL.State.defaultFShaderId)
|
if (fragmentShaderId != RLGL.State.defaultFShaderId)
|
||||||
{
|
{
|
||||||
// Detach shader before deletion to make sure memory is freed
|
// Detach shader before deletion to make sure memory is freed
|
||||||
glDetachShader(id, fragmentShaderId);
|
glDetachShader(id, fragmentShaderId);
|
||||||
glDeleteShader(fragmentShaderId);
|
glDeleteShader(fragmentShaderId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue