OpenSceneGraph  3.5.1
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
osg::StateSet Class Reference

Stores a set of modes and attributes which represent a set of OpenGL state. More...

Inheritance diagram for osg::StateSet:
Inheritance graph
[legend]

Classes

struct  Callback
 

Public Types

enum  RenderingHint { DEFAULT_BIN = 0, OPAQUE_BIN = 1, TRANSPARENT_BIN = 2 }
 
enum  RenderBinMode {
  INHERIT_RENDERBIN_DETAILS =0, USE_RENDERBIN_DETAILS =1, OVERRIDE_RENDERBIN_DETAILS =2, PROTECTED_RENDERBIN_DETAILS =4,
  OVERRIDE_PROTECTED_RENDERBIN_DETAILS = OVERRIDE_RENDERBIN_DETAILS|PROTECTED_RENDERBIN_DETAILS
}
 
typedef std::vector< Node * > ParentList
 A vector of osg::Object pointers which is used to store the parent(s) of this Stateset, the parents could be osg::Node or osg::Drawable. More...
 
typedef std::map< StateAttribute::GLMode, StateAttribute::GLModeValueModeList
 a container to map GLModes to their respective GLModeValues. More...
 
typedef std::pair< ref_ptr< StateAttribute >, StateAttribute::OverrideValueRefAttributePair
 Simple pairing between an attribute and its override flag. More...
 
typedef std::map< StateAttribute::TypeMemberPair, RefAttributePairAttributeList
 a container to map <StateAttribyte::Types,Member> to their respective RefAttributePair. More...
 
typedef std::vector< ModeListTextureModeList
 
typedef std::vector< AttributeListTextureAttributeList
 
typedef std::pair< ref_ptr< Uniform >, StateAttribute::OverrideValueRefUniformPair
 Simple pairing between a Uniform and its override flag. More...
 
typedef std::map< std::string, RefUniformPairUniformList
 a container to map Uniform name to its respective RefUniformPair. More...
 
typedef std::pair< std::string, StateAttribute::OverrideValueDefinePair
 
typedef std::map< std::string, DefinePairDefineList
 
- Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC, STATIC, UNSPECIFIED }
 

Public Member Functions

 StateSet ()
 
 StateSet (const StateSet &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 
virtual ObjectcloneType () const
 Clone the type of an object, with Object* return type. More...
 
virtual Objectclone (const CopyOp &copyop) const
 Clone an object, with Object* return type. More...
 
virtual bool isSameKindAs (const Object *obj) const
 
virtual const char * libraryName () const
 return the name of the object's library. More...
 
virtual const char * className () const
 return the name of the object's class type. More...
 
int compare (const StateSet &rhs, bool compareAttributeContents=false) const
 return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. More...
 
bool operator< (const StateSet &rhs) const
 
bool operator== (const StateSet &rhs) const
 
bool operator!= (const StateSet &rhs) const
 
const ParentListgetParents () const
 Get the parent list of this StateSet. More...
 
ParentList getParents ()
 Get the a copy of parent list of node. More...
 
NodegetParent (unsigned int i)
 
const NodegetParent (unsigned int i) const
 Get a single const parent of this StateSet. More...
 
unsigned int getNumParents () const
 Get the number of parents of this StateSet. More...
 
virtual void computeDataVariance ()
 Compute the DataVariance based on an assessment of callback etc. More...
 
void setGlobalDefaults ()
 Set all the modes to on or off so that it defines a complete state, typically used for a default global state. More...
 
void clear ()
 Clear the StateSet of all modes and attributes. More...
 
void merge (const StateSet &rhs)
 Merge this StateSet with the StateSet passed as parameter. More...
 
void setMode (StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
 Set this StateSet to contain the specified GLMode with a given value. More...
 
void removeMode (StateAttribute::GLMode mode)
 Remove mode from this StateSet. More...
 
StateAttribute::GLModeValue getMode (StateAttribute::GLMode mode) const
 Get the value for a given GLMode. More...
 
void setModeList (ModeList &ml)
 Set the list of all GLModes contained in this StateSet. More...
 
ModeListgetModeList ()
 Return the list of all GLModes contained in this StateSet. More...
 
const ModeListgetModeList () const
 Return the const list of all GLModes contained in this const StateSet. More...
 
void setAttribute (StateAttribute *attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
 Set this StateSet to contain specified attribute and override flag. More...
 
template<class T >
void setAttribute (const ref_ptr< T > &attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
 
void setAttributeAndModes (StateAttribute *attribute, StateAttribute::GLModeValue value=StateAttribute::ON)
 Set this StateSet to contain specified attribute and set the associated GLMode's to specified value. More...
 
template<class T >
void setAttributeAndModes (const ref_ptr< T > &attribute, StateAttribute::GLModeValue value=StateAttribute::ON)
 
void removeAttribute (StateAttribute::Type type, unsigned int member=0)
 remove attribute of specified type from StateSet. More...
 
void removeAttribute (StateAttribute *attribute)
 remove attribute from StateSet. More...
 
template<class T >
void removeAttribute (const ref_ptr< T > &attribute)
 
StateAttributegetAttribute (StateAttribute::Type type, unsigned int member=0)
 Get specified StateAttribute for specified type. More...
 
const StateAttributegetAttribute (StateAttribute::Type type, unsigned int member=0) const
 Get specified const StateAttribute for specified type. More...
 
const RefAttributePairgetAttributePair (StateAttribute::Type type, unsigned int member=0) const
 Get specified RefAttributePair for specified type. More...
 
void setAttributeList (AttributeList &al)
 set the list of all StateAttributes contained in this StateSet. More...
 
AttributeListgetAttributeList ()
 return the list of all StateAttributes contained in this StateSet. More...
 
const AttributeListgetAttributeList () const
 return the const list of all StateAttributes contained in this const StateSet. More...
 
void setTextureMode (unsigned int unit, StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
 Set this StateSet to contain specified GLMode with a given value. More...
 
void removeTextureMode (unsigned int unit, StateAttribute::GLMode mode)
 Remove texture mode from StateSet. More...
 
StateAttribute::GLModeValue getTextureMode (unsigned int unit, StateAttribute::GLMode mode) const
 Get specified GLModeValue for specified GLMode. More...
 
void setTextureModeList (TextureModeList &tml)
 set the list of all Texture related GLModes contained in this StateSet. More...
 
TextureModeListgetTextureModeList ()
 return the list of all Texture related GLModes contained in this StateSet. More...
 
const TextureModeListgetTextureModeList () const
 return the const list of all Texture related GLModes contained in this const StateSet. More...
 
unsigned int getNumTextureModeLists () const
 Return the number texture units active in the TextureModeList. More...
 
void setTextureAttribute (unsigned int unit, StateAttribute *attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
 Set this StateSet to contain specified attribute and override flag. More...
 
template<class T >
void setTextureAttribute (unsigned int unit, const ref_ptr< T > &attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
 
void setTextureAttributeAndModes (unsigned int unit, StateAttribute *attribute, StateAttribute::GLModeValue value=StateAttribute::ON)
 Set this StateSet to contain specified attribute and set the associated GLMode's to specified value. More...
 
template<class T >
void setTextureAttributeAndModes (unsigned int unit, const ref_ptr< T > &attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
 
void removeTextureAttribute (unsigned int unit, StateAttribute::Type type)
 remove texture attribute of specified type from StateSet. More...
 
void removeTextureAttribute (unsigned int unit, StateAttribute *attribute)
 remove texture attribute from StateSet. More...
 
template<class T >
void removeTextureAttribute (unsigned int unit, const ref_ptr< T > &attribute)
 
StateAttributegetTextureAttribute (unsigned int unit, StateAttribute::Type type)
 Get specified Texture related StateAttribute for specified type. More...
 
const StateAttributegetTextureAttribute (unsigned int unit, StateAttribute::Type type) const
 Get specified Texture related const StateAttribute for specified type. More...
 
const RefAttributePairgetTextureAttributePair (unsigned int unit, StateAttribute::Type type) const
 Get specified Texture related RefAttributePair for specified type. More...
 
void setTextureAttributeList (TextureAttributeList &tal)
 Set the list of all Texture related StateAttributes contained in this StateSet. More...
 
TextureAttributeListgetTextureAttributeList ()
 Return the list of all Texture related StateAttributes contained in this StateSet. More...
 
const TextureAttributeListgetTextureAttributeList () const
 Return the const list of all Texture related StateAttributes contained in this const StateSet. More...
 
unsigned int getNumTextureAttributeLists () const
 Return the number of texture units active in the TextureAttributeList. More...
 
void setAssociatedModes (const StateAttribute *attribute, StateAttribute::GLModeValue value)
 
void removeAssociatedModes (const StateAttribute *attribute)
 
void setAssociatedTextureModes (unsigned int unit, const StateAttribute *attribute, StateAttribute::GLModeValue value)
 
void removeAssociatedTextureModes (unsigned int unit, const StateAttribute *attribute)
 
void addUniform (Uniform *uniform, StateAttribute::OverrideValue value=StateAttribute::ON)
 Set this StateSet to contain specified uniform and override flag. More...
 
template<class T >
void addUniform (const ref_ptr< T > &uniform, StateAttribute::OverrideValue value=StateAttribute::ON)
 
void removeUniform (const std::string &name)
 remove uniform of specified name from StateSet. More...
 
void removeUniform (Uniform *uniform)
 remove Uniform from StateSet. More...
 
template<class T >
void removeUniform (const ref_ptr< T > &uniform)
 
UniformgetUniform (const std::string &name)
 Get Uniform for specified name. More...
 
UniformgetOrCreateUniform (const std::string &name, Uniform::Type type, unsigned int numElements=1)
 Get Uniform for specified name, if one is not available create it, add it to this StateSet and return a pointer to it. More...
 
const UniformgetUniform (const std::string &name) const
 Get const Uniform for specified name. More...
 
const RefUniformPairgetUniformPair (const std::string &name) const
 Get specified RefUniformPair for specified Uniform name. More...
 
void setUniformList (UniformList &al)
 set the list of all Uniforms contained in this StateSet. More...
 
UniformListgetUniformList ()
 return the list of all Uniforms contained in this StateSet. More...
 
const UniformListgetUniformList () const
 return the const list of all Uniforms contained in this const StateSet. More...
 
void setDefine (const std::string &defineName, StateAttribute::OverrideValue value=StateAttribute::ON)
 Added define pass on to shaders that use utilize that define, as specified by the GLSL #pragma import_defines(..) and #pragma requires(..). More...
 
void setDefine (const std::string &defineName, const std::string &defineValue, StateAttribute::OverrideValue value=StateAttribute::ON)
 Added define with value to pass on to shaders that use utilize that define, as specified by the GLSL #pragma import_defines(..) and #pragma requires(..). More...
 
DefinePairgetDefinePair (const std::string &defineName)
 
const DefinePairgetDefinePair (const std::string &defineName) const
 
void removeDefine (const std::string &defineName)
 Remove define. More...
 
void setDefineList (const DefineList &dl)
 Set the list of defines to pass on to shaders. More...
 
DefineListgetDefineList ()
 Get the list of defines to pass on to shaders. More...
 
const DefineListgetDefineList () const
 Get the const list of defines to pass on to shaders. More...
 
void setRenderingHint (int hint)
 Set the RenderingHint of this StateSet. More...
 
int getRenderingHint () const
 Get the RenderingHint of this StateSet. More...
 
void setRenderBinDetails (int binNum, const std::string &binName, RenderBinMode mode=USE_RENDERBIN_DETAILS)
 Set the render bin details. More...
 
void setRenderBinToInherit ()
 Set the render bin details to inherit. More...
 
bool useRenderBinDetails () const
 Get whether the render bin details are set and should be used. More...
 
void setRenderBinMode (RenderBinMode mode)
 Set the render bin mode. More...
 
RenderBinMode getRenderBinMode () const
 Get the render bin mode. More...
 
void setBinNumber (int num)
 Set the render bin number. More...
 
int getBinNumber () const
 Get the render bin number. More...
 
void setBinName (const std::string &name)
 Set the render bin name. More...
 
const std::string & getBinName () const
 Get the render bin name. More...
 
void setNestRenderBins (bool val)
 By default render bins will be nested within each other dependent upon where they are set in the scene graph. More...
 
bool getNestRenderBins () const
 Get whether associated RenderBin should be nested within parents RenderBin. More...
 
void setUpdateCallback (Callback *ac)
 Set the Update Callback which allows users to attach customize the updating of an object during the update traversal. More...
 
template<class T >
void setUpdateCallback (const ref_ptr< T > &ac)
 
CallbackgetUpdateCallback ()
 Get the non const Update Callback. More...
 
const CallbackgetUpdateCallback () const
 Get the const Update Callback. More...
 
bool requiresUpdateTraversal () const
 Return whether this StateSet has update callbacks associated with it, and therefore must be traversed. More...
 
unsigned int getNumChildrenRequiringUpdateTraversal () const
 Get the number of Objects of this StateSet which require Update traversal, since they have an Update Callback attached to them or their children. More...
 
void runUpdateCallbacks (osg::NodeVisitor *nv)
 Run the update callbacks attached directly to this StateSet or to its children. More...
 
void setEventCallback (Callback *ac)
 Set the Event Callback which allows users to attach customize the updating of an object during the event traversal. More...
 
template<class T >
void setEventCallback (const ref_ptr< T > &ec)
 
CallbackgetEventCallback ()
 Get the non const Event Callback. More...
 
const CallbackgetEventCallback () const
 Get the const Event Callback. More...
 
bool requiresEventTraversal () const
 Return whether this StateSet has event callbacks associated with it, and therefore must be traversed. More...
 
unsigned int getNumChildrenRequiringEventTraversal () const
 Get the number of Objects of this StateSet which require Event traversal, since they have an Eevnt Callback attached to them or their children. More...
 
void runEventCallbacks (osg::NodeVisitor *nv)
 Run the event callbacks attached directly to this StateSet or to its children. More...
 
bool checkValidityOfAssociatedModes (State &state) const
 Check the modes associated with this StateSet are supported by current OpenGL drivers, and if not set the associated mode in osg::State to be black listed/invalid. More...
 
virtual void setThreadSafeRefUnref (bool threadSafe)
 Set whether to use a mutex to ensure ref() and unref() are thread safe. More...
 
void compileGLObjects (State &state) const
 call compile on all StateAttributes contained within this StateSet. More...
 
virtual void resizeGLObjectBuffers (unsigned int maxSize)
 Resize any per context GLObject buffers to specified size. More...
 
virtual void releaseGLObjects (State *state=0) const
 call release on all StateAttributes contained within this StateSet. More...
 
- Public Member Functions inherited from osg::Object
 Object ()
 Construct an object. More...
 
 Object (bool threadSafeRefUnref)
 
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data. More...
 
std::string getCompoundClassName () const
 return the compound class name that combines the library name and class name. More...
 
virtual NodeasNode ()
 Convert 'this' into a Node pointer if Object is a Node, otherwise return 0. More...
 
virtual const NodeasNode () const
 convert 'const this' into a const Node pointer if Object is a Node, otherwise return 0. More...
 
virtual NodeVisitorasNodeVisitor ()
 Convert 'this' into a NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. More...
 
virtual const NodeVisitorasNodeVisitor () const
 convert 'const this' into a const NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. More...
 
virtual StateAttributeasStateAttribute ()
 Convert 'this' into a StateAttribute pointer if Object is a StateAttribute, otherwise return 0. More...
 
virtual const StateAttributeasStateAttribute () const
 convert 'const this' into a const StateAttribute pointer if Object is a StateAttribute, otherwise return 0. More...
 
virtual UniformasUniform ()
 Convert 'this' into a Uniform pointer if Object is a Uniform, otherwise return 0. More...
 
virtual const UniformasUniform () const
 convert 'const this' into a const Uniform pointer if Object is a Uniform, otherwise return 0. 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...
 
void setUserDataContainer (osg::UserDataContainer *udc)
 set the UserDataContainer object. More...
 
template<class T >
void setUserDataContainer (const ref_ptr< T > &udc)
 
osg::UserDataContainergetUserDataContainer ()
 get the UserDataContainer attached to this object. More...
 
const osg::UserDataContainergetUserDataContainer () const
 get the const UserDataContainer attached to this object. More...
 
osg::UserDataContainergetOrCreateUserDataContainer ()
 Convenience 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...
 
template<class T >
void setUserData (const ref_ptr< T > &ud)
 
virtual ReferencedgetUserData ()
 Get user data. More...
 
virtual const ReferencedgetUserData () const
 Get const user data. More...
 
template<typename T >
bool getUserValue (const std::string &name, T &value) const
 Convenience 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)
 Convenience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject. More...
 
template<typename T >
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool getUserValue (const std::string &name, T &value) const
 provide implementation of osg::Object::getUserValue(..) template More...
 
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 
 Referenced (bool threadSafeRefUnref)
 
 Referenced (const Referenced &)
 
Referencedoperator= (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...
 
ObserverSetgetObserverSet () const
 Get the ObserverSet if one is attached, otherwise return NULL. More...
 
ObserverSetgetOrCreateObserverSet () 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

virtual ~StateSet ()
 
StateSetoperator= (const StateSet &)
 
void addParent (osg::Node *object)
 
void removeParent (osg::Node *object)
 
ModeListgetOrCreateTextureModeList (unsigned int unit)
 
AttributeListgetOrCreateTextureAttributeList (unsigned int unit)
 
int compareModes (const ModeList &lhs, const ModeList &rhs)
 
int compareAttributePtrs (const AttributeList &lhs, const AttributeList &rhs)
 
int compareAttributeContents (const AttributeList &lhs, const AttributeList &rhs)
 
void setMode (ModeList &modeList, StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
 
void setModeToInherit (ModeList &modeList, StateAttribute::GLMode mode)
 
StateAttribute::GLModeValue getMode (const ModeList &modeList, StateAttribute::GLMode mode) const
 
void setAttribute (AttributeList &attributeList, StateAttribute *attribute, const StateAttribute::OverrideValue value=StateAttribute::OFF)
 
StateAttributegetAttribute (AttributeList &attributeList, const StateAttribute::Type type, unsigned int member)
 
const StateAttributegetAttribute (const AttributeList &attributeList, const StateAttribute::Type type, unsigned int member) const
 
const RefAttributePairgetAttributePair (const AttributeList &attributeList, const StateAttribute::Type type, unsigned int member) const
 
void setNumChildrenRequiringUpdateTraversal (unsigned int num)
 
void setNumChildrenRequiringEventTraversal (unsigned int num)
 
- Protected Member Functions inherited from osg::Object
virtual ~Object ()
 Object destructor. More...
 
- Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
 
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
 
void deleteUsingDeleteHandler () const
 

Protected Attributes

ParentList _parents
 
ModeList _modeList
 
AttributeList _attributeList
 
TextureModeList _textureModeList
 
TextureAttributeList _textureAttributeList
 
UniformList _uniformList
 
DefineList _defineList
 
int _renderingHint
 
RenderBinMode _binMode
 
int _binNum
 
std::string _binName
 
bool _nestRenderBins
 
ref_ptr< Callback_updateCallback
 
unsigned int _numChildrenRequiringUpdateTraversal
 
ref_ptr< Callback_eventCallback
 
unsigned int _numChildrenRequiringEventTraversal
 
- 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
 

Friends

class osg::Node
 
class osg::Drawable
 
class osg::Uniform
 
class osg::StateAttribute
 

Additional Inherited Members

- Static Public Member Functions inherited from osg::Referenced
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 DeleteHandlergetDeleteHandler ()
 Get a DeleteHandler. More...
 

Detailed Description

Stores a set of modes and attributes which represent a set of OpenGL state.

Notice that a StateSet contains just a subset of the whole OpenGL state.

In OSG, each Drawable and each Node has a reference to a StateSet. These StateSets can be shared between different Drawables and Nodes (that is, several Drawables and Nodes can reference the same StateSet). Indeed, this practice is recommended whenever possible, as this minimizes expensive state changes in the graphics pipeline.

Member Typedef Documentation

a container to map <StateAttribyte::Types,Member> to their respective RefAttributePair.

typedef std::map<std::string, DefinePair> osg::StateSet::DefineList

a container to map GLModes to their respective GLModeValues.

typedef std::vector<Node*> osg::StateSet::ParentList

A vector of osg::Object pointers which is used to store the parent(s) of this Stateset, the parents could be osg::Node or osg::Drawable.

Simple pairing between an attribute and its override flag.

Simple pairing between a Uniform and its override flag.

typedef std::map<std::string,RefUniformPair> osg::StateSet::UniformList

a container to map Uniform name to its respective RefUniformPair.

Member Enumeration Documentation

Enumerator
INHERIT_RENDERBIN_DETAILS 
USE_RENDERBIN_DETAILS 
OVERRIDE_RENDERBIN_DETAILS 
PROTECTED_RENDERBIN_DETAILS 
OVERRIDE_PROTECTED_RENDERBIN_DETAILS 
Enumerator
DEFAULT_BIN 
OPAQUE_BIN 
TRANSPARENT_BIN 

Constructor & Destructor Documentation

osg::StateSet::StateSet ( )
osg::StateSet::StateSet ( const StateSet ,
const CopyOp copyop = CopyOp::SHALLOW_COPY 
)
virtual osg::StateSet::~StateSet ( )
protectedvirtual

Member Function Documentation

void osg::StateSet::addParent ( osg::Node object)
protected
void osg::StateSet::addUniform ( Uniform uniform,
StateAttribute::OverrideValue  value = StateAttribute::ON 
)

Set this StateSet to contain specified uniform and override flag.

template<class T >
void osg::StateSet::addUniform ( const ref_ptr< T > &  uniform,
StateAttribute::OverrideValue  value = StateAttribute::ON 
)
inline
bool osg::StateSet::checkValidityOfAssociatedModes ( State state) const

Check the modes associated with this StateSet are supported by current OpenGL drivers, and if not set the associated mode in osg::State to be black listed/invalid.

Return true if all associated modes are valid.

virtual const char* osg::StateSet::className ( ) const
inlinevirtual

return the name of the object's class type.

Must be defined by derived classes.

Implements osg::Object.

void osg::StateSet::clear ( )

Clear the StateSet of all modes and attributes.

virtual Object* osg::StateSet::clone ( const CopyOp ) const
inlinevirtual

Clone an object, with Object* return type.

Must be defined by derived classes.

Implements osg::Object.

virtual Object* osg::StateSet::cloneType ( ) const
inlinevirtual

Clone the type of an object, with Object* return type.

Must be defined by derived classes.

Implements osg::Object.

int osg::StateSet::compare ( const StateSet rhs,
bool  compareAttributeContents = false 
) const

return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.

int osg::StateSet::compareAttributeContents ( const AttributeList lhs,
const AttributeList rhs 
)
protected
int osg::StateSet::compareAttributePtrs ( const AttributeList lhs,
const AttributeList rhs 
)
protected
int osg::StateSet::compareModes ( const ModeList lhs,
const ModeList rhs 
)
protected
void osg::StateSet::compileGLObjects ( State state) const

call compile on all StateAttributes contained within this StateSet.

virtual void osg::StateSet::computeDataVariance ( )
virtual

Compute the DataVariance based on an assessment of callback etc.

Reimplemented from osg::Object.

StateAttribute* osg::StateSet::getAttribute ( StateAttribute::Type  type,
unsigned int  member = 0 
)

Get specified StateAttribute for specified type.

Returns NULL if no type is contained within StateSet.

const StateAttribute* osg::StateSet::getAttribute ( StateAttribute::Type  type,
unsigned int  member = 0 
) const

Get specified const StateAttribute for specified type.

Returns NULL if no type is contained within const StateSet.

StateAttribute* osg::StateSet::getAttribute ( AttributeList attributeList,
const StateAttribute::Type  type,
unsigned int  member 
)
protected
const StateAttribute* osg::StateSet::getAttribute ( const AttributeList attributeList,
const StateAttribute::Type  type,
unsigned int  member 
) const
protected
AttributeList& osg::StateSet::getAttributeList ( )
inline

return the list of all StateAttributes contained in this StateSet.

const AttributeList& osg::StateSet::getAttributeList ( ) const
inline

return the const list of all StateAttributes contained in this const StateSet.

const RefAttributePair* osg::StateSet::getAttributePair ( StateAttribute::Type  type,
unsigned int  member = 0 
) const

Get specified RefAttributePair for specified type.

Returns NULL if no type is contained within StateSet.

const RefAttributePair* osg::StateSet::getAttributePair ( const AttributeList attributeList,
const StateAttribute::Type  type,
unsigned int  member 
) const
protected
const std::string& osg::StateSet::getBinName ( ) const
inline

Get the render bin name.

int osg::StateSet::getBinNumber ( ) const
inline

Get the render bin number.

DefineList& osg::StateSet::getDefineList ( )
inline

Get the list of defines to pass on to shaders.

const DefineList& osg::StateSet::getDefineList ( ) const
inline

Get the const list of defines to pass on to shaders.

DefinePair* osg::StateSet::getDefinePair ( const std::string &  defineName)
inline
const DefinePair* osg::StateSet::getDefinePair ( const std::string &  defineName) const
inline
Callback* osg::StateSet::getEventCallback ( )
inline

Get the non const Event Callback.

const Callback* osg::StateSet::getEventCallback ( ) const
inline

Get the const Event Callback.

StateAttribute::GLModeValue osg::StateSet::getMode ( StateAttribute::GLMode  mode) const

Get the value for a given GLMode.

Parameters
modeThe GLMode whose value is desired.
Returns
If mode is contained within this StateSet, returns the value associated with it. Otherwise, returns StateAttribute::INHERIT.
Note
Don't use this method to get the value of modes related to textures. For this purpose, use removeTextureMode(), that accepts an extra parameter specifying which texture unit shall be affected by the call.
StateAttribute::GLModeValue osg::StateSet::getMode ( const ModeList modeList,
StateAttribute::GLMode  mode 
) const
protected
ModeList& osg::StateSet::getModeList ( )
inline

Return the list of all GLModes contained in this StateSet.

const ModeList& osg::StateSet::getModeList ( ) const
inline

Return the const list of all GLModes contained in this const StateSet.

bool osg::StateSet::getNestRenderBins ( ) const
inline

Get whether associated RenderBin should be nested within parents RenderBin.

unsigned int osg::StateSet::getNumChildrenRequiringEventTraversal ( ) const
inline

Get the number of Objects of this StateSet which require Event traversal, since they have an Eevnt Callback attached to them or their children.

unsigned int osg::StateSet::getNumChildrenRequiringUpdateTraversal ( ) const
inline

Get the number of Objects of this StateSet which require Update traversal, since they have an Update Callback attached to them or their children.

unsigned int osg::StateSet::getNumParents ( ) const
inline

Get the number of parents of this StateSet.

Returns
the number of parents of this StateSet.
unsigned int osg::StateSet::getNumTextureAttributeLists ( ) const
inline

Return the number of texture units active in the TextureAttributeList.

unsigned int osg::StateSet::getNumTextureModeLists ( ) const
inline

Return the number texture units active in the TextureModeList.

AttributeList& osg::StateSet::getOrCreateTextureAttributeList ( unsigned int  unit)
inlineprotected
ModeList& osg::StateSet::getOrCreateTextureModeList ( unsigned int  unit)
inlineprotected
Uniform* osg::StateSet::getOrCreateUniform ( const std::string &  name,
Uniform::Type  type,
unsigned int  numElements = 1 
)

Get Uniform for specified name, if one is not available create it, add it to this StateSet and return a pointer to it.

Node* osg::StateSet::getParent ( unsigned int  i)
inline
const Node* osg::StateSet::getParent ( unsigned int  i) const
inline

Get a single const parent of this StateSet.

Parameters
iindex of the parent to get.
Returns
the parent i.
const ParentList& osg::StateSet::getParents ( ) const
inline

Get the parent list of this StateSet.

ParentList osg::StateSet::getParents ( )
inline

Get the a copy of parent list of node.

A copy is returned to prevent modification of the parent list.

RenderBinMode osg::StateSet::getRenderBinMode ( ) const
inline

Get the render bin mode.

int osg::StateSet::getRenderingHint ( ) const
inline

Get the RenderingHint of this StateSet.

StateAttribute* osg::StateSet::getTextureAttribute ( unsigned int  unit,
StateAttribute::Type  type 
)

Get specified Texture related StateAttribute for specified type.

Returns NULL if no type is contained within StateSet.

const StateAttribute* osg::StateSet::getTextureAttribute ( unsigned int  unit,
StateAttribute::Type  type 
) const

Get specified Texture related const StateAttribute for specified type.

Returns NULL if no type is contained within const StateSet.

TextureAttributeList& osg::StateSet::getTextureAttributeList ( )
inline

Return the list of all Texture related StateAttributes contained in this StateSet.

const TextureAttributeList& osg::StateSet::getTextureAttributeList ( ) const
inline

Return the const list of all Texture related StateAttributes contained in this const StateSet.

const RefAttributePair* osg::StateSet::getTextureAttributePair ( unsigned int  unit,
StateAttribute::Type  type 
) const

Get specified Texture related RefAttributePair for specified type.

Returns NULL if no type is contained within StateSet.

StateAttribute::GLModeValue osg::StateSet::getTextureMode ( unsigned int  unit,
StateAttribute::GLMode  mode 
) const

Get specified GLModeValue for specified GLMode.

returns INHERIT if no GLModeValue is contained within StateSet.

TextureModeList& osg::StateSet::getTextureModeList ( )
inline

return the list of all Texture related GLModes contained in this StateSet.

const TextureModeList& osg::StateSet::getTextureModeList ( ) const
inline

return the const list of all Texture related GLModes contained in this const StateSet.

Uniform* osg::StateSet::getUniform ( const std::string &  name)

Get Uniform for specified name.

Returns NULL if no matching Uniform is contained within StateSet.

const Uniform* osg::StateSet::getUniform ( const std::string &  name) const

Get const Uniform for specified name.

Returns NULL if no matching Uniform is contained within StateSet.

UniformList& osg::StateSet::getUniformList ( )
inline

return the list of all Uniforms contained in this StateSet.

const UniformList& osg::StateSet::getUniformList ( ) const
inline

return the const list of all Uniforms contained in this const StateSet.

const RefUniformPair* osg::StateSet::getUniformPair ( const std::string &  name) const

Get specified RefUniformPair for specified Uniform name.

Returns NULL if no Uniform is contained within StateSet.

Callback* osg::StateSet::getUpdateCallback ( )
inline

Get the non const Update Callback.

const Callback* osg::StateSet::getUpdateCallback ( ) const
inline

Get the const Update Callback.

virtual bool osg::StateSet::isSameKindAs ( const Object obj) const
inlinevirtual

Reimplemented from osg::Object.

virtual const char* osg::StateSet::libraryName ( ) const
inlinevirtual

return the name of the object's library.

Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.

Implements osg::Object.

void osg::StateSet::merge ( const StateSet rhs)

Merge this StateSet with the StateSet passed as parameter.

Every mode and attribute in this StateSet that is marked with StateAttribute::OVERRIDE is replaced with the equivalent mode or attribute from rhs.

bool osg::StateSet::operator!= ( const StateSet rhs) const
inline
bool osg::StateSet::operator< ( const StateSet rhs) const
inline
StateSet& osg::StateSet::operator= ( const StateSet )
inlineprotected
bool osg::StateSet::operator== ( const StateSet rhs) const
inline
virtual void osg::StateSet::releaseGLObjects ( State state = 0) const
virtual

call release on all StateAttributes contained within this StateSet.

Reimplemented from osg::Object.

void osg::StateSet::removeAssociatedModes ( const StateAttribute attribute)
void osg::StateSet::removeAssociatedTextureModes ( unsigned int  unit,
const StateAttribute attribute 
)
void osg::StateSet::removeAttribute ( StateAttribute::Type  type,
unsigned int  member = 0 
)

remove attribute of specified type from StateSet.

void osg::StateSet::removeAttribute ( StateAttribute attribute)

remove attribute from StateSet.

template<class T >
void osg::StateSet::removeAttribute ( const ref_ptr< T > &  attribute)
inline
void osg::StateSet::removeDefine ( const std::string &  defineName)

Remove define.

void osg::StateSet::removeMode ( StateAttribute::GLMode  mode)

Remove mode from this StateSet.

Note
Don't use this method to remove modes related to textures. For this purpose, use removeTextureMode(), that accepts an extra parameter specifying which texture unit shall be affected by the call.
void osg::StateSet::removeParent ( osg::Node object)
protected
void osg::StateSet::removeTextureAttribute ( unsigned int  unit,
StateAttribute::Type  type 
)

remove texture attribute of specified type from StateSet.

void osg::StateSet::removeTextureAttribute ( unsigned int  unit,
StateAttribute attribute 
)

remove texture attribute from StateSet.

template<class T >
void osg::StateSet::removeTextureAttribute ( unsigned int  unit,
const ref_ptr< T > &  attribute 
)
inline
void osg::StateSet::removeTextureMode ( unsigned int  unit,
StateAttribute::GLMode  mode 
)

Remove texture mode from StateSet.

void osg::StateSet::removeUniform ( const std::string &  name)

remove uniform of specified name from StateSet.

void osg::StateSet::removeUniform ( Uniform uniform)

remove Uniform from StateSet.

template<class T >
void osg::StateSet::removeUniform ( const ref_ptr< T > &  uniform)
inline
bool osg::StateSet::requiresEventTraversal ( ) const
inline

Return whether this StateSet has event callbacks associated with it, and therefore must be traversed.

bool osg::StateSet::requiresUpdateTraversal ( ) const
inline

Return whether this StateSet has update callbacks associated with it, and therefore must be traversed.

virtual void osg::StateSet::resizeGLObjectBuffers ( unsigned int  maxSize)
virtual

Resize any per context GLObject buffers to specified size.

Reimplemented from osg::Object.

void osg::StateSet::runEventCallbacks ( osg::NodeVisitor nv)

Run the event callbacks attached directly to this StateSet or to its children.

void osg::StateSet::runUpdateCallbacks ( osg::NodeVisitor nv)

Run the update callbacks attached directly to this StateSet or to its children.

void osg::StateSet::setAssociatedModes ( const StateAttribute attribute,
StateAttribute::GLModeValue  value 
)
void osg::StateSet::setAssociatedTextureModes ( unsigned int  unit,
const StateAttribute attribute,
StateAttribute::GLModeValue  value 
)
void osg::StateSet::setAttribute ( StateAttribute attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF 
)

Set this StateSet to contain specified attribute and override flag.

template<class T >
void osg::StateSet::setAttribute ( const ref_ptr< T > &  attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF 
)
inline
void osg::StateSet::setAttribute ( AttributeList attributeList,
StateAttribute attribute,
const StateAttribute::OverrideValue  value = StateAttribute::OFF 
)
protected
void osg::StateSet::setAttributeAndModes ( StateAttribute attribute,
StateAttribute::GLModeValue  value = StateAttribute::ON 
)

Set this StateSet to contain specified attribute and set the associated GLMode's to specified value.

template<class T >
void osg::StateSet::setAttributeAndModes ( const ref_ptr< T > &  attribute,
StateAttribute::GLModeValue  value = StateAttribute::ON 
)
inline
void osg::StateSet::setAttributeList ( AttributeList al)
inline

set the list of all StateAttributes contained in this StateSet.

void osg::StateSet::setBinName ( const std::string &  name)
inline

Set the render bin name.

void osg::StateSet::setBinNumber ( int  num)
inline

Set the render bin number.

void osg::StateSet::setDefine ( const std::string &  defineName,
StateAttribute::OverrideValue  value = StateAttribute::ON 
)

Added define pass on to shaders that use utilize that define, as specified by the GLSL #pragma import_defines(..) and #pragma requires(..).

void osg::StateSet::setDefine ( const std::string &  defineName,
const std::string &  defineValue,
StateAttribute::OverrideValue  value = StateAttribute::ON 
)

Added define with value to pass on to shaders that use utilize that define, as specified by the GLSL #pragma import_defines(..) and #pragma requires(..).

void osg::StateSet::setDefineList ( const DefineList dl)
inline

Set the list of defines to pass on to shaders.

void osg::StateSet::setEventCallback ( Callback ac)

Set the Event Callback which allows users to attach customize the updating of an object during the event traversal.

template<class T >
void osg::StateSet::setEventCallback ( const ref_ptr< T > &  ec)
inline
void osg::StateSet::setGlobalDefaults ( )

Set all the modes to on or off so that it defines a complete state, typically used for a default global state.

void osg::StateSet::setMode ( StateAttribute::GLMode  mode,
StateAttribute::GLModeValue  value 
)

Set this StateSet to contain the specified GLMode with a given value.

Note
Don't use this method to set modes related to textures. For this purpose, use setTextureMode(), that accepts an extra parameter specifying which texture unit shall be affected by the call.
void osg::StateSet::setMode ( ModeList modeList,
StateAttribute::GLMode  mode,
StateAttribute::GLModeValue  value 
)
protected
void osg::StateSet::setModeList ( ModeList ml)
inline

Set the list of all GLModes contained in this StateSet.

void osg::StateSet::setModeToInherit ( ModeList modeList,
StateAttribute::GLMode  mode 
)
protected
void osg::StateSet::setNestRenderBins ( bool  val)
inline

By default render bins will be nested within each other dependent upon where they are set in the scene graph.

This can be problematic if a transparent render bin is attached to an opaque render bin which is attached to another transparent render bin as these render bins will be sorted separately, giving the wrong draw ordering for back-to-front transparency. Therefore, to prevent render bins being nested, call setNestRenderBins(false).

void osg::StateSet::setNumChildrenRequiringEventTraversal ( unsigned int  num)
protected
void osg::StateSet::setNumChildrenRequiringUpdateTraversal ( unsigned int  num)
protected
void osg::StateSet::setRenderBinDetails ( int  binNum,
const std::string &  binName,
RenderBinMode  mode = USE_RENDERBIN_DETAILS 
)

Set the render bin details.

void osg::StateSet::setRenderBinMode ( RenderBinMode  mode)
inline

Set the render bin mode.

void osg::StateSet::setRenderBinToInherit ( )

Set the render bin details to inherit.

void osg::StateSet::setRenderingHint ( int  hint)

Set the RenderingHint of this StateSet.

RenderingHint is used by the renderer to determine which draw bin to drop associated osg::Drawables in. Typically, users will set this to either StateSet::OPAQUE_BIN or StateSet::TRANSPARENT_BIN. Drawables in the opaque bin are sorted by their StateSet, so that the number of expensive changes in the OpenGL state is minimized. Drawables in the transparent bin are sorted by depth, so that objects farther from the viewer are rendered first (and hence alpha blending works nicely for translucent objects).

void osg::StateSet::setTextureAttribute ( unsigned int  unit,
StateAttribute attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF 
)

Set this StateSet to contain specified attribute and override flag.

template<class T >
void osg::StateSet::setTextureAttribute ( unsigned int  unit,
const ref_ptr< T > &  attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF 
)
inline
void osg::StateSet::setTextureAttributeAndModes ( unsigned int  unit,
StateAttribute attribute,
StateAttribute::GLModeValue  value = StateAttribute::ON 
)

Set this StateSet to contain specified attribute and set the associated GLMode's to specified value.

template<class T >
void osg::StateSet::setTextureAttributeAndModes ( unsigned int  unit,
const ref_ptr< T > &  attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF 
)
inline
void osg::StateSet::setTextureAttributeList ( TextureAttributeList tal)
inline

Set the list of all Texture related StateAttributes contained in this StateSet.

void osg::StateSet::setTextureMode ( unsigned int  unit,
StateAttribute::GLMode  mode,
StateAttribute::GLModeValue  value 
)

Set this StateSet to contain specified GLMode with a given value.

Parameters
unitThe texture unit to be affected (used with multi-texturing).
modeThe OpenGL mode to be added to the StateSet.
valueThe value to be assigned to mode.
void osg::StateSet::setTextureModeList ( TextureModeList tml)
inline

set the list of all Texture related GLModes contained in this StateSet.

virtual void osg::StateSet::setThreadSafeRefUnref ( bool  threadSafe)
virtual

Set whether to use a mutex to ensure ref() and unref() are thread safe.

Reimplemented from osg::Object.

void osg::StateSet::setUniformList ( UniformList al)
inline

set the list of all Uniforms contained in this StateSet.

void osg::StateSet::setUpdateCallback ( Callback ac)

Set the Update Callback which allows users to attach customize the updating of an object during the update traversal.

template<class T >
void osg::StateSet::setUpdateCallback ( const ref_ptr< T > &  ac)
inline
bool osg::StateSet::useRenderBinDetails ( ) const
inline

Get whether the render bin details are set and should be used.

Friends And Related Function Documentation

friend class osg::Drawable
friend
friend class osg::Node
friend
friend class osg::StateAttribute
friend
friend class osg::Uniform
friend

Member Data Documentation

AttributeList osg::StateSet::_attributeList
protected
RenderBinMode osg::StateSet::_binMode
protected
std::string osg::StateSet::_binName
protected
int osg::StateSet::_binNum
protected
DefineList osg::StateSet::_defineList
protected
ref_ptr<Callback> osg::StateSet::_eventCallback
protected
ModeList osg::StateSet::_modeList
protected
bool osg::StateSet::_nestRenderBins
protected
unsigned int osg::StateSet::_numChildrenRequiringEventTraversal
protected
unsigned int osg::StateSet::_numChildrenRequiringUpdateTraversal
protected
ParentList osg::StateSet::_parents
protected
int osg::StateSet::_renderingHint
protected
TextureAttributeList osg::StateSet::_textureAttributeList
protected
TextureModeList osg::StateSet::_textureModeList
protected
UniformList osg::StateSet::_uniformList
protected
ref_ptr<Callback> osg::StateSet::_updateCallback
protected

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

osg logo
Generated at Wed Nov 11 2015 22:14:43 for the OpenSceneGraph by doxygen 1.8.10.