From 46e8c6561220f40fc2721cc6f3b2ab893047b264 Mon Sep 17 00:00:00 2001 From: James Turner Date: Sun, 20 Oct 2013 09:44:38 +0100 Subject: [PATCH] Expose OSG notify severity at runtime. Define a new property /sim/rendering/osg-notify-level and listen to it, so we can update the notification level at run time. --- src/Viewer/fg_os_osgviewer.cxx | 36 ++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/Viewer/fg_os_osgviewer.cxx b/src/Viewer/fg_os_osgviewer.cxx index 9a73847dc..e48e940c2 100644 --- a/src/Viewer/fg_os_osgviewer.cxx +++ b/src/Viewer/fg_os_osgviewer.cxx @@ -29,6 +29,8 @@ #include +// Boost +#include #include #include @@ -217,11 +219,41 @@ private: } }; +class NotifyLevelListener : public SGPropertyChangeListener +{ +public: + void valueChanged(SGPropertyNode* node) + { + osg::NotifySeverity severity = osg::WARN; + string val = boost::to_lower_copy(string(node->getStringValue())); + + if (val == "fatal") { + severity = osg::FATAL; + } else if (val == "warn") { + severity = osg::WARN; + } else if (val == "notice") { + severity = osg::NOTICE; + } else if (val == "info") { + severity = osg::INFO; + } else if ((val == "debug") || (val == "debug-info")) { + severity = osg::DEBUG_INFO; + } + + osg::setNotifyLevel(severity); + } +}; + +void updateOSGNotifyLevel() +{ + } + void fgOSOpenWindow(bool stencil) { osg::setNotifyHandler(new NotifyLogger); - //osg::setNotifyLevel(osg::DEBUG_INFO); - + + SGPropertyNode* osgLevel = fgGetNode("/sim/rendering/osg-notify-level", true); + osgLevel->addChangeListener(new NotifyLevelListener, true); + viewer = new osgViewer::Viewer; viewer->setDatabasePager(FGScenery::getPagerSingleton()); CameraGroup* cameraGroup = 0; -- 2.39.5