]> git.mxchange.org Git - simgear.git/commitdiff
don't render an EffectGeode if there is no valid technique
authorTim Moore <timoore@redhat.com>
Mon, 14 Dec 2009 05:52:00 +0000 (06:52 +0100)
committerTim Moore <timoore@redhat.com>
Mon, 14 Dec 2009 05:52:00 +0000 (06:52 +0100)
Normal geometry has a default effect; geometry with no default effect
is unlikely to look correct with no state set applied. This fixes the
problem of clouds being displayed as multi-colored rectangles when
shader effects are turned off.

simgear/scene/material/EffectCullVisitor.cxx

index 62952a9fe8b56944d6b37ae5cc4bdcbfdf7299ec..efac70b7e7809f6c808798a29ab12f8023e68464 100644 (file)
@@ -56,9 +56,11 @@ void EffectCullVisitor::apply(osg::Geode& node)
     }
     Effect* effect = eg->getEffect();
     Technique* technique = 0;
-    if (!(effect && (technique = effect->chooseTechnique(&getRenderInfo())))) {
+    if (!effect) {
         CullVisitor::apply(node);
         return;
+    } else if (!(technique = effect->chooseTechnique(&getRenderInfo()))) {
+        return;
     }
     // push the node's state.
     osg::StateSet* node_state = node.getStateSet();