Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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();
}