Fixed ShaderComposer::releaseGLObjects(State*) const method as it's const was missing.

Rewrote the ShaderComposer::releaseGLObjects() const method to pass on the releaseGLObjects() calls to any associated Program or Shader objects.
This commit is contained in:
Robert Osfield
2016-04-18 20:46:45 +01:00
parent 84618896c2
commit eb50a15b52
2 changed files with 15 additions and 4 deletions

View File

@@ -37,10 +37,21 @@ ShaderComposer::~ShaderComposer()
OSG_INFO<<"ShaderComposer::~ShaderComposer() "<<this<<std::endl;
}
void ShaderComposer::releaseGLObjects(osg::State* state)
void ShaderComposer::releaseGLObjects(osg::State* state) const
{
_programMap.clear();
_shaderMainMap.clear();
for(ProgramMap::const_iterator itr = _programMap.begin();
itr != _programMap.end();
++itr)
{
itr->second->releaseGLObjects(state);
}
for(ShaderMainMap::const_iterator itr = _shaderMainMap.begin();
itr != _shaderMainMap.end();
++itr)
{
itr->second->releaseGLObjects(state);
}
}
osg::Program* ShaderComposer::getOrCreateProgram(const ShaderComponents& shaderComponents)