Show
Ignore:
Timestamp:
07/16/09 14:11:18 (5 years ago)
Author:
robert
Message:

From Fabien Lavignotte, "When exporting some models to OpenFlight?, i 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

Location:
OpenSceneGraph/branches/OpenSceneGraph-2.8/src/osgPlugins/OpenFlight
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/branches/OpenSceneGraph-2.8/src/osgPlugins/OpenFlight

    • Property svn:mergeinfo changed from /OpenSceneGraph/trunk/src/osgPlugins/OpenFlight:10084 to /OpenSceneGraph/trunk/src/osgPlugins/OpenFlight:10084,10491
  • OpenSceneGraph/branches/OpenSceneGraph-2.8/src/osgPlugins/OpenFlight/FltExportVisitor.cpp

    r9382 r10492  
    648648        const osg::TexEnv* texenv = dynamic_cast<const osg::TexEnv*>( 
    649649            ss->getTextureAttribute( unit, osg::StateAttribute::TEXENV ) ); 
    650         switch( texenv->getMode()) 
    651         { 
    652         case osg::TexEnv::DECAL: 
    653             ad.texEnvMode = AttrData::TEXENV_DECAL; 
    654             break; 
    655         case osg::TexEnv::MODULATE: 
    656         default: 
    657             ad.texEnvMode = AttrData::TEXENV_MODULATE; 
    658             break; 
    659         case osg::TexEnv::BLEND: 
    660             ad.texEnvMode = AttrData::TEXENV_BLEND; 
    661             break; 
    662         case osg::TexEnv::REPLACE: 
    663             ad.texEnvMode = AttrData::TEXENV_COLOR; 
    664             break; 
    665         case osg::TexEnv::ADD: 
    666             ad.texEnvMode = AttrData::TEXENV_ADD; 
    667             break; 
     650        if (texenv) 
     651        { 
     652            switch( texenv->getMode()) 
     653            { 
     654            case osg::TexEnv::DECAL: 
     655                ad.texEnvMode = AttrData::TEXENV_DECAL; 
     656                break; 
     657            case osg::TexEnv::MODULATE: 
     658            default: 
     659                ad.texEnvMode = AttrData::TEXENV_MODULATE; 
     660                break; 
     661            case osg::TexEnv::BLEND: 
     662                ad.texEnvMode = AttrData::TEXENV_BLEND; 
     663                break; 
     664            case osg::TexEnv::REPLACE: 
     665                ad.texEnvMode = AttrData::TEXENV_COLOR; 
     666                break; 
     667            case osg::TexEnv::ADD: 
     668                ad.texEnvMode = AttrData::TEXENV_ADD; 
     669                break; 
     670            } 
    668671        } 
    669672