From 589c5ba35a2db99a1e0ebda26e984abd05f9da5b Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Fri, 27 Nov 2015 11:07:52 +0100 Subject: [PATCH] SGMaterialAnimation: Better handling of missing texture Don't retry loading a missing texture on every frame. Emit a warning message instead and retry on the next change of the textures name. --- simgear/scene/model/SGMaterialAnimation.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/simgear/scene/model/SGMaterialAnimation.cxx b/simgear/scene/model/SGMaterialAnimation.cxx index cc5c660c..0169f574 100644 --- a/simgear/scene/model/SGMaterialAnimation.cxx +++ b/simgear/scene/model/SGMaterialAnimation.cxx @@ -364,6 +364,8 @@ public: if (_textureProp) { std::string textureName = _textureProp->getStringValue(); if (_textureName != textureName) { + _textureName = textureName; + while (stateSet->getTextureAttribute(0, osg::StateAttribute::TEXTURE)) { stateSet->removeTextureAttribute(0, osg::StateAttribute::TEXTURE); @@ -377,8 +379,12 @@ public: osg::StateAttribute::OVERRIDE); stateSet->setTextureMode(0, GL_TEXTURE_2D, osg::StateAttribute::ON); - _textureName = textureName; } + } else { + SG_LOG(SG_IO, SG_WARN, "texture animation: requested texture : " << textureName << " not found. Searched paths:" ); + for( osgDB::FilePathList::iterator it = _texturePathList.begin(); it != _texturePathList.end(); ++it ) { + SG_LOG(SG_IO, SG_WARN, " - " << *it ); + } } } }