openscenegraph
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
osg::StateSet Class Reference
Inheritance diagram for osg::StateSet:
osg::Object osg::Referenced

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
 
typedef std::map< StateAttribute::GLMode, StateAttribute::GLModeValue > ModeList
 
typedef std::pair< ref_ptr< StateAttribute >, StateAttribute::OverrideValue > RefAttributePair
 
typedef std::map< StateAttribute::TypeMemberPair, RefAttributePair > AttributeList
 
typedef std::vector< ModeList > TextureModeList
 
typedef std::vector< AttributeList > TextureAttributeList
 
typedef std::pair< ref_ptr< Uniform >, StateAttribute::OverrideValue > RefUniformPair
 
typedef std::map< std::string, RefUniformPair > UniformList
 
typedef std::pair< std::string, StateAttribute::OverrideValue > DefinePair
 
typedef std::map< std::string, DefinePair > DefineList
 
- 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 Object * cloneType () const
 
virtual Object * clone (const CopyOp &copyop) const
 
virtual bool isSameKindAs (const Object *obj) const
 
virtual const char * libraryName () const
 
virtual const char * className () const
 
int compare (const StateSet &rhs, bool compareAttributeContents=false) const
 
bool operator< (const StateSet &rhs) const
 
bool operator== (const StateSet &rhs) const
 
bool operator!= (const StateSet &rhs) const
 
virtual StateSet * asStateSet ()
 
virtual const StateSet * asStateSet () const
 
const ParentList & getParents () const
 
ParentList getParents ()
 
Node * getParent (unsigned int i)
 
const Node * getParent (unsigned int i) const
 
unsigned int getNumParents () const
 
virtual void computeDataVariance ()
 
void setGlobalDefaults ()
 
void clear ()
 
void merge (const StateSet &rhs)
 
void setMode (StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
 
void removeMode (StateAttribute::GLMode mode)
 
StateAttribute::GLModeValue getMode (StateAttribute::GLMode mode) const
 
void setModeList (ModeList &ml)
 
ModeList & getModeList ()
 
const ModeList & getModeList () const
 
void setAttribute (StateAttribute *attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
 
template<class T >
void setAttribute (const ref_ptr< T > &attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
 
void setAttributeAndModes (StateAttribute *attribute, StateAttribute::GLModeValue value=StateAttribute::ON)
 
template<class T >
void setAttributeAndModes (const ref_ptr< T > &attribute, StateAttribute::GLModeValue value=StateAttribute::ON)
 
void removeAttribute (StateAttribute::Type type, unsigned int member=0)
 
void removeAttribute (StateAttribute *attribute)
 
template<class T >
void removeAttribute (const ref_ptr< T > &attribute)
 
StateAttribute * getAttribute (StateAttribute::Type type, unsigned int member=0)
 
const StateAttribute * getAttribute (StateAttribute::Type type, unsigned int member=0) const
 
RefAttributePair * getAttributePair (StateAttribute::Type type, unsigned int member=0)
 
const RefAttributePair * getAttributePair (StateAttribute::Type type, unsigned int member=0) const
 
void setAttributeList (AttributeList &al)
 
AttributeList & getAttributeList ()
 
const AttributeList & getAttributeList () const
 
void setTextureMode (unsigned int unit, StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
 
void removeTextureMode (unsigned int unit, StateAttribute::GLMode mode)
 
StateAttribute::GLModeValue getTextureMode (unsigned int unit, StateAttribute::GLMode mode) const
 
void setTextureModeList (TextureModeList &tml)
 
TextureModeList & getTextureModeList ()
 
const TextureModeList & getTextureModeList () const
 
unsigned int getNumTextureModeLists () const
 
void setTextureAttribute (unsigned int unit, StateAttribute *attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
 
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)
 
template<class T >
void setTextureAttributeAndModes (unsigned int unit, const ref_ptr< T > &attribute, StateAttribute::OverrideValue value=StateAttribute::ON)
 
void removeTextureAttribute (unsigned int unit, StateAttribute::Type type)
 
void removeTextureAttribute (unsigned int unit, StateAttribute *attribute)
 
template<class T >
void removeTextureAttribute (unsigned int unit, const ref_ptr< T > &attribute)
 
StateAttribute * getTextureAttribute (unsigned int unit, StateAttribute::Type type)
 
const StateAttribute * getTextureAttribute (unsigned int unit, StateAttribute::Type type) const
 
RefAttributePair * getTextureAttributePair (unsigned int unit, StateAttribute::Type type)
 
const RefAttributePair * getTextureAttributePair (unsigned int unit, StateAttribute::Type type) const
 
void setTextureAttributeList (TextureAttributeList &tal)
 
TextureAttributeList & getTextureAttributeList ()
 
const TextureAttributeList & getTextureAttributeList () const
 
unsigned int getNumTextureAttributeLists () const
 
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)
 
template<class T >
void addUniform (const ref_ptr< T > &uniform, StateAttribute::OverrideValue value=StateAttribute::ON)
 
void removeUniform (const std::string &name)
 
void removeUniform (Uniform *uniform)
 
template<class T >
void removeUniform (const ref_ptr< T > &uniform)
 
Uniform * getUniform (const std::string &name)
 
Uniform * getOrCreateUniform (const std::string &name, Uniform::Type type, unsigned int numElements=1)
 
const Uniform * getUniform (const std::string &name) const
 
const RefUniformPair * getUniformPair (const std::string &name) const
 
void setUniformList (UniformList &al)
 
UniformList & getUniformList ()
 
const UniformList & getUniformList () const
 
void setDefine (const std::string &defineName, StateAttribute::OverrideValue value=StateAttribute::ON)
 
void setDefine (const std::string &defineName, const std::string &defineValue, StateAttribute::OverrideValue value=StateAttribute::ON)
 
DefinePair * getDefinePair (const std::string &defineName)
 
const DefinePair * getDefinePair (const std::string &defineName) const
 
void removeDefine (const std::string &defineName)
 
void setDefineList (const DefineList &dl)
 
DefineList & getDefineList ()
 
const DefineList & getDefineList () const
 
void setRenderingHint (int hint)
 
int getRenderingHint () const
 
void setRenderBinDetails (int binNum, const std::string &binName, RenderBinMode mode=USE_RENDERBIN_DETAILS)
 
void setRenderBinToInherit ()
 
bool useRenderBinDetails () const
 
void setRenderBinMode (RenderBinMode mode)
 
RenderBinMode getRenderBinMode () const
 
void setBinNumber (int num)
 
int getBinNumber () const
 
void setBinName (const std::string &name)
 
const std::string & getBinName () const
 
void setNestRenderBins (bool val)
 
bool getNestRenderBins () const
 
void setUpdateCallback (Callback *ac)
 
template<class T >
void setUpdateCallback (const ref_ptr< T > &ac)
 
Callback * getUpdateCallback ()
 
const Callback * getUpdateCallback () const
 
bool requiresUpdateTraversal () const
 
unsigned int getNumChildrenRequiringUpdateTraversal () const
 
void runUpdateCallbacks (osg::NodeVisitor *nv)
 
void setEventCallback (Callback *ac)
 
template<class T >
void setEventCallback (const ref_ptr< T > &ec)
 
Callback * getEventCallback ()
 
const Callback * getEventCallback () const
 
bool requiresEventTraversal () const
 
unsigned int getNumChildrenRequiringEventTraversal () const
 
void runEventCallbacks (osg::NodeVisitor *nv)
 
bool checkValidityOfAssociatedModes (State &state) const
 
virtual void setThreadSafeRefUnref (bool threadSafe)
 
void compileGLObjects (State &state) const
 
virtual void resizeGLObjectBuffers (unsigned int maxSize)
 
virtual void releaseGLObjects (State *state=0) const
 
- Public Member Functions inherited from osg::Object
 Object ()
 
 Object (bool threadSafeRefUnref)
 
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 
std::string getCompoundClassName () const
 
virtual Node * asNode ()
 
virtual const Node * asNode () const
 
virtual NodeVisitor * asNodeVisitor ()
 
virtual const NodeVisitor * asNodeVisitor () 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 setName (const std::string &name)
 
void setName (const char *name)
 
const std::string & getName () const
 
void setDataVariance (DataVariance dv)
 
DataVariance getDataVariance () const
 
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)
 
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 Member Functions

virtual ~StateSet ()
 
StateSet & operator= (const StateSet &)
 
void addParent (osg::Node *object)
 
void removeParent (osg::Node *object)
 
ModeList & getOrCreateTextureModeList (unsigned int unit)
 
AttributeList & getOrCreateTextureAttributeList (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, StateAttribute::OverrideValue value=StateAttribute::OFF)
 
StateAttribute * getAttribute (AttributeList &attributeList, StateAttribute::Type type, unsigned int member)
 
const StateAttribute * getAttribute (const AttributeList &attributeList, StateAttribute::Type type, unsigned int member) const
 
RefAttributePair * getAttributePair (AttributeList &attributeList, StateAttribute::Type type, unsigned int member)
 
const RefAttributePair * getAttributePair (const AttributeList &attributeList, 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 ()
 
- 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 ()
 
static void setDeleteHandler (DeleteHandler *handler)
 
static DeleteHandler * getDeleteHandler ()
 

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

◆ AttributeList

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

◆ DefineList

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

◆ DefinePair

◆ ModeList

a container to map GLModes to their respective GLModeValues.

◆ ParentList

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.

◆ RefAttributePair

Simple pairing between an attribute and its override flag.

◆ RefUniformPair

Simple pairing between a Uniform and its override flag.

◆ TextureAttributeList

◆ TextureModeList

◆ UniformList

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

a container to map Uniform name to its respective RefUniformPair.

Member Enumeration Documentation

◆ RenderBinMode

Enumerator
INHERIT_RENDERBIN_DETAILS 
USE_RENDERBIN_DETAILS 
OVERRIDE_RENDERBIN_DETAILS 
PROTECTED_RENDERBIN_DETAILS 
OVERRIDE_PROTECTED_RENDERBIN_DETAILS 

◆ RenderingHint

Enumerator
DEFAULT_BIN 
OPAQUE_BIN 
TRANSPARENT_BIN 

Constructor & Destructor Documentation

◆ StateSet() [1/2]

osg::StateSet::StateSet ( )

◆ StateSet() [2/2]

osg::StateSet::StateSet ( const StateSet &  ,
const CopyOp &  copyop = CopyOp::SHALLOW_COPY 
)

◆ ~StateSet()

virtual osg::StateSet::~StateSet ( )
protectedvirtual

Member Function Documentation

◆ addParent()

void osg::StateSet::addParent ( osg::Node *  object)
protected

◆ addUniform() [1/2]

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

◆ addUniform() [2/2]

void osg::StateSet::addUniform ( Uniform *  uniform,
StateAttribute::OverrideValue  value = StateAttribute::ON 
)

Set this StateSet to contain specified uniform and override flag.

◆ asStateSet() [1/2]

virtual StateSet* osg::StateSet::asStateSet ( )
inlinevirtual

Convert 'this' into a StateSet pointer if Object is a StateSet, otherwise return 0. Equivalent to dynamic_cast<StateSet*>(this).

Reimplemented from osg::Object.

◆ asStateSet() [2/2]

virtual const StateSet* osg::StateSet::asStateSet ( ) const
inlinevirtual

convert 'const this' into a const StateSet pointer if Object is a StateSet, otherwise return 0. Equivalent to dynamic_cast<const StateSet*>(this).

Reimplemented from osg::Object.

◆ checkValidityOfAssociatedModes()

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.

◆ className()

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.

◆ clear()

void osg::StateSet::clear ( )

Clear the StateSet of all modes and attributes.

◆ clone()

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.

◆ cloneType()

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.

◆ compare()

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

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

◆ compareAttributeContents()

int osg::StateSet::compareAttributeContents ( const AttributeList &  lhs,
const AttributeList &  rhs 
)
protected

◆ compareAttributePtrs()

int osg::StateSet::compareAttributePtrs ( const AttributeList &  lhs,
const AttributeList &  rhs 
)
protected

◆ compareModes()

int osg::StateSet::compareModes ( const ModeList &  lhs,
const ModeList &  rhs 
)
protected

◆ compileGLObjects()

void osg::StateSet::compileGLObjects ( State &  state) const

call compile on all StateAttributes contained within this StateSet.

◆ computeDataVariance()

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

Compute the DataVariance based on an assessment of callback etc.

Reimplemented from osg::Object.

◆ getAttribute() [1/4]

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

◆ getAttribute() [2/4]

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

◆ getAttribute() [3/4]

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.

◆ getAttribute() [4/4]

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.

◆ getAttributeList() [1/2]

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

return the list of all StateAttributes contained in this StateSet.

◆ getAttributeList() [2/2]

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

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

◆ getAttributePair() [1/4]

RefAttributePair* osg::StateSet::getAttributePair ( AttributeList &  attributeList,
StateAttribute::Type  type,
unsigned int  member 
)
protected

◆ getAttributePair() [2/4]

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

◆ getAttributePair() [3/4]

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

Get specified RefAttributePair for specified type. Returns NULL if no type is contained within StateSet.

◆ getAttributePair() [4/4]

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.

◆ getBinName()

const std::string& osg::StateSet::getBinName ( ) const
inline

Get the render bin name.

◆ getBinNumber()

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

Get the render bin number.

◆ getDefineList() [1/2]

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

Get the list of defines to pass on to shaders.

◆ getDefineList() [2/2]

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

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

◆ getDefinePair() [1/2]

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

◆ getDefinePair() [2/2]

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

◆ getEventCallback() [1/2]

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

Get the non const Event Callback.

◆ getEventCallback() [2/2]

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

Get the const Event Callback.

◆ getMode() [1/2]

StateAttribute::GLModeValue osg::StateSet::getMode ( const ModeList &  modeList,
StateAttribute::GLMode  mode 
) const
protected

◆ getMode() [2/2]

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.

◆ getModeList() [1/2]

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

Return the list of all GLModes contained in this StateSet.

◆ getModeList() [2/2]

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

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

◆ getNestRenderBins()

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

Get whether associated RenderBin should be nested within parents RenderBin.

◆ getNumChildrenRequiringEventTraversal()

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.

◆ getNumChildrenRequiringUpdateTraversal()

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.

◆ getNumParents()

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

Get the number of parents of this StateSet.

Returns
the number of parents of this StateSet.

◆ getNumTextureAttributeLists()

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

Return the number of texture units active in the TextureAttributeList.

◆ getNumTextureModeLists()

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

Return the number texture units active in the TextureModeList.

◆ getOrCreateTextureAttributeList()

AttributeList& osg::StateSet::getOrCreateTextureAttributeList ( unsigned int  unit)
inlineprotected

◆ getOrCreateTextureModeList()

ModeList& osg::StateSet::getOrCreateTextureModeList ( unsigned int  unit)
inlineprotected

◆ getOrCreateUniform()

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.

◆ getParent() [1/2]

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

◆ getParent() [2/2]

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.

◆ getParents() [1/2]

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.

◆ getParents() [2/2]

const ParentList& osg::StateSet::getParents ( ) const
inline

Get the parent list of this StateSet.

◆ getRenderBinMode()

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

Get the render bin mode.

◆ getRenderingHint()

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

Get the RenderingHint of this StateSet.

◆ getTextureAttribute() [1/2]

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.

◆ getTextureAttribute() [2/2]

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.

◆ getTextureAttributeList() [1/2]

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

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

◆ getTextureAttributeList() [2/2]

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

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

◆ getTextureAttributePair() [1/2]

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

Get specified Texture related RefAttributePair for specified type. Returns NULL if no type is contained within StateSet.

◆ getTextureAttributePair() [2/2]

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.

◆ getTextureMode()

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.

◆ getTextureModeList() [1/2]

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

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

◆ getTextureModeList() [2/2]

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

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

◆ getUniform() [1/2]

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

Get Uniform for specified name. Returns NULL if no matching Uniform is contained within StateSet.

◆ getUniform() [2/2]

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.

◆ getUniformList() [1/2]

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

return the list of all Uniforms contained in this StateSet.

◆ getUniformList() [2/2]

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

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

◆ getUniformPair()

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.

◆ getUpdateCallback() [1/2]

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

Get the non const Update Callback.

◆ getUpdateCallback() [2/2]

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

Get the const Update Callback.

◆ isSameKindAs()

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

Reimplemented from osg::Object.

◆ libraryName()

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.

◆ merge()

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.

◆ operator!=()

bool osg::StateSet::operator!= ( const StateSet &  rhs) const
inline

◆ operator<()

bool osg::StateSet::operator< ( const StateSet &  rhs) const
inline

◆ operator=()

StateSet& osg::StateSet::operator= ( const StateSet &  )
inlineprotected

◆ operator==()

bool osg::StateSet::operator== ( const StateSet &  rhs) const
inline

◆ releaseGLObjects()

virtual void osg::StateSet::releaseGLObjects ( State *  state = 0) const
virtual

call release on all StateAttributes contained within this StateSet.

Reimplemented from osg::Object.

◆ removeAssociatedModes()

void osg::StateSet::removeAssociatedModes ( const StateAttribute *  attribute)

◆ removeAssociatedTextureModes()

void osg::StateSet::removeAssociatedTextureModes ( unsigned int  unit,
const StateAttribute *  attribute 
)

◆ removeAttribute() [1/3]

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

◆ removeAttribute() [2/3]

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

remove attribute from StateSet.

◆ removeAttribute() [3/3]

void osg::StateSet::removeAttribute ( StateAttribute::Type  type,
unsigned int  member = 0 
)

remove attribute of specified type from StateSet.

◆ removeDefine()

void osg::StateSet::removeDefine ( const std::string &  defineName)

Remove define

◆ removeMode()

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.

◆ removeParent()

void osg::StateSet::removeParent ( osg::Node *  object)
protected

◆ removeTextureAttribute() [1/3]

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

◆ removeTextureAttribute() [2/3]

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

remove texture attribute from StateSet.

◆ removeTextureAttribute() [3/3]

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

remove texture attribute of specified type from StateSet.

◆ removeTextureMode()

void osg::StateSet::removeTextureMode ( unsigned int  unit,
StateAttribute::GLMode  mode 
)

Remove texture mode from StateSet.

◆ removeUniform() [1/3]

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

◆ removeUniform() [2/3]

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

remove uniform of specified name from StateSet.

◆ removeUniform() [3/3]

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

remove Uniform from StateSet.

◆ requiresEventTraversal()

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

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

◆ requiresUpdateTraversal()

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

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

◆ resizeGLObjectBuffers()

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

Resize any per context GLObject buffers to specified size.

Reimplemented from osg::Object.

◆ runEventCallbacks()

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

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

◆ runUpdateCallbacks()

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

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

◆ setAssociatedModes()

void osg::StateSet::setAssociatedModes ( const StateAttribute *  attribute,
StateAttribute::GLModeValue  value 
)

◆ setAssociatedTextureModes()

void osg::StateSet::setAssociatedTextureModes ( unsigned int  unit,
const StateAttribute *  attribute,
StateAttribute::GLModeValue  value 
)

◆ setAttribute() [1/3]

void osg::StateSet::setAttribute ( AttributeList &  attributeList,
StateAttribute *  attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF 
)
protected

◆ setAttribute() [2/3]

template<class T >
void osg::StateSet::setAttribute ( const ref_ptr< T > &  attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF 
)
inline

◆ setAttribute() [3/3]

void osg::StateSet::setAttribute ( StateAttribute *  attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF 
)

Set this StateSet to contain specified attribute and override flag.

◆ setAttributeAndModes() [1/2]

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

◆ setAttributeAndModes() [2/2]

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.

◆ setAttributeList()

void osg::StateSet::setAttributeList ( AttributeList &  al)
inline

set the list of all StateAttributes contained in this StateSet.

◆ setBinName()

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

Set the render bin name.

◆ setBinNumber()

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

Set the render bin number.

◆ setDefine() [1/2]

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(..).

◆ setDefine() [2/2]

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(..).

◆ setDefineList()

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

Set the list of defines to pass on to shaders.

◆ setEventCallback() [1/2]

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.

◆ setEventCallback() [2/2]

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

◆ setGlobalDefaults()

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.

◆ setMode() [1/2]

void osg::StateSet::setMode ( ModeList &  modeList,
StateAttribute::GLMode  mode,
StateAttribute::GLModeValue  value 
)
protected

◆ setMode() [2/2]

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.

◆ setModeList()

void osg::StateSet::setModeList ( ModeList &  ml)
inline

Set the list of all GLModes contained in this StateSet.

◆ setModeToInherit()

void osg::StateSet::setModeToInherit ( ModeList &  modeList,
StateAttribute::GLMode  mode 
)
protected

◆ setNestRenderBins()

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).

◆ setNumChildrenRequiringEventTraversal()

void osg::StateSet::setNumChildrenRequiringEventTraversal ( unsigned int  num)
protected

◆ setNumChildrenRequiringUpdateTraversal()

void osg::StateSet::setNumChildrenRequiringUpdateTraversal ( unsigned int  num)
protected

◆ setRenderBinDetails()

void osg::StateSet::setRenderBinDetails ( int  binNum,
const std::string &  binName,
RenderBinMode  mode = USE_RENDERBIN_DETAILS 
)

Set the render bin details.

◆ setRenderBinMode()

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

Set the render bin mode.

◆ setRenderBinToInherit()

void osg::StateSet::setRenderBinToInherit ( )

Set the render bin details to inherit.

◆ setRenderingHint()

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).

◆ setTextureAttribute() [1/2]

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

◆ setTextureAttribute() [2/2]

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

Set this StateSet to contain specified attribute and override flag.

◆ setTextureAttributeAndModes() [1/2]

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

◆ setTextureAttributeAndModes() [2/2]

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.

◆ setTextureAttributeList()

void osg::StateSet::setTextureAttributeList ( TextureAttributeList &  tal)
inline

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

◆ setTextureMode()

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.

◆ setTextureModeList()

void osg::StateSet::setTextureModeList ( TextureModeList &  tml)
inline

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

◆ setThreadSafeRefUnref()

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.

◆ setUniformList()

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

set the list of all Uniforms contained in this StateSet.

◆ setUpdateCallback() [1/2]

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.

◆ setUpdateCallback() [2/2]

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

◆ useRenderBinDetails()

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

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

Friends And Related Function Documentation

◆ osg::Drawable

friend class osg::Drawable
friend

◆ osg::Node

friend class osg::Node
friend

◆ osg::StateAttribute

friend class osg::StateAttribute
friend

◆ osg::Uniform

friend class osg::Uniform
friend

Member Data Documentation

◆ _attributeList

AttributeList osg::StateSet::_attributeList
protected

◆ _binMode

RenderBinMode osg::StateSet::_binMode
protected

◆ _binName

std::string osg::StateSet::_binName
protected

◆ _binNum

int osg::StateSet::_binNum
protected

◆ _defineList

DefineList osg::StateSet::_defineList
protected

◆ _eventCallback

ref_ptr<Callback> osg::StateSet::_eventCallback
protected

◆ _modeList

ModeList osg::StateSet::_modeList
protected

◆ _nestRenderBins

bool osg::StateSet::_nestRenderBins
protected

◆ _numChildrenRequiringEventTraversal

unsigned int osg::StateSet::_numChildrenRequiringEventTraversal
protected

◆ _numChildrenRequiringUpdateTraversal

unsigned int osg::StateSet::_numChildrenRequiringUpdateTraversal
protected

◆ _parents

ParentList osg::StateSet::_parents
protected

◆ _renderingHint

int osg::StateSet::_renderingHint
protected

◆ _textureAttributeList

TextureAttributeList osg::StateSet::_textureAttributeList
protected

◆ _textureModeList

TextureModeList osg::StateSet::_textureModeList
protected

◆ _uniformList

UniformList osg::StateSet::_uniformList
protected

◆ _updateCallback

ref_ptr<Callback> osg::StateSet::_updateCallback
protected

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