Skip to content

Commit

Permalink
From Fabien Lavignotte, "When exporting some models to OpenFlight, i …
Browse files Browse the repository at this point in the history
…found a crash if the texture

unit does not contain a TexEnv object.
Here's the small fix, just a test on the pointer."

Merged from svn trunk using:

svn merge -r 10490:10491 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgPlugins/OpenFlight
  • Loading branch information
robertosfield committed Jul 16, 2009
1 parent a5d6c1a commit 0029d8f
Showing 1 changed file with 20 additions and 17 deletions.
37 changes: 20 additions & 17 deletions src/osgPlugins/OpenFlight/FltExportVisitor.cpp
Expand Up @@ -647,24 +647,27 @@ FltExportVisitor::writeATTRFile( int unit, const osg::Texture2D* texture ) const
const osg::StateSet* ss = getCurrentStateSet();
const osg::TexEnv* texenv = dynamic_cast<const osg::TexEnv*>(
ss->getTextureAttribute( unit, osg::StateAttribute::TEXENV ) );
switch( texenv->getMode())
if (texenv)
{
case osg::TexEnv::DECAL:
ad.texEnvMode = AttrData::TEXENV_DECAL;
break;
case osg::TexEnv::MODULATE:
default:
ad.texEnvMode = AttrData::TEXENV_MODULATE;
break;
case osg::TexEnv::BLEND:
ad.texEnvMode = AttrData::TEXENV_BLEND;
break;
case osg::TexEnv::REPLACE:
ad.texEnvMode = AttrData::TEXENV_COLOR;
break;
case osg::TexEnv::ADD:
ad.texEnvMode = AttrData::TEXENV_ADD;
break;
switch( texenv->getMode())
{
case osg::TexEnv::DECAL:
ad.texEnvMode = AttrData::TEXENV_DECAL;
break;
case osg::TexEnv::MODULATE:
default:
ad.texEnvMode = AttrData::TEXENV_MODULATE;
break;
case osg::TexEnv::BLEND:
ad.texEnvMode = AttrData::TEXENV_BLEND;
break;
case osg::TexEnv::REPLACE:
ad.texEnvMode = AttrData::TEXENV_COLOR;
break;
case osg::TexEnv::ADD:
ad.texEnvMode = AttrData::TEXENV_ADD;
break;
}
}

osgDB::writeObjectFile( ad, name, _fltOpt.get() );
Expand Down

0 comments on commit 0029d8f

Please sign in to comment.