Fix material animations with only a <texture-prop>

On 8/31/07, K. Hoercher <wbhoer@gmail.com> wrote:
> > Some notes:
> > - I found that in order to make the example from model-howto.html work
> > ( starting at "To make a texture replaceable at runtime") one has to
> > specify a valid (i.e. loadable) <texture>  in the material animation.

The cause seems to be the condition in SGMaterialAnimation.cxx l.277
ignoring any texture update by the UpdateCallback (only there
<texture-prop> is looked at)  without an already existing stateSet.
That in turn will not be created with a <texture-prop> alone l. 379ff.

Unless I overlooked some compelling reason contradicting, I'd like to
suggest allowing for a stateSet to be created for those situations
too. I think that would match the behaviour of animation.cxx
(PRE_OSG_PLIB_20061029) and is imho the more expected and also
documented one.
This commit is contained in:
timoore 2007-09-05 22:12:00 +00:00
parent f33ce846b8
commit aeaaa50f6c

View File

@ -376,6 +376,8 @@ SGMaterialAnimation::createAnimationGroup(osg::Group& parent)
osgDB::FilePathList texturePathList = osgDB::getDataFilePathList();
if (getConfig()->hasChild("texture-prop"))
osg::StateSet* stateSet = group->getOrCreateStateSet();
if (getConfig()->hasChild("texture")) {
std::string textureName = getConfig()->getStringValue("texture");
std::string textureFile;