diff --git a/src/osgUtil/Optimizer.cpp b/src/osgUtil/Optimizer.cpp index 63d3d60af..b946e29c5 100644 --- a/src/osgUtil/Optimizer.cpp +++ b/src/osgUtil/Optimizer.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -2909,7 +2910,17 @@ void Optimizer::TextureVisitor::apply(osg::Texture& texture) { if (_changeAutoUnRef) { - texture.setUnRefImageDataAfterApply(_valueAutoUnRef); + unsigned numImageStreams = 0; + for (unsigned int i=0; i(texture.getImage(i)); + if (is) ++numImageStreams; + } + + if (numImageStreams==0) + { + texture.setUnRefImageDataAfterApply(_valueAutoUnRef); + } } if (_changeClientImageStorage)