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 "../common/math/linearAlgebra/WLinearAlgebra.h"
46 #include "WGEViewer.h"
47 #include "exceptions/WGEInitFailed.h"
48 #include "exceptions/WGESignalSubscriptionFailed.h"
49 #include "WGraphicsEngineMode.h"
51 #include "WGraphicsEngine.h"
61 #ifdef WGEMODE_MULTITHREADED
63 m_viewer = osg::ref_ptr<osgViewer::CompositeViewer>(
new osgViewer::CompositeViewer() );
64 m_viewer->setThreadingModel( osgViewer::ViewerBase::SingleThreaded );
81 #ifdef WGEMODE_SINGLETHREADED
98 m_viewer->setThreadingModel( osgViewer::Viewer::SingleThreaded );
102 m_viewer->setThreadingModel( osgViewer::Viewer::CullThreadPerCameraDrawThreadPerContext );
109 #ifdef WGEMODE_MULTITHREADED
110 return ( osgViewer::Viewer::SingleThreaded !=
m_viewer->getThreadingModel() );
135 boost::shared_ptr<WGEViewer> viewer = boost::shared_ptr<WGEViewer>(
136 new WGEViewer( name, wdata, x, y, width, height, projectionMode ) );
137 viewer->setBgColor( bgColor );
140 #ifdef WGEMODE_MULTITHREADED
142 m_viewer->addView( viewer->getView() );
147 bool insertSucceeded =
m_viewers.insert( make_pair( name, viewer ) ).second;
148 assert( insertSucceeded ==
true );
167 boost::shared_ptr< WGEViewer > out =
m_viewers.count( name ) > 0 ?
169 boost::shared_ptr< WGEViewer >();
210 #ifdef WGEMODE_MULTITHREADED
227 #ifdef WGEMODE_MULTITHREADED
246 case GE_RELOADSHADERS:
248 case GE_STARTUPCOMPLETE:
251 std::ostringstream s;
252 s <<
"Could not subscribe to unknown signal.";