// The camera group will always update the camera
camera->setReferenceFrame(Transform::ABSOLUTE_RF);
+ // Draw all nodes in the order they are added to the GUI camera
+ camera->getOrCreateStateSet()
+ ->setRenderBinDetails( 0,
+ "PreOrderBin",
+ osg::StateSet::OVERRIDE_RENDERBIN_DETAILS );
+
getViewer()->addSlave(camera, Matrixd::identity(), Matrixd::identity(), false);
//installCullVisitor(camera);
int slaveIndex = getViewer()->getNumSlaves() - 1;
// plug in the GUI
osg::Camera* guiCamera = getGUICamera(CameraGroup::getDefault());
if (guiCamera) {
-
- osg::Geode* geode = new osg::Geode;
- geode->addDrawable(new SGPuDrawable);
- geode->addDrawable(new SGHUDDrawable);
- guiCamera->addChild(geode);
-
-
- guiCamera->addChild(FGPanelNode::create2DPanelNode());
+ osg::Geode* geode = new osg::Geode;
+ geode->addDrawable(new SGHUDDrawable);
+ geode->addDrawable(new SGPuDrawable);
+
+ // Draw first (eg. before Canvas GUI)
+ guiCamera->insertChild(0, geode);
+ guiCamera->insertChild(0, FGPanelNode::create2DPanelNode());
}
osg::Switch* sw = new osg::Switch;