diff --git a/src/osgPlugins/txp/TXPArchive.cpp b/src/osgPlugins/txp/TXPArchive.cpp index 5f80793db..de4a4816d 100644 --- a/src/osgPlugins/txp/TXPArchive.cpp +++ b/src/osgPlugins/txp/TXPArchive.cpp @@ -130,6 +130,9 @@ bool TXPArchive::loadMaterials() // Create a texture by name. osg::ref_ptr osg_texture = new osg::Texture2D(); + + // make sure the Texture unref's the Image after apply, when it is no longer needed. + osg_texture->setUnRefImageDataAfterApply(true); // Load Texture and Create Texture State std::string filename = osgDB::getSimpleFileName(texName); diff --git a/src/osgPlugins/txp/TXPParser.cpp b/src/osgPlugins/txp/TXPParser.cpp index e6092ff0c..34bb50057 100644 --- a/src/osgPlugins/txp/TXPParser.cpp +++ b/src/osgPlugins/txp/TXPParser.cpp @@ -1176,6 +1176,9 @@ osg::Texture2D* txp::getLocalTexture(trpgrImageHelper& image_helper, const trpgT { osg_texture = new osg::Texture2D(); + // make sure the Texture unref's the Image after apply, when it is no longer needed. + osg_texture->setUnRefImageDataAfterApply(true); + osg::Image* image = new osg::Image; char* data = 0L; @@ -1246,6 +1249,9 @@ osg::Texture2D* txp::getTemplateTexture(trpgrImageHelper& image_helper, trpgLoca { osg_texture = new osg::Texture2D(); + // make sure the Texture unref's the Image after apply, when it is no longer needed. + osg_texture->setUnRefImageDataAfterApply(true); + osg::Image* image = new osg::Image; char* data = 0L;