OpenSceneGraph 2.8.4
|
ViewerBase is the view base class that is inherited by both Viewer and CompositeViewer. More...
Public Types | |
enum | ThreadingModel { SingleThreaded, CullDrawThreadPerContext, ThreadPerContext = CullDrawThreadPerContext, DrawThreadPerContext, CullThreadPerCameraDrawThreadPerContext, ThreadPerCamera = CullThreadPerCameraDrawThreadPerContext, AutomaticSelection } |
enum | BarrierPosition { BeforeSwapBuffers, AfterSwapBuffers } |
typedef std::vector < osg::Camera * > | Cameras |
typedef std::vector < osg::GraphicsContext * > | Contexts |
typedef std::vector < osgViewer::GraphicsWindow * > | Windows |
typedef std::vector < OpenThreads::Thread * > | Threads |
typedef std::vector < osg::OperationThread * > | OperationThreads |
typedef std::vector < osgViewer::Scene * > | Scenes |
typedef std::vector < osgViewer::View * > | Views |
Public Member Functions | |
ViewerBase () | |
ViewerBase (const ViewerBase &vb) | |
virtual void | setViewerStats (osg::Stats *stats)=0 |
Set the Stats object used for collect various frame related timing and scene graph stats. | |
virtual osg::Stats * | getViewerStats ()=0 |
Get the Viewers Stats object. | |
virtual const osg::Stats * | getViewerStats () const =0 |
Get the Viewers Stats object. | |
virtual bool | readConfiguration (const std::string &filename)=0 |
read the viewer configuration from a configuration file. | |
virtual bool | isRealized () const =0 |
Get whether at least of one of this viewers windows are realized. | |
virtual void | realize ()=0 |
set up windows and associated threads. | |
virtual void | setThreadingModel (ThreadingModel threadingModel) |
Set the threading model the rendering traversals will use. | |
ThreadingModel | getThreadingModel () const |
Get the threading model the rendering traversals will use. | |
virtual ThreadingModel | suggestBestThreadingModel () |
Let the viewer suggest the best threading model for the viewers camera/window setup and the hardware available. | |
virtual void | setUpThreading () |
Set up the threading and processor affinity as per the viewers threading model. | |
bool | areThreadsRunning () const |
Return true if viewer threads are running. | |
virtual void | stopThreading () |
Stop any threads begin run by viewer. | |
virtual void | startThreading () |
Start any threads required by the viewer. | |
void | setEndBarrierPosition (BarrierPosition bp) |
Set the position of the end barrier. | |
BarrierPosition | getEndBarrierPosition () const |
Get the end barrier position. | |
void | setDone (bool done) |
Set the done flag to signal the viewer's work is done and should exit the frame loop. | |
bool | done () const |
Return true if viewer's work is done and should exit the frame loop. | |
void | setEventVisitor (osgGA::EventVisitor *eventVisitor) |
Set the EventVisitor. | |
osgGA::EventVisitor * | getEventVisitor () |
Get the EventVisitor. | |
const osgGA::EventVisitor * | getEventVisitor () const |
Get the const EventVisitor. | |
void | setKeyEventSetsDone (int key) |
Set the key event that the viewer checks on each frame to see if the viewer's done flag should be set to signal end of viewers main loop. | |
int | getKeyEventSetsDone () const |
get the key event that the viewer checks on each frame to see if the viewer's done flag. | |
void | setQuitEventSetsDone (bool flag) |
if the flag is true, the viewer set its done flag when a QUIT_APPLICATION is received, false disables this feature | |
bool | getQuitEventSetsDone () const |
void | setReleaseContextAtEndOfFrameHint (bool hint) |
Hint to tell the renderingTraversals() method whether to call relaseContext() on the last context that was made current by the thread calling renderingTraverals(). | |
bool | getReleaseContextAtEndOfFrameHint () const |
Hint to tell the renderingTraversals() method whether to call relaseContext(). | |
void | setUpdateVisitor (osgUtil::UpdateVisitor *updateVisitor) |
Set the UpdateVisitor. | |
osgUtil::UpdateVisitor * | getUpdateVisitor () |
Get the UpdateVisitor. | |
const osgUtil::UpdateVisitor * | getUpdateVisitor () const |
Get the const UpdateVisitor. | |
void | setUpdateOperations (osg::OperationQueue *operations) |
Set the Update OperationQueue. | |
osg::OperationQueue * | getUpdateOperations () |
Get the Update OperationQueue. | |
const osg::OperationQueue * | getUpdateOperations () const |
Get the const Update OperationQueue. | |
void | addUpdateOperation (osg::Operation *operation) |
Add an update operation. | |
void | removeUpdateOperation (osg::Operation *operation) |
Remove an update operation. | |
void | setRealizeOperation (osg::Operation *op) |
Set the graphics operation to call on realization of the viewers graphics windows. | |
osg::Operation * | getRealizeOperation () |
Get the graphics operation to call on realization of the viewers graphics windows. | |
void | checkWindowStatus () |
Check to see if windows are still open, if not set viewer done to true. | |
virtual int | run ()=0 |
Execute a main frame loop. | |
virtual void | frame (double simulationTime=USE_REFERENCE_TIME) |
Render a complete new frame. | |
virtual void | advance (double simulationTime=USE_REFERENCE_TIME)=0 |
virtual void | eventTraversal ()=0 |
virtual void | updateTraversal ()=0 |
virtual void | renderingTraversals () |
virtual void | getCameras (Cameras &cameras, bool onlyActive=true)=0 |
virtual void | getContexts (Contexts &contexts, bool onlyValid=true)=0 |
virtual void | getWindows (Windows &windows, bool onlyValid=true) |
virtual void | getAllThreads (Threads &threads, bool onlyActive=true)=0 |
virtual void | getOperationThreads (OperationThreads &threads, bool onlyActive=true)=0 |
virtual void | getScenes (Scenes &scenes, bool onlyValid=true)=0 |
virtual void | getViews (Views &views, bool onlyValid=true)=0 |
virtual double | elapsedTime ()=0 |
virtual osg::FrameStamp * | getViewerFrameStamp ()=0 |
virtual void | getUsage (osg::ApplicationUsage &usage) const =0 |
Get the keyboard and mouse usage of this viewer. | |
Protected Member Functions | |
void | makeCurrent (osg::GraphicsContext *gc) |
void | releaseContext () |
virtual void | viewerInit ()=0 |
Protected Attributes | |
bool | _firstFrame |
bool | _done |
int | _keyEventSetsDone |
bool | _quitEventSetsDone |
bool | _releaseContextAtEndOfFrameHint |
ThreadingModel | _threadingModel |
bool | _threadsRunning |
BarrierPosition | _endBarrierPosition |
osg::ref_ptr < osg::BarrierOperation > | _startRenderingBarrier |
osg::ref_ptr < osg::BarrierOperation > | _endRenderingDispatchBarrier |
osg::ref_ptr < osg::EndOfDynamicDrawBlock > | _endDynamicDrawBlock |
osg::ref_ptr< osgGA::EventVisitor > | _eventVisitor |
osg::ref_ptr< osg::OperationQueue > | _updateOperations |
osg::ref_ptr < osgUtil::UpdateVisitor > | _updateVisitor |
osg::ref_ptr< osg::Operation > | _realizeOperation |
osg::observer_ptr < osg::GraphicsContext > | _currentContext |
ViewerBase is the view base class that is inherited by both Viewer and CompositeViewer.
typedef std::vector<osg::Camera*> osgViewer::ViewerBase::Cameras |
typedef std::vector<osg::GraphicsContext*> osgViewer::ViewerBase::Contexts |
typedef std::vector<osg::OperationThread*> osgViewer::ViewerBase::OperationThreads |
typedef std::vector<osgViewer::Scene*> osgViewer::ViewerBase::Scenes |
typedef std::vector<OpenThreads::Thread*> osgViewer::ViewerBase::Threads |
typedef std::vector<osgViewer::View*> osgViewer::ViewerBase::Views |
typedef std::vector<osgViewer::GraphicsWindow*> osgViewer::ViewerBase::Windows |
osgViewer::ViewerBase::ViewerBase | ( | ) |
osgViewer::ViewerBase::ViewerBase | ( | const ViewerBase & | vb | ) |
void osgViewer::ViewerBase::addUpdateOperation | ( | osg::Operation * | operation | ) |
Add an update operation.
virtual void osgViewer::ViewerBase::advance | ( | double | simulationTime = USE_REFERENCE_TIME | ) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
bool osgViewer::ViewerBase::areThreadsRunning | ( | ) | const [inline] |
Return true if viewer threads are running.
void osgViewer::ViewerBase::checkWindowStatus | ( | ) |
Check to see if windows are still open, if not set viewer done to true.
bool osgViewer::ViewerBase::done | ( | ) | const [inline] |
Return true if viewer's work is done and should exit the frame loop.
virtual double osgViewer::ViewerBase::elapsedTime | ( | ) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::eventTraversal | ( | ) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::frame | ( | double | simulationTime = USE_REFERENCE_TIME | ) | [virtual] |
Render a complete new frame.
Calls advance(), eventTraversal(), updateTraversal(), renderingTraversals().
virtual void osgViewer::ViewerBase::getAllThreads | ( | Threads & | threads, |
bool | onlyActive = true |
||
) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::getCameras | ( | Cameras & | cameras, |
bool | onlyActive = true |
||
) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::getContexts | ( | Contexts & | contexts, |
bool | onlyValid = true |
||
) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
BarrierPosition osgViewer::ViewerBase::getEndBarrierPosition | ( | ) | const [inline] |
Get the end barrier position.
osgGA::EventVisitor* osgViewer::ViewerBase::getEventVisitor | ( | ) | [inline] |
Get the EventVisitor.
const osgGA::EventVisitor* osgViewer::ViewerBase::getEventVisitor | ( | ) | const [inline] |
Get the const EventVisitor.
int osgViewer::ViewerBase::getKeyEventSetsDone | ( | ) | const [inline] |
get the key event that the viewer checks on each frame to see if the viewer's done flag.
virtual void osgViewer::ViewerBase::getOperationThreads | ( | OperationThreads & | threads, |
bool | onlyActive = true |
||
) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
bool osgViewer::ViewerBase::getQuitEventSetsDone | ( | ) | const [inline] |
osg::Operation* osgViewer::ViewerBase::getRealizeOperation | ( | ) | [inline] |
Get the graphics operation to call on realization of the viewers graphics windows.
bool osgViewer::ViewerBase::getReleaseContextAtEndOfFrameHint | ( | ) | const [inline] |
Hint to tell the renderingTraversals() method whether to call relaseContext().
virtual void osgViewer::ViewerBase::getScenes | ( | Scenes & | scenes, |
bool | onlyValid = true |
||
) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
ThreadingModel osgViewer::ViewerBase::getThreadingModel | ( | ) | const [inline] |
Get the threading model the rendering traversals will use.
const osg::OperationQueue* osgViewer::ViewerBase::getUpdateOperations | ( | ) | const [inline] |
Get the const Update OperationQueue.
osg::OperationQueue* osgViewer::ViewerBase::getUpdateOperations | ( | ) | [inline] |
Get the Update OperationQueue.
const osgUtil::UpdateVisitor* osgViewer::ViewerBase::getUpdateVisitor | ( | ) | const [inline] |
Get the const UpdateVisitor.
osgUtil::UpdateVisitor* osgViewer::ViewerBase::getUpdateVisitor | ( | ) | [inline] |
Get the UpdateVisitor.
virtual void osgViewer::ViewerBase::getUsage | ( | osg::ApplicationUsage & | usage | ) | const [pure virtual] |
Get the keyboard and mouse usage of this viewer.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual osg::FrameStamp* osgViewer::ViewerBase::getViewerFrameStamp | ( | ) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual osg::Stats* osgViewer::ViewerBase::getViewerStats | ( | ) | [pure virtual] |
Get the Viewers Stats object.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual const osg::Stats* osgViewer::ViewerBase::getViewerStats | ( | ) | const [pure virtual] |
Get the Viewers Stats object.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::getViews | ( | Views & | views, |
bool | onlyValid = true |
||
) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::getWindows | ( | Windows & | windows, |
bool | onlyValid = true |
||
) | [virtual] |
virtual bool osgViewer::ViewerBase::isRealized | ( | ) | const [pure virtual] |
Get whether at least of one of this viewers windows are realized.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
void osgViewer::ViewerBase::makeCurrent | ( | osg::GraphicsContext * | gc | ) | [inline, protected] |
References osg::GraphicsContext::makeCurrent(), and osg::GraphicsContext::valid().
virtual bool osgViewer::ViewerBase::readConfiguration | ( | const std::string & | filename | ) | [pure virtual] |
read the viewer configuration from a configuration file.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::realize | ( | ) | [pure virtual] |
set up windows and associated threads.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
void osgViewer::ViewerBase::releaseContext | ( | ) | [inline, protected] |
References osg::GraphicsContext::releaseContext().
void osgViewer::ViewerBase::removeUpdateOperation | ( | osg::Operation * | operation | ) |
Remove an update operation.
virtual void osgViewer::ViewerBase::renderingTraversals | ( | ) | [virtual] |
virtual int osgViewer::ViewerBase::run | ( | ) | [pure virtual] |
Execute a main frame loop.
Equivalent to while (!viewer.done()) viewer.frame(); Also calls realize() if the viewer is not already realized, and installs trackball manipulator if one is not already assigned.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
void osgViewer::ViewerBase::setDone | ( | bool | done | ) | [inline] |
Set the done flag to signal the viewer's work is done and should exit the frame loop.
void osgViewer::ViewerBase::setEndBarrierPosition | ( | BarrierPosition | bp | ) |
Set the position of the end barrier.
AfterSwapBuffers may result in slightly higher framerates, but may lead to inconsistent swapping between different windows. BeforeSwapBuffers may lead to slightly lower framerate, but improve consistency in timing of swap buffers, especially important if you are likely to consistently break frame.
void osgViewer::ViewerBase::setEventVisitor | ( | osgGA::EventVisitor * | eventVisitor | ) | [inline] |
Set the EventVisitor.
void osgViewer::ViewerBase::setKeyEventSetsDone | ( | int | key | ) | [inline] |
Set the key event that the viewer checks on each frame to see if the viewer's done flag should be set to signal end of viewers main loop.
Default value is Escape (osgGA::GUIEVentAdapter::KEY_Escape). Setting to 0 switches off the feature.
void osgViewer::ViewerBase::setQuitEventSetsDone | ( | bool | flag | ) | [inline] |
if the flag is true, the viewer set its done flag when a QUIT_APPLICATION is received, false disables this feature
void osgViewer::ViewerBase::setRealizeOperation | ( | osg::Operation * | op | ) | [inline] |
Set the graphics operation to call on realization of the viewers graphics windows.
void osgViewer::ViewerBase::setReleaseContextAtEndOfFrameHint | ( | bool | hint | ) | [inline] |
Hint to tell the renderingTraversals() method whether to call relaseContext() on the last context that was made current by the thread calling renderingTraverals().
Note, when running multi-threaded viewer no threads will be made current or release current. Setting this hint to false can enable the frame loop to be lazy about calling makeCurrent and releaseContext on each new frame, helping performance. However, if you frame loop is managing multiple graphics context all from the main frame thread then this hint must be left on, otherwise the wrong context could be left active, introducing errors in rendering.
virtual void osgViewer::ViewerBase::setThreadingModel | ( | ThreadingModel | threadingModel | ) | [virtual] |
Set the threading model the rendering traversals will use.
void osgViewer::ViewerBase::setUpdateOperations | ( | osg::OperationQueue * | operations | ) | [inline] |
Set the Update OperationQueue.
void osgViewer::ViewerBase::setUpdateVisitor | ( | osgUtil::UpdateVisitor * | updateVisitor | ) | [inline] |
Set the UpdateVisitor.
virtual void osgViewer::ViewerBase::setUpThreading | ( | ) | [virtual] |
Set up the threading and processor affinity as per the viewers threading model.
virtual void osgViewer::ViewerBase::setViewerStats | ( | osg::Stats * | stats | ) | [pure virtual] |
Set the Stats object used for collect various frame related timing and scene graph stats.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::startThreading | ( | ) | [virtual] |
Start any threads required by the viewer.
virtual void osgViewer::ViewerBase::stopThreading | ( | ) | [virtual] |
Stop any threads begin run by viewer.
virtual ThreadingModel osgViewer::ViewerBase::suggestBestThreadingModel | ( | ) | [virtual] |
Let the viewer suggest the best threading model for the viewers camera/window setup and the hardware available.
virtual void osgViewer::ViewerBase::updateTraversal | ( | ) | [pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
virtual void osgViewer::ViewerBase::viewerInit | ( | ) | [protected, pure virtual] |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
bool osgViewer::ViewerBase::_done [protected] |
bool osgViewer::ViewerBase::_firstFrame [protected] |
Reimplemented in osgViewer::CompositeViewer.
int osgViewer::ViewerBase::_keyEventSetsDone [protected] |
bool osgViewer::ViewerBase::_quitEventSetsDone [protected] |
bool osgViewer::ViewerBase::_releaseContextAtEndOfFrameHint [protected] |
ThreadingModel osgViewer::ViewerBase::_threadingModel [protected] |
bool osgViewer::ViewerBase::_threadsRunning [protected] |
![]() | Generated at Sun Jan 8 2012 13:17:05 for the OpenSceneGraph by doxygen 1.7.4. |