using namespace osg;
osg::ref_ptr<osgViewer::Viewer> viewer;
-static osg::ref_ptr<osg::Camera> mainCamera;
static void setStereoMode( const char * mode )
{
void fgOSResetProperties()
{
SGPropertyNode* osgLevel = fgGetNode("/sim/rendering/osg-notify-level", true);
- osgLevel->addChangeListener(new NotifyLevelListener, true);
+ NotifyLevelListener* l = new NotifyLevelListener;
+ globals->addListenerToCleanup(l);
+ osgLevel->addChangeListener(l, true);
osg::Camera* guiCamera = getGUICamera(CameraGroup::getDefault());
if (guiCamera) {
viewer->setDone(true);
viewer->getDatabasePager()->cancel();
status = code;
+
+ // otherwise we crash if OSG does logging during static destruction, eg
+ // GraphicsWindowX11, since OSG statics may have been created before the
+ // sglog static, despite our best efforts in boostrap.cxx
+ osg::setNotifyHandler(new osg::StandardNotifyHandler);
}
int fgOSMainLoop()
void fgOSCloseWindow()
{
FGScenery::resetPagerSingleton();
- mainCamera = NULL;
flightgear::CameraGroup::setDefault(NULL);
WindowSystemAdapter::setWSA(NULL);
viewer = NULL;