32 #include <boost/shared_ptr.hpp>
33 #include <boost/thread/locks.hpp>
37 #include <osg/ref_ptr>
38 #include <osgViewer/CompositeViewer>
39 #include <osgViewer/View>
40 #include <osgViewer/Viewer>
42 #include "../common/WColor.h"
43 #include "../common/WLogger.h"
44 #include "../common/WPathHelper.h"
45 #include "WGEViewer.h"
46 #include "exceptions/WGEInitFailed.h"
47 #include "exceptions/WGESignalSubscriptionFailed.h"
48 #include "WGraphicsEngineMode.h"
49 #include "postprocessing/WGEPostprocessor.h"
51 #include "WStaticOSGSetup.h"
53 #include "WGraphicsEngine.h"
63 #ifdef WGEMODE_MULTITHREADED
65 m_viewer = osg::ref_ptr<osgViewer::CompositeViewer>(
new osgViewer::CompositeViewer() );
66 m_viewer->setThreadingModel( osgViewer::ViewerBase::SingleThreaded );
83 #ifdef WGEMODE_SINGLETHREADED
100 m_viewer->setThreadingModel( osgViewer::Viewer::SingleThreaded );
104 m_viewer->setThreadingModel( osgViewer::Viewer::CullThreadPerCameraDrawThreadPerContext );
111 #ifdef WGEMODE_MULTITHREADED
112 return ( osgViewer::Viewer::SingleThreaded !=
m_viewer->getThreadingModel() );
137 boost::shared_ptr<WGEViewer> viewer = boost::shared_ptr<WGEViewer>(
138 new WGEViewer( name, wdata, x, y, width, height, projectionMode ) );
139 viewer->setBgColor( bgColor );
142 #ifdef WGEMODE_MULTITHREADED
144 m_viewer->addView( viewer->getView() );
149 bool insertSucceeded =
m_viewers.insert( make_pair( name, viewer ) ).second;
150 assert( insertSucceeded ==
true );
169 boost::shared_ptr< WGEViewer > out =
m_viewers.count( name ) > 0 ?
171 boost::shared_ptr< WGEViewer >();
215 #ifdef WGEMODE_MULTITHREADED
234 #ifdef WGEMODE_MULTITHREADED
258 case GE_RELOADSHADERS:
260 case GE_STARTUPCOMPLETE:
263 std::ostringstream s;
264 s <<
"Could not subscribe to unknown signal.";