glDetachShader should remove, not add the shader if unlinked

This commit is contained in:
Baldur Karlsson
2014-06-24 15:53:19 +01:00
parent e778ad7b74
commit 9441c0aa1d
@@ -224,7 +224,17 @@ bool WrappedOpenGL::Serialise_glDetachShader(GLuint program, GLuint shader)
ResourceId liveShadId = GetResourceManager()->GetLiveID(shadid);
if(!m_Programs[liveProgId].linked)
m_Programs[liveProgId].shaders.push_back(liveShadId);
{
for(auto it = m_Programs[liveProgId].shaders.begin();
it != m_Programs[liveProgId].shaders.end(); ++it)
{
if(*it == liveShadId)
{
m_Programs[liveProgId].shaders.erase(it);
break;
}
}
}
m_Real.glDetachShader(GetResourceManager()->GetLiveResource(progid).name,
GetResourceManager()->GetLiveResource(shadid).name);