예제 #1
0
파일: util.cpp 프로젝트: A1-Triard/openmw
 virtual void apply(osg::Node& node)
 {
     int index;
     osg::ref_ptr<osg::Node> nodePtr(&node);
     if (node.getUserValue("overrideFx", index))
     {
         if (index == 1) 
             overrideTexture(mTexture, mResourcesystem, nodePtr);
     }
     traverse(node);
 }
예제 #2
0
void 
ShaderGenerator::apply( osg::Node& node )
{
    if ( !_active )
        return;

    bool ignore;
    if ( node.getUserValue(SHADERGEN_HINT_IGNORE, ignore) && ignore )
        return;

    osg::ref_ptr<osg::StateSet> stateset = node.getStateSet();
    if ( stateset.valid() )
    {
        _state->pushStateSet( stateset.get() );
    }

    traverse(node);

    if ( stateset.valid() )
    {
        _state->popStateSet();
    }
}