osg::ContextData Class Reference

`#include <ContextData>`

Inheritance diagram for osg::ContextData:

## Public Types

typedef GraphicsContext::GraphicsContexts | GraphicsContexts

## Public Member Functions

| ContextData (unsigned int contextID)
void | incrementUsageCount ()
void | decrementUsageCount ()
void | setNumContexts (unsigned int numContexts)
unsigned int | getNumContexts () const
void | setCompileContext (osg::GraphicsContext *gc)
osg::GraphicsContext * | getCompileContext ()
template<typename T>
T * | get ()
template<typename T>
const T * | get () const
template<typename T>
void | set (T *ptr)
virtual void | newFrame (osg::FrameStamp *)
virtual void | resetStats ()
virtual void | reportStats (std::ostream &out)
virtual void | recomputeStats (std::ostream &out) const
virtual void | flushDeletedGLObjects (double currentTime, double &availableTime)
virtual void | flushAllDeletedGLObjects ()
virtual void | deleteAllGLObjects ()
virtual void | discardAllGLObjects ()
Public Member Functions inherited from osg::GraphicsObjectManager
| GraphicsObjectManager (const std::string &name, unsigned int contextID)
unsigned int | getContextID () const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
virtual void | setThreadSafeRefUnref (bool)
bool | getThreadSafeRefUnref () const
OpenThreads::Mutex * | getRefMutex () const
int | ref () const
int | unref () const
int | unref_nodelete () const
int | referenceCount () const
ObserverSet * | getObserverSet () const
ObserverSet * | getOrCreateObserverSet () const
void | addObserver (Observer *observer) const
void | removeObserver (Observer *observer) const

## Static Public Member Functions

static unsigned int | createNewContextID ()
static unsigned int | getMaxContextID ()
static void | incrementContextIDUsageCount (unsigned int contextID)
static void | decrementContextIDUsageCount (unsigned int contextID)
static GraphicsContexts | getAllRegisteredGraphicsContexts ()
static GraphicsContexts | getRegisteredGraphicsContexts (unsigned int contextID)
static void | setCompileContext (unsigned int contextID, GraphicsContext *gc)
static GraphicsContext * | getOrCreateCompileContext (unsigned int contextID)
static GraphicsContext * | getCompileContext (unsigned int contextID)
static void | registerGraphicsContext (GraphicsContext *gc)
static void | unregisterGraphicsContext (GraphicsContext *gc)
Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Protected Types

typedef std::map< const std::type_info *, osg::ref_ptr< osg::Referenced > > | ManagerMap

## Protected Member Functions

virtual | ~ContextData ()
Protected Member Functions inherited from osg::GraphicsObjectManager
virtual | ~GraphicsObjectManager ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

unsigned int | _numContexts
osg::ref_ptr< osg::GraphicsContext > | _compileContext
ManagerMap | _managerMap
Protected Attributes inherited from osg::GraphicsObjectManager
std::string | _name
unsigned int | _contextID
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Member Typedef Documentation

## GraphicsContexts

typedef GraphicsContext::GraphicsContexts osg::ContextData::GraphicsContexts

## ManagerMap

typedef std::map<const std::type_info*, osg::ref_ptr<osg::Referenced> > osg::ContextData::ManagerMap

protected

## Constructor & Destructor Documentation

## ContextData()

osg::ContextData::ContextData | ( | unsigned int | contextID | ) |

## ~ContextData()

virtual osg::ContextData::~ContextData | ( |  | ) |

protected virtual

## Member Function Documentation

## createNewContextID()

unsigned int osg::ContextData::createNewContextID | ( |  | ) |

static

Create a contextID for a new graphics context, this contextID is used to set up the osg::State associate with context. Automatically increments the usage count of the contextID to 1.

## decrementContextIDUsageCount()

void osg::ContextData::decrementContextIDUsageCount | ( | unsigned int | contextID | ) |

static

Decrement the usage count associate with a contextID. Once the contextID goes to 0 the contextID is then free to be reused.

## decrementUsageCount()

void osg::ContextData::decrementUsageCount | ( |  | ) |

inline

References _numContexts.

## deleteAllGLObjects()

virtual void osg::ContextData::deleteAllGLObjects | ( |  | ) |

virtual

Do a GL delete all OpenGL objects. Note, must be called from a thread which has current the graphics context associated with contextID.

Implements osg::GraphicsObjectManager.

## discardAllGLObjects()

virtual void osg::ContextData::discardAllGLObjects | ( |  | ) |

virtual

Discard all OpenGL objects. Note, unlike deleteAllGLjects discard does not do any OpenGL calls so can be called from any thread, but as a consequence it also doesn't remove the associated OpenGL resource so discard should only be called when the associated graphics context is being/has been closed.

Implements osg::GraphicsObjectManager.

## flushAllDeletedGLObjects()

virtual void osg::ContextData::flushAllDeletedGLObjects | ( |  | ) |

virtual

Flush all deleted OpenGL objects. Note, must be called from a thread which has current the graphics context associated with contextID.

Implements osg::GraphicsObjectManager.

## flushDeletedGLObjects()

virtual void osg::ContextData::flushDeletedGLObjects | ( | double | currentTime,
|  | double & | availableTime )

virtual

Flush all deleted OpenGL objects within the specified availableTime. Note, must be called from a thread which has current the graphics context associated with contextID.

Implements osg::GraphicsObjectManager.

## get() [1/2]

template<typename T>

T * osg::ContextData::get | ( |  | ) |

inline

Get a specific GL extensions object or GraphicsObjectManager, initialize if not already present. Note, must only be called from a the graphics context thread associated with this osg::State.

References osg::GraphicsObjectManager::_contextID, _managerMap, and osg::ref_ptr< T >::get().

Referenced by osg::get().

## get() [2/2]

template<typename T>

const T * osg::ContextData::get | ( |  | ) | const

inline

Get a specific GL extensions object or GraphicsObjectManager if it already exists in the extension map. Note, safe to call outwith a the graphics context thread associated with this osg::State. Returns NULL if the desired extension object has not been created yet.

References _managerMap.

## getAllRegisteredGraphicsContexts()

GraphicsContexts osg::ContextData::getAllRegisteredGraphicsContexts | ( |  | ) |

static

Get all the registered graphics contexts.

## getCompileContext() [1/2]

osg::GraphicsContext * osg::ContextData::getCompileContext | ( |  | ) |

inline

References _compileContext.

## getCompileContext() [2/2]

GraphicsContext * osg::ContextData::getCompileContext | ( | unsigned int | contextID | ) |

static

Get the GraphicsContext for doing background compilation for GraphicsContexts associated with specified contextID.

## getMaxContextID()

unsigned int osg::ContextData::getMaxContextID | ( |  | ) |

static

Get the current max ContextID.

## getNumContexts()

unsigned int osg::ContextData::getNumContexts | ( |  | ) | const

inline

References _numContexts.

## getOrCreateCompileContext()

GraphicsContext * osg::ContextData::getOrCreateCompileContext | ( | unsigned int | contextID | ) |

static

Get existing or create a new GraphicsContext to do background compilation for GraphicsContexts associated with specified contextID.

## getRegisteredGraphicsContexts()

GraphicsContexts osg::ContextData::getRegisteredGraphicsContexts | ( | unsigned int | contextID | ) |

static

Get all the registered graphics contexts associated with a specific contextID.

## incrementContextIDUsageCount()

void osg::ContextData::incrementContextIDUsageCount | ( | unsigned int | contextID | ) |

static

Increment the usage count associate with a contextID. The usage count specifies how many graphics contexts a specific contextID is shared between.

## incrementUsageCount()

void osg::ContextData::incrementUsageCount | ( |  | ) |

inline

References _numContexts.

## newFrame()

virtual void osg::ContextData::newFrame | ( | osg::FrameStamp * |  | ) |

virtual

Signal that a new frame has started.

Reimplemented from osg::GraphicsObjectManager.

## recomputeStats()

virtual void osg::ContextData::recomputeStats | ( | std::ostream & | out | ) | const

virtual

Reimplemented from osg::GraphicsObjectManager.

## registerGraphicsContext()

void osg::ContextData::registerGraphicsContext | ( | GraphicsContext * | gc | ) |

static

Register a GraphicsContext.

## reportStats()

virtual void osg::ContextData::reportStats | ( | std::ostream & | out | ) |

virtual

Reimplemented from osg::GraphicsObjectManager.

## resetStats()

virtual void osg::ContextData::resetStats | ( |  | ) |

virtual

Reimplemented from osg::GraphicsObjectManager.

## set()

template<typename T>

void osg::ContextData::set | ( | T * | ptr | ) |

inline

Set a specific GL extensions object pr GraphicsObjectManager.

References _managerMap.

## setCompileContext() [1/2]

void osg::ContextData::setCompileContext | ( | osg::GraphicsContext * | gc | ) |

inline

References _compileContext.

## setCompileContext() [2/2]

void osg::ContextData::setCompileContext | ( | unsigned int | contextID,
|  | GraphicsContext * | gc )

static

Get the GraphicsContext for doing background compilation for GraphicsContexts associated with specified contextID.

## setNumContexts()

void osg::ContextData::setNumContexts | ( | unsigned int | numContexts | ) |

inline

References _numContexts.

## unregisterGraphicsContext()

void osg::ContextData::unregisterGraphicsContext | ( | GraphicsContext * | gc | ) |

static

Unregister a GraphicsContext.

## Member Data Documentation

## _compileContext

osg::ref_ptr<osg::GraphicsContext> osg::ContextData::_compileContext

protected

Referenced by getCompileContext(), and setCompileContext().

## _managerMap

ManagerMap osg::ContextData::_managerMap

protected

Referenced by get(), get(), and set().

## _numContexts

unsigned int osg::ContextData::_numContexts

protected

Referenced by decrementUsageCount(), getNumContexts(), incrementUsageCount(), and setNumContexts().

The documentation for this class was generated from the following file:

- ContextData