14#ifndef OSGDB_SHAREDSTATEMANAGER
15#define OSGDB_SHAREDSTATEMANAGER 1
37 SHARE_STATIC_TEXTURES = 1<<0,
38 SHARE_UNSPECIFIED_TEXTURES = 1<<1,
39 SHARE_DYNAMIC_TEXTURES = 1<<2,
40 SHARE_STATIC_STATESETS = 1<<3,
41 SHARE_UNSPECIFIED_STATESETS = 1<<4,
42 SHARE_DYNAMIC_STATESETS = 1<<5,
43 SHARE_TEXTURES = SHARE_STATIC_TEXTURES | SHARE_UNSPECIFIED_TEXTURES,
44 SHARE_STATESETS = SHARE_STATIC_STATESETS | SHARE_UNSPECIFIED_STATESETS,
45 SHARE_ALL = SHARE_TEXTURES |
53 void setShareMode(
unsigned int mode);
78 return _shareTexture[variance];
83 return _shareStateSet[variance];
107 return lhs->compare(*rhs,
true) < 0;
128 bool _shareTexture[3];
129 bool _shareStateSet[3];
This class provides an object-oriented thread mutex interface.
Definition Mutex:31
Definition SharedStateManager:31
StateSetStateSetSharePairMap tmpSharedStateSetList
Definition SharedStateManager:125
ShareMode
Definition SharedStateManager:35
META_NodeVisitor(osgDB, SharedStateManager) void setShareMode(unsigned int mode)
std::pair< osg::StateAttribute *, bool > TextureSharePair
Definition SharedStateManager:119
void process(osg::StateSet *ss, osg::Object *parent)
bool shareStateSet(osg::Object::DataVariance variance)
Definition SharedStateManager:81
TextureTextureSharePairMap tmpSharedTextureList
Definition SharedStateManager:121
TextureSet _sharedTextureList
Definition SharedStateManager:113
osg::StateAttribute * find(osg::StateAttribute *sa)
bool shareTexture(osg::Object::DataVariance variance)
Definition SharedStateManager:76
osg::StateSet * find(osg::StateSet *ss)
StateSetSet _sharedStateSetList
Definition SharedStateManager:116
bool isShared(osg::StateSet *stateSet)
unsigned int getShareMode()
Definition SharedStateManager:55
OpenThreads::Mutex _listMutex
Definition SharedStateManager:135
OpenThreads::Mutex * _mutex
Definition SharedStateManager:133
bool isShared(osg::Texture *texture)
void setStateSet(osg::StateSet *ss, osg::Object *object)
std::pair< osg::StateSet *, bool > StateSetSharePair
Definition SharedStateManager:123
void releaseGLObjects(osg::State *state) const
unsigned int _shareMode
Definition SharedStateManager:127
void share(osg::Node *node, OpenThreads::Mutex *mt=0)
std::set< osg::ref_ptr< osg::StateSet >, CompareStateSets > StateSetSet
Definition SharedStateManager:115
std::set< osg::ref_ptr< osg::StateAttribute >, CompareStateAttributes > TextureSet
Definition SharedStateManager:112
std::map< osg::StateAttribute *, TextureSharePair > TextureTextureSharePairMap
Definition SharedStateManager:120
void shareTextures(osg::StateSet *ss)
std::map< osg::StateSet *, StateSetSharePair > StateSetStateSetSharePairMap
Definition SharedStateManager:124
SharedStateManager(unsigned int mode=SHARE_ALL)
void apply(osg::Node &node)
Definition NodeVisitor:82
DataVariance
Definition Object:217
Definition StateAttribute:77
#define OSGDB_EXPORT
Definition osgDB/Export:39
Definition SharedStateManager:94
bool operator()(const osg::ref_ptr< osg::StateAttribute > &lhs, const osg::ref_ptr< osg::StateAttribute > &rhs) const
Definition SharedStateManager:95
Definition SharedStateManager:103
bool operator()(const osg::ref_ptr< osg::StateSet > &lhs, const osg::ref_ptr< osg::StateSet > &rhs) const
Definition SharedStateManager:104