diff --git a/src/osgFX/Technique.cpp b/src/osgFX/Technique.cpp index 0ca7cc85f..1104dadcf 100644 --- a/src/osgFX/Technique.cpp +++ b/src/osgFX/Technique.cpp @@ -42,28 +42,30 @@ void Technique::traverse_implementation(osg::NodeVisitor& nv, Effect* fx) } // special actions must be taken if the node visitor is actually a CullVisitor - osgUtil::CullVisitor *cv = nv.asCullVisitor(); - - // traverse all passes - for (int i=0; ipushStateSet(_passes[i].get()); - } - // traverse the override node if defined, otherwise - // traverse children as a Group would do - osg::Node *override = getOverrideChild(i); - if (override) { - override->accept(nv); - } else { - fx->inherited_traverse(nv); - } + // traverse the override node if defined, otherwise + // traverse children as a Group would do + osg::Node *override = getOverrideChild(i); + if (override) { + override->accept(nv); + } else { + fx->inherited_traverse(nv); + } - // pop the StateSet if necessary - if (cv) { + // pop the StateSet cv->popStateSet(); } } + else + { + fx->inherited_traverse(nv); + } }