diff --git a/src/osg/Texture.cpp b/src/osg/Texture.cpp index 15d61f459..6f4c14f9d 100644 --- a/src/osg/Texture.cpp +++ b/src/osg/Texture.cpp @@ -414,7 +414,7 @@ void Texture::TextureObjectSet::flushDeletedTextureObjects(double currentTime, d } } - if (_parent->getCurrTexturePoolSize()<=_parent->getMaxTexturePoolSize()) + if (_profile._size!=0 && _parent->getCurrTexturePoolSize()<=_parent->getMaxTexturePoolSize()) { // OSG_NOTICE<<"Plenty of space in TextureObject pool"<getCurrTexturePoolSize() - _parent->getMaxTexturePoolSize(); - unsigned int maxNumObjectsToDelete = static_cast(ceil(double(sizeRequired) / double(_profile._size))); + + unsigned int maxNumObjectsToDelete = _profile._size!=0 ? + static_cast(ceil(double(sizeRequired) / double(_profile._size))): + _orphanedTextureObjects.size(); + OSG_INFO<<"_parent->getCurrTexturePoolSize()="<<_parent->getCurrTexturePoolSize() <<" _parent->getMaxTexturePoolSize()="<< _parent->getMaxTexturePoolSize()<