void ObjectManager::deleteEqFrameBufferObject( const void* key ) { FBOHash::iterator i = _impl->eqFrameBufferObjects.find(key); if( i == _impl->eqFrameBufferObjects.end( )) return; FrameBufferObject* frameBufferObject = i->second; _impl->eqFrameBufferObjects.erase( i ); frameBufferObject->exit(); delete frameBufferObject; }
void ObjectManager::deleteAll() { for( ObjectHash::const_iterator i = _impl->lists.begin(); i != _impl->lists.end(); ++i ) { const Object& object = i->second; LBVERB << "Delete list " << object.id << std::endl; EQ_GL_CALL( glDeleteLists( object.id, object.num )); } _impl->lists.clear(); for( ObjectHash::const_iterator i = _impl->textures.begin(); i != _impl->textures.end(); ++i ) { const Object& object = i->second; LBVERB << "Delete texture " << object.id << std::endl; EQ_GL_CALL( glDeleteTextures( 1, &object.id )); } _impl->textures.clear(); for( ObjectHash::const_iterator i = _impl->buffers.begin(); i != _impl->buffers.end(); ++i ) { const Object& object = i->second; LBVERB << "Delete buffer " << object.id << std::endl; EQ_GL_CALL( glDeleteBuffers( 1, &object.id )); } _impl->buffers.clear(); for( ObjectHash::const_iterator i = _impl->programs.begin(); i != _impl->programs.end(); ++i ) { const Object& object = i->second; LBVERB << "Delete program " << object.id << std::endl; EQ_GL_CALL( glDeleteProgram( object.id )); } _impl->programs.clear(); for( ObjectHash::const_iterator i = _impl->shaders.begin(); i != _impl->shaders.end(); ++i ) { const Object& object = i->second; LBVERB << "Delete shader " << object.id << std::endl; EQ_GL_CALL( glDeleteShader( object.id )); } _impl->shaders.clear(); for( TextureHash::const_iterator i = _impl->eqTextures.begin(); i != _impl->eqTextures.end(); ++i ) { Texture* texture = i->second; LBVERB << "Delete eq::Texture " << i->first << " @" << (void*)texture << std::endl; texture->flush(); delete texture; } _impl->eqTextures.clear(); for( FontHash::const_iterator i = _impl->eqFonts.begin(); i != _impl->eqFonts.end(); ++i ) { util::BitmapFont* font = i->second; LBVERB << "Delete eq::Font " << i->first << " @" << (void*)font << std::endl; font->exit(); delete font; } _impl->eqFonts.clear(); for( FBOHash::const_iterator i = _impl->eqFrameBufferObjects.begin(); i != _impl->eqFrameBufferObjects.end(); ++i ) { FrameBufferObject* frameBufferObject = i->second; LBVERB << "Delete eq::FrameBufferObject " << i->first << " @" << (void*)frameBufferObject << std::endl; frameBufferObject->exit(); delete frameBufferObject; } _impl->eqFrameBufferObjects.clear(); for( UploaderHash::const_iterator i = _impl->eqUploaders.begin(); i != _impl->eqUploaders.end(); ++i ) { pression::Uploader* uploader = i->second; LBVERB << "Delete uploader " << i->first << " @" << (void*)uploader << std::endl; uploader->clear(); delete uploader; } _impl->eqUploaders.clear(); }