OK, I understand that. I do that because I own the data pointer I'm sending, and I am totally sure I am freeing it. However, some other copy remains anywhere, and I don't have access to it.
If I delete the osg::Group where I am attaching images and re-add the same imgaes, no more memory is allocated, so it is using the same buffers somehow, but I can't force it to free the memory when I want to 2016-04-13 7:21 GMT+01:00 Sebastian Messerschmidt < [email protected]>: > Hi Bruno, > > Hello, > > I am creating an image from custom data pointer as follows, however, this > does not result in freeing my memory after I delete the node and texture. > How could this be? > > image->setImage(src->tileSize(), src->tileSize(),1, > GL_RGBA8, > GL_RGBA, > GL_UNSIGNED_INT_8_8_8_8_REV, > src->tileGridCoords(col, row).m_data.data(), > osg::Image::NO_DELETE); > > You are telling OSG that you handle the memory yourself by stating > NO_DELETE. > So basically you're responsible to delete it. > > Cheers > Sebastian > > > // Setup texture > osg::ref_ptr<osg::Texture2D> texture = new osg::Texture2D; > texture->setImage(image.get()); > > // Avoid background border between tiles > // > http://stackoverflow.com/questions/19611745/opengl-black-lines-in-between-tiles > texture->setWrap(osg::Texture::WRAP_S, > osg::Texture::CLAMP_TO_EDGE); > texture->setWrap(osg::Texture::WRAP_T, > osg::Texture::CLAMP_TO_EDGE); > > > texture->setInternalFormatMode(osg::Texture2D::USE_S3TC_DXT1_COMPRESSION); > texture->setUnRefImageDataAfterApply( > > > > _______________________________________________ > osg-users mailing > [email protected]http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

