OpenSceneGraph
3.2.0
|
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 } |
enum | FrameScheme { ON_DEMAND, CONTINUOUS } |
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 |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
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. More... | |
virtual osg::Stats * | getViewerStats ()=0 |
Get the Viewers Stats object. More... | |
virtual const osg::Stats * | getViewerStats () const =0 |
Get the Viewers Stats object. More... | |
virtual bool | readConfiguration (const std::string &filename)=0 |
read the viewer configuration from a configuration file. More... | |
virtual bool | isRealized () const =0 |
Get whether at least of one of this viewers windows are realized. More... | |
virtual void | realize ()=0 |
set up windows and associated threads. More... | |
virtual void | setThreadingModel (ThreadingModel threadingModel) |
Set the threading model the rendering traversals will use. More... | |
ThreadingModel | getThreadingModel () const |
Get the threading model the rendering traversals will use. More... | |
virtual ThreadingModel | suggestBestThreadingModel () |
Let the viewer suggest the best threading model for the viewers camera/window setup and the hardware available. More... | |
virtual void | setUpThreading () |
Set up the threading and processor affinity as per the viewers threading model. More... | |
bool | areThreadsRunning () const |
Return true if viewer threads are running. More... | |
virtual void | stopThreading () |
Stop any threads begin run by viewer. More... | |
virtual void | startThreading () |
Start any threads required by the viewer. More... | |
void | setEndBarrierPosition (BarrierPosition bp) |
Set the position of the end barrier. More... | |
BarrierPosition | getEndBarrierPosition () const |
Get the end barrier position. More... | |
void | setEndBarrierOperation (osg::BarrierOperation::PreBlockOp op) |
Set the end barrier operation. More... | |
osg::BarrierOperation::PreBlockOp | getEndBarrierOperation () const |
Get the end barrier operation. More... | |
void | setDone (bool done) |
Set the done flag to signal the viewer's work is done and should exit the frame loop. More... | |
bool | done () const |
Return true if viewer's work is done and should exit the frame loop. More... | |
void | setEventVisitor (osgGA::EventVisitor *eventVisitor) |
Set the EventVisitor. More... | |
osgGA::EventVisitor * | getEventVisitor () |
Get the EventVisitor. More... | |
const osgGA::EventVisitor * | getEventVisitor () const |
Get the const EventVisitor. More... | |
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. More... | |
int | getKeyEventSetsDone () const |
get the key event that the viewer checks on each frame to see if the viewer's done flag. More... | |
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 More... | |
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(). More... | |
bool | getReleaseContextAtEndOfFrameHint () const |
Hint to tell the renderingTraversals() method whether to call relaseContext(). More... | |
void | setUpdateVisitor (osgUtil::UpdateVisitor *updateVisitor) |
Set the UpdateVisitor. More... | |
osgUtil::UpdateVisitor * | getUpdateVisitor () |
Get the UpdateVisitor. More... | |
const osgUtil::UpdateVisitor * | getUpdateVisitor () const |
Get the const UpdateVisitor. More... | |
void | setUpdateOperations (osg::OperationQueue *operations) |
Set the Update OperationQueue. More... | |
osg::OperationQueue * | getUpdateOperations () |
Get the Update OperationQueue. More... | |
const osg::OperationQueue * | getUpdateOperations () const |
Get the const Update OperationQueue. More... | |
void | addUpdateOperation (osg::Operation *operation) |
Add an update operation. More... | |
void | removeUpdateOperation (osg::Operation *operation) |
Remove an update operation. More... | |
void | setRealizeOperation (osg::Operation *op) |
Set the graphics operation to call on realization of the viewers graphics windows. More... | |
osg::Operation * | getRealizeOperation () |
Get the graphics operation to call on realization of the viewers graphics windows. More... | |
void | setIncrementalCompileOperation (osgUtil::IncrementalCompileOperation *ico) |
Set the incremental compile operation. More... | |
osgUtil::IncrementalCompileOperation * | getIncrementalCompileOperation () |
Get the incremental compile operation. More... | |
void | setRunFrameScheme (FrameScheme fs) |
FrameScheme | getRunFrameScheme () const |
void | setRunMaxFrameRate (double frameRate) |
double | getRunMaxFrameRate () const |
virtual int | run () |
Execute a main frame loop. More... | |
virtual bool | checkNeedToDoFrame ()=0 |
check to see if the new frame is required, called by run(..) when FrameScheme is set to ON_DEMAND. More... | |
virtual bool | checkEvents ()=0 |
check to see if events have been received, return true if events are now available. More... | |
virtual void | frame (double simulationTime=USE_REFERENCE_TIME) |
Render a complete new frame. More... | |
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 |
void | checkWindowStatus () |
Check to see if any windows are still open. More... | |
void | checkWindowStatus (const Contexts &contexts) |
Check to see if windows are still open using the list of contexts given as a parameter. More... | |
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. More... | |
![]() | |
Object () | |
Construct an object. More... | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data. More... | |
virtual Object * | cloneType () const =0 |
Clone the type of an object, with Object* return type. More... | |
virtual Object * | clone (const CopyOp &) const =0 |
Clone an object, with Object* return type. More... | |
virtual bool | isSameKindAs (const Object *) const |
virtual const char * | libraryName () const =0 |
return the name of the object's library. More... | |
virtual const char * | className () const =0 |
return the name of the object's class type. More... | |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
Set whether to use a mutex to ensure ref() and unref() are thread safe. More... | |
virtual void | setName (const std::string &name) |
Set the name of object using C++ style string. More... | |
void | setName (const char *name) |
Set the name of object using a C style string. More... | |
const std::string & | getName () const |
Get the name of object. More... | |
void | setDataVariance (DataVariance dv) |
Set the data variance of this object. More... | |
DataVariance | getDataVariance () const |
Get the data variance of this object. More... | |
virtual void | computeDataVariance () |
Compute the DataVariance based on an assessment of callback etc. More... | |
void | setUserDataContainer (osg::UserDataContainer *udc) |
set the UserDataContainer object. More... | |
osg::UserDataContainer * | getUserDataContainer () |
get the UserDataContainer attached to this object. More... | |
const osg::UserDataContainer * | getUserDataContainer () const |
get the const UserDataContainer attached to this object. More... | |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
Convinience method that returns the UserDataContainer, and if one doesn't already exist creates and assigns a DefaultUserDataContainer to the Object and then return this new UserDataContainer. More... | |
virtual void | setUserData (Referenced *obj) |
Set user data, data must be subclassed from Referenced to allow automatic memory handling. More... | |
virtual Referenced * | getUserData () |
Get user data. More... | |
virtual const Referenced * | getUserData () const |
Get const user data. More... | |
template<typename T > | |
bool | getUserValue (const std::string &name, T &value) const |
Convinience method that casts the named UserObject to osg::TemplateValueObject<T> and gets the value. More... | |
template<typename T > | |
void | setUserValue (const std::string &name, const T &value) |
Convinience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject. More... | |
virtual void | resizeGLObjectBuffers (unsigned int) |
Resize any per context GLObject buffers to specified size. More... | |
virtual void | releaseGLObjects (osg::State *=0) const |
If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. More... | |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject bool | getUserValue (const std::string &name, T &value) const |
provide implementation of osg::Object::getUserValue(..) template More... | |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. More... | |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). More... | |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. More... | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. More... | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. More... | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. More... | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. More... | |
Protected Member Functions | |
void | viewerBaseInit () |
void | makeCurrent (osg::GraphicsContext *gc) |
void | releaseContext () |
virtual void | viewerInit ()=0 |
![]() | |
virtual | ~Object () |
Object destructor. More... | |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Friends | |
class | osgViewer::View |
Additional Inherited Members | |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
Get the optional global Referenced mutex, this can be shared between all osg::Referenced. More... | |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
Set whether reference counting should use a mutex for thread safe reference counting. More... | |
static bool | getThreadSafeReferenceCounting () |
Get whether reference counting is active. More... | |
static void | setDeleteHandler (DeleteHandler *handler) |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. More... | |
static DeleteHandler * | getDeleteHandler () |
Get a DeleteHandler. More... | |
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.
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
inline |
Return true if viewer threads are running.
|
pure virtual |
check to see if events have been received, return true if events are now available.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
pure virtual |
check to see if the new frame is required, called by run(..) when FrameScheme is set to ON_DEMAND.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
void osgViewer::ViewerBase::checkWindowStatus | ( | ) |
Check to see if any windows are still open.
If not, set viewer done to true.
void osgViewer::ViewerBase::checkWindowStatus | ( | const Contexts & | contexts) |
Check to see if windows are still open using the list of contexts given as a parameter.
If no windows are open, stop rendering threads and set viewer done to true. This function is more effective than checkWindowStatus() as it does not query the context list and should be used whenever context list is already available in your code.
|
inline |
Return true if viewer's work is done and should exit the frame loop.
|
pure virtual |
Implemented in osgViewer::Viewer, and osgViewer::CompositeViewer.
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
virtual |
Render a complete new frame.
Calls advance(), eventTraversal(), updateTraversal(), renderingTraversals().
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
inline |
Get the end barrier operation.
|
inline |
Get the end barrier position.
|
inline |
Get the EventVisitor.
|
inline |
Get the const EventVisitor.
|
inline |
Get the incremental compile operation.
|
inline |
get the key event that the viewer checks on each frame to see if the viewer's done flag.
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
inline |
|
inline |
Get the graphics operation to call on realization of the viewers graphics windows.
|
inline |
Hint to tell the renderingTraversals() method whether to call relaseContext().
|
inline |
|
inline |
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
inline |
Get the threading model the rendering traversals will use.
|
inline |
Get the Update OperationQueue.
|
inline |
Get the const Update OperationQueue.
|
inline |
Get the UpdateVisitor.
|
inline |
Get the const UpdateVisitor.
|
pure virtual |
Get the keyboard and mouse usage of this viewer.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
pure virtual |
Implemented in osgViewer::Viewer, and osgViewer::CompositeViewer.
|
pure virtual |
Get the Viewers Stats object.
Implemented in osgViewer::Viewer, and osgViewer::CompositeViewer.
|
pure virtual |
Get the Viewers Stats object.
Implemented in osgViewer::Viewer, and osgViewer::CompositeViewer.
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
virtual |
|
pure virtual |
Get whether at least of one of this viewers windows are realized.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
inlineprotected |
References osg::GraphicsContext::makeCurrent(), and osg::GraphicsContext::valid().
|
pure virtual |
read the viewer configuration from a configuration file.
Implemented in osgViewer::Viewer, and osgViewer::CompositeViewer.
|
pure virtual |
set up windows and associated threads.
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
inlineprotected |
void osgViewer::ViewerBase::removeUpdateOperation | ( | osg::Operation * | operation) |
Remove an update operation.
|
virtual |
|
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.
Reimplemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
inline |
Set the done flag to signal the viewer's work is done and should exit the frame loop.
void osgViewer::ViewerBase::setEndBarrierOperation | ( | osg::BarrierOperation::PreBlockOp | op) |
Set the end barrier operation.
op
may be one of GL_FLUSH, GL_FINISH, or NO_OPERATION. NO_OPERATION is the default. Per BarrierOperation::operator()(), a glFlush() command, glFinish() command, or no additional OpenGL command will be issued before entering the end barrier.
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.
|
inline |
Set the EventVisitor.
void osgViewer::ViewerBase::setIncrementalCompileOperation | ( | osgUtil::IncrementalCompileOperation * | ico) |
Set the incremental compile operation.
Used to manage the OpenGL object compilation and merging of subgraphs in a way that avoids overloading the rendering of frame with too many new objects in one frame.
|
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.
|
inline |
if the flag is true, the viewer set its done flag when a QUIT_APPLICATION is received, false disables this feature
|
inline |
Set the graphics operation to call on realization of the viewers graphics windows.
|
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.
|
inline |
|
inline |
|
virtual |
Set the threading model the rendering traversals will use.
|
inline |
Set the Update OperationQueue.
|
inline |
Set the UpdateVisitor.
|
virtual |
Set up the threading and processor affinity as per the viewers threading model.
|
pure virtual |
Set the Stats object used for collect various frame related timing and scene graph stats.
Implemented in osgViewer::Viewer, and osgViewer::CompositeViewer.
|
virtual |
Start any threads required by the viewer.
|
virtual |
Stop any threads begin run by viewer.
|
virtual |
Let the viewer suggest the best threading model for the viewers camera/window setup and the hardware available.
|
pure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
protected |
|
protectedpure virtual |
Implemented in osgViewer::CompositeViewer, and osgViewer::Viewer.
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
![]() | Generated at Wed Aug 14 2013 14:13:34 for the OpenSceneGraph by doxygen 1.8.4. |