osgDB::SharedStateManager Class Reference

`#include <SharedStateManager>`

Inheritance diagram for osgDB::SharedStateManager:

## Classes

struct | CompareStateAttributes
struct | CompareStateSets

## Public Types

enum | ShareMode { SHARE_NONE = 0 , SHARE_STATIC_TEXTURES = 1<<0 , SHARE_UNSPECIFIED_TEXTURES = 1<<1 , SHARE_DYNAMIC_TEXTURES = 1<<2 , SHARE_STATIC_STATESETS = 1<<3 , SHARE_UNSPECIFIED_STATESETS = 1<<4 , SHARE_DYNAMIC_STATESETS = 1<<5 , SHARE_TEXTURES = SHARE_STATIC_TEXTURES | SHARE_UNSPECIFIED_TEXTURES , SHARE_STATESETS = SHARE_STATIC_STATESETS | SHARE_UNSPECIFIED_STATESETS , SHARE_ALL }
Public Types inherited from osg::NodeVisitor
enum | TraversalMode { TRAVERSE_NONE , TRAVERSE_PARENTS , TRAVERSE_ALL_CHILDREN , TRAVERSE_ACTIVE_CHILDREN }
enum | VisitorType { NODE_VISITOR = 0 , UPDATE_VISITOR , EVENT_VISITOR , COLLECT_OCCLUDER_VISITOR , CULL_VISITOR , INTERSECTION_VISITOR }
Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

## Public Member Functions

| SharedStateManager (unsigned int mode=SHARE_ALL)
| META_NodeVisitor (osgDB, SharedStateManager) void setShareMode(unsigned int mode)
unsigned int | getShareMode ()
void | prune ()
void | share (osg::Node *node, OpenThreads::Mutex *mt=0)
void | apply (osg::Node &node)
bool | isShared (osg::StateSet *stateSet)
bool | isShared (osg::Texture *texture)
void | releaseGLObjects (osg::State *state) const
Public Member Functions inherited from osg::NodeVisitor
| NodeVisitor (TraversalMode tm=TRAVERSE_NONE)
| NodeVisitor (VisitorType type, TraversalMode tm=TRAVERSE_NONE)
| NodeVisitor (const NodeVisitor &nv, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
virtual | ~NodeVisitor ()
| META_Object (osg, NodeVisitor) virtual NodeVisitor *asNodeVisitor()
virtual const NodeVisitor * | asNodeVisitor () const
virtual osgUtil::UpdateVisitor * | asUpdateVisitor ()
virtual const osgUtil::UpdateVisitor * | asUpdateVisitor () const
virtual osgUtil::CullVisitor * | asCullVisitor ()
virtual const osgUtil::CullVisitor * | asCullVisitor () const
virtual osgGA::EventVisitor * | asEventVisitor ()
virtual const osgGA::EventVisitor * | asEventVisitor () const
virtual osgUtil::IntersectionVisitor * | asIntersectionVisitor ()
virtual const osgUtil::IntersectionVisitor * | asIntersectionVisitor () const
virtual osg::CullStack * | asCullStack ()
virtual const osg::CullStack * | asCullStack () const
virtual void | reset ()
void | setVisitorType (VisitorType type)
VisitorType | getVisitorType () const
void | setTraversalNumber (unsigned int fn)
unsigned int | getTraversalNumber () const
void | setFrameStamp (FrameStamp *fs)
const FrameStamp * | getFrameStamp () const
void | setTraversalMask (Node::NodeMask mask)
Node::NodeMask | getTraversalMask () const
void | setNodeMaskOverride (Node::NodeMask mask)
Node::NodeMask | getNodeMaskOverride () const
bool | validNodeMask (const osg::Node &node) const
void | setTraversalMode (TraversalMode mode)
TraversalMode | getTraversalMode () const
void | setValueMap (ValueMap *ps)
ValueMap * | getValueMap ()
const ValueMap * | getValueMap () const
ValueMap * | getOrCreateValueMap ()
void | setValueStack (ValueStack *ps)
ValueStack * | getValueStack ()
const ValueStack * | getValueStack () const
ValueStack * | getOrCreateValueStack ()
void | traverse (Node &node)
void | pushOntoNodePath (Node *node)
void | popFromNodePath ()
NodePath & | getNodePath ()
const NodePath & | getNodePath () const
virtual osg::Vec3 | getEyePoint () const
virtual osg::Vec3 | getViewPoint () const
virtual float | getDistanceToEyePoint (const Vec3 &, bool) const
virtual float | getDistanceFromEyePoint (const Vec3 &, bool) const
virtual float | getDistanceToViewPoint (const Vec3 &, bool) const
virtual void | apply (Drawable &drawable)
virtual void | apply (Geometry &geometry)
virtual void | apply (Geode &node)
virtual void | apply (Billboard &node)
virtual void | apply (Group &node)
virtual void | apply (ProxyNode &node)
virtual void | apply (Projection &node)
virtual void | apply (CoordinateSystemNode &node)
virtual void | apply (ClipNode &node)
virtual void | apply (TexGenNode &node)
virtual void | apply (LightSource &node)
virtual void | apply (Transform &node)
virtual void | apply (Camera &node)
virtual void | apply (CameraView &node)
virtual void | apply (MatrixTransform &node)
virtual void | apply (PositionAttitudeTransform &node)
virtual void | apply (AutoTransform &node)
virtual void | apply (Switch &node)
virtual void | apply (Sequence &node)
virtual void | apply (LOD &node)
virtual void | apply (PagedLOD &node)
virtual void | apply (ClearNode &node)
virtual void | apply (OccluderNode &node)
virtual void | apply (OcclusionQueryNode &node)
void | setDatabaseRequestHandler (DatabaseRequestHandler *handler)
DatabaseRequestHandler * | getDatabaseRequestHandler ()
const DatabaseRequestHandler * | getDatabaseRequestHandler () const
void | setImageRequestHandler (ImageRequestHandler *handler)
ImageRequestHandler * | getImageRequestHandler ()
const ImageRequestHandler * | getImageRequestHandler () const
Public Member Functions inherited from osg::Object
| Object ()
| Object (bool threadSafeRefUnref)
| Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * | cloneType () const =0
virtual Object * | clone (const CopyOp &) const =0
virtual bool | isSameKindAs (const Object *) const
virtual const char * | libraryName () const =0
virtual const char * | className () const =0
std::string | getCompoundClassName () const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual NodeVisitor * | asNodeVisitor ()
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
virtual Image * | asImage ()
virtual const Image * | asImage () const
virtual void | setThreadSafeRefUnref (bool threadSafe)
virtual void | setName (const std::string &name)
void | setName (const char *name)
const std::string & | getName () const
void | setDataVariance (DataVariance dv)
DataVariance | getDataVariance () const
virtual void | computeDataVariance ()
void | setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
virtual Referenced * | getUserData ()
virtual const Referenced * | getUserData () const
template<typename T>
bool | getUserValue (const std::string &name, T &value) const
template<typename T>
void | setUserValue (const std::string &name, const T &value)
virtual void | resizeGLObjectBuffers (unsigned int)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
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

## Protected Types

typedef std::set< osg::ref_ptr< osg::StateAttribute >, CompareStateAttributes > | TextureSet
typedef std::set< osg::ref_ptr< osg::StateSet >, CompareStateSets > | StateSetSet
typedef std::pair< osg::StateAttribute *, bool > | TextureSharePair
typedef std::map< osg::StateAttribute *, TextureSharePair > | TextureTextureSharePairMap
typedef std::pair< osg::StateSet *, bool > | StateSetSharePair
typedef std::map< osg::StateSet *, StateSetSharePair > | StateSetStateSetSharePairMap

## Protected Member Functions

bool | shareTexture (osg::Object::DataVariance variance)
bool | shareStateSet (osg::Object::DataVariance variance)
void | process (osg::StateSet *ss, osg::Object *parent)
osg::StateAttribute * | find (osg::StateAttribute *sa)
osg::StateSet * | find (osg::StateSet *ss)
void | setStateSet (osg::StateSet *ss, osg::Object *object)
void | shareTextures (osg::StateSet *ss)
Protected Member Functions inherited from osg::Object
virtual | ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

TextureSet | _sharedTextureList
StateSetSet | _sharedStateSetList
TextureTextureSharePairMap | tmpSharedTextureList
StateSetStateSetSharePairMap | tmpSharedStateSetList
unsigned int | _shareMode
bool | _shareTexture [3]
bool | _shareStateSet [3]
OpenThreads::Mutex * | _mutex
OpenThreads::Mutex | _listMutex
Protected Attributes inherited from osg::NodeVisitor
VisitorType | _visitorType
unsigned int | _traversalNumber
ref_ptr< FrameStamp > | _frameStamp
TraversalMode | _traversalMode
Node::NodeMask | _traversalMask
Node::NodeMask | _nodeMaskOverride
NodePath | _nodePath
ref_ptr< DatabaseRequestHandler > | _databaseRequestHandler
ref_ptr< ImageRequestHandler > | _imageRequestHandler
osg::ref_ptr< ValueMap > | _valueMap
osg::ref_ptr< ValueStack > | _valueStack
Protected Attributes inherited from osg::Object
std::string | _name
DataVariance | _dataVariance
osg::UserDataContainer * | _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Member Typedef Documentation

## StateSetSet

typedef std::set< osg::ref_ptr<osg::StateSet>, CompareStateSets > osgDB::SharedStateManager::StateSetSet

protected

## StateSetSharePair

typedef std::pair<osg::StateSet*, bool> osgDB::SharedStateManager::StateSetSharePair

protected

## StateSetStateSetSharePairMap

typedef std::map<osg::StateSet*, StateSetSharePair> osgDB::SharedStateManager::StateSetStateSetSharePairMap

protected

## TextureSet

typedef std::set< osg::ref_ptr<osg::StateAttribute>, CompareStateAttributes > osgDB::SharedStateManager::TextureSet

protected

## TextureSharePair

typedef std::pair<osg::StateAttribute*, bool> osgDB::SharedStateManager::TextureSharePair

protected

## TextureTextureSharePairMap

typedef std::map<osg::StateAttribute*, TextureSharePair> osgDB::SharedStateManager::TextureTextureSharePairMap

protected

## Member Enumeration Documentation

## ShareMode

enum osgDB::SharedStateManager::ShareMode

Enumerator
SHARE_NONE |
SHARE_STATIC_TEXTURES |
SHARE_UNSPECIFIED_TEXTURES |
SHARE_DYNAMIC_TEXTURES |
SHARE_STATIC_STATESETS |
SHARE_UNSPECIFIED_STATESETS |
SHARE_DYNAMIC_STATESETS |
SHARE_TEXTURES |
SHARE_STATESETS |
SHARE_ALL |

## Constructor & Destructor Documentation

## SharedStateManager()

osgDB::SharedStateManager::SharedStateManager | ( | unsigned int | mode = SHARE_ALL | ) |

References SHARE_ALL.

Referenced by META_NodeVisitor().

## Member Function Documentation

## apply()

void osgDB::SharedStateManager::apply | ( | osg::Node & | node | ) |

virtual

Reimplemented from osg::NodeVisitor.

## find() [1/2]

osg::StateAttribute * osgDB::SharedStateManager::find | ( | osg::StateAttribute * | sa | ) |

protected

## find() [2/2]

osg::StateSet * osgDB::SharedStateManager::find | ( | osg::StateSet * | ss | ) |

protected

## getShareMode()

unsigned int osgDB::SharedStateManager::getShareMode | ( |  | ) |

inline

References _shareMode.

## isShared() [1/2]

bool osgDB::SharedStateManager::isShared | ( | osg::StateSet * | stateSet | ) |

## isShared() [2/2]

bool osgDB::SharedStateManager::isShared | ( | osg::Texture * | texture | ) |

## META_NodeVisitor()

osgDB::SharedStateManager::META_NodeVisitor | ( | osgDB | ,
|  | SharedStateManager | )

References SharedStateManager().

## process()

void osgDB::SharedStateManager::process | ( | osg::StateSet * | ss,
|  | osg::Object * | parent )

protected

## prune()

void osgDB::SharedStateManager::prune | ( |  | ) |

## releaseGLObjects()

void osgDB::SharedStateManager::releaseGLObjects | ( | osg::State * |  | ) | const

virtual

If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. Otherwise, releases OpenGL objects for all graphics contexts.

Reimplemented from osg::Object.

## setStateSet()

void osgDB::SharedStateManager::setStateSet | ( | osg::StateSet * | ss,
|  | osg::Object * | object )

protected

## share()

void osgDB::SharedStateManager::share | ( | osg::Node * | node,
|  | OpenThreads::Mutex * | mt = 0 )

## shareStateSet()

bool osgDB::SharedStateManager::shareStateSet | ( | osg::Object::DataVariance | variance | ) |

inline protected

References _shareStateSet.

## shareTexture()

bool osgDB::SharedStateManager::shareTexture | ( | osg::Object::DataVariance | variance | ) |

inline protected

References _shareTexture.

## shareTextures()

void osgDB::SharedStateManager::shareTextures | ( | osg::StateSet * | ss | ) |

protected

## Member Data Documentation

## _listMutex

OpenThreads::Mutex osgDB::SharedStateManager::_listMutex

mutable protected

## _mutex

OpenThreads::Mutex* osgDB::SharedStateManager::_mutex

protected

## _sharedStateSetList

StateSetSet osgDB::SharedStateManager::_sharedStateSetList

protected

## _sharedTextureList

TextureSet osgDB::SharedStateManager::_sharedTextureList

protected

## _shareMode

unsigned int osgDB::SharedStateManager::_shareMode

protected

Referenced by getShareMode().

## _shareStateSet

bool osgDB::SharedStateManager::_shareStateSet[3]

protected

Referenced by shareStateSet().

## _shareTexture

bool osgDB::SharedStateManager::_shareTexture[3]

protected

Referenced by shareTexture().

## tmpSharedStateSetList

StateSetStateSetSharePairMap osgDB::SharedStateManager::tmpSharedStateSetList

protected

## tmpSharedTextureList

TextureTextureSharePairMap osgDB::SharedStateManager::tmpSharedTextureList

protected

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

- SharedStateManager