Inheritance diagram for osg::StateSet:
StateSet
contains just a subset of the whole OpenGL state.
In OSG, each Drawable
and each Node
has a reference to a StateSet
. These StateSet
s can be shared between different Drawable
s and Node
s (that is, several Drawable
s and Node
s can reference the same StateSet
). Indeed, this practice is recommended whenever possible, as this minimizes expensive state changes in the graphics pipeline.
typedef std::map<StateAttribute::TypeMemberPair,RefAttributePair> osg::StateSet::AttributeList |
a container to map <StateAttribyte::Types,Member> to their respective RefAttributePair.
typedef std::map<StateAttribute::GLMode,StateAttribute::GLModeValue> osg::StateSet::ModeList |
a container to map GLModes to their respective GLModeValues.
typedef std::vector<Object*> 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.
typedef std::pair<ref_ptr<StateAttribute>,StateAttribute::OverrideValue> osg::StateSet::RefAttributePair |
Simple pairing between an attribute and its override flag.
typedef std::pair<ref_ptr<Uniform>,StateAttribute::OverrideValue> osg::StateSet::RefUniformPair |
Simple pairing between a Uniform and its override flag.
typedef std::vector<AttributeList> osg::StateSet::TextureAttributeList |
typedef std::vector<ModeList> osg::StateSet::TextureModeList |
typedef std::map<std::string,RefUniformPair> osg::StateSet::UniformList |
a container to map Uniform name to its respective RefUniformPair.
osg::StateSet::StateSet | ( | ) |
virtual osg::StateSet::~StateSet | ( | ) | [protected, virtual] |
void osg::StateSet::addParent | ( | osg::Object * | object | ) | [protected] |
void osg::StateSet::addUniform | ( | Uniform * | uniform, | |
StateAttribute::OverrideValue | value = StateAttribute::ON | |||
) |
Set this StateSet to contain specified uniform and override flag.
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 [inline, virtual] |
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.
Clone an object, with Object* return type. Must be defined by derived classes.
Implements osg::Object.
virtual Object* osg::StateSet::cloneType | ( | ) | const [inline, virtual] |
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] |
void osg::StateSet::compileGLObjects | ( | State & | state | ) | const |
call compile on all StateAttributes contained within this StateSet.
const StateAttribute* osg::StateSet::getAttribute | ( | const AttributeList & | attributeList, | |
const StateAttribute::Type | type, | |||
unsigned int | member | |||
) | const [protected] |
StateAttribute* osg::StateSet::getAttribute | ( | AttributeList & | attributeList, | |
const StateAttribute::Type | type, | |||
unsigned int | member | |||
) | [protected] |
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 | ( | StateAttribute::Type | type, | |
unsigned int | member = 0 | |||
) |
Get specified StateAttribute for specified type. Returns NULL if no type is contained within StateSet.
const AttributeList& osg::StateSet::getAttributeList | ( | ) | const [inline] |
return the const list of all StateAttributes contained in this const StateSet.
AttributeList& osg::StateSet::getAttributeList | ( | ) | [inline] |
return the list of all StateAttributes contained in this StateSet.
const RefAttributePair* osg::StateSet::getAttributePair | ( | const AttributeList & | attributeList, | |
const StateAttribute::Type | type, | |||
unsigned int | member | |||
) | const [protected] |
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 std::string& osg::StateSet::getBinName | ( | ) | const [inline] |
Get the render bin name.
int osg::StateSet::getBinNumber | ( | ) | const [inline] |
Get the render bin number.
StateAttribute::GLModeValue osg::StateSet::getMode | ( | const ModeList & | modeList, | |
StateAttribute::GLMode | mode | |||
) | const [protected] |
StateAttribute::GLModeValue osg::StateSet::getMode | ( | StateAttribute::GLMode | mode | ) | const |
Get the value for a given GLMode
.
mode | The GLMode whose value is desired. |
mode
is contained within this StateSet
, returns the value associated with it. Otherwise, returns StateAttribute::INHERIT
. removeTextureMode()
, that accepts an extra parameter specifying which texture unit shall be affected by the call. const ModeList& osg::StateSet::getModeList | ( | ) | const [inline] |
Return the const
list of all GLMode
s contained in this const StateSet
.
ModeList& osg::StateSet::getModeList | ( | ) | [inline] |
Return the list of all GLMode
s contained in this StateSet
.
unsigned int osg::StateSet::getNumChildrenRequiringEventTraversal | ( | ) | const [inline] |
unsigned int osg::StateSet::getNumChildrenRequiringUpdateTraversal | ( | ) | const [inline] |
unsigned int osg::StateSet::getNumParents | ( | ) | const [inline] |
AttributeList& osg::StateSet::getOrCreateTextureAttributeList | ( | unsigned int | unit | ) | [inline, protected] |
ModeList& osg::StateSet::getOrCreateTextureModeList | ( | unsigned int | unit | ) | [inline, protected] |
Uniform* osg::StateSet::getOrCreateUniform | ( | const std::string & | name, | |
Uniform::Type | type, | |||
unsigned int | numElements = 1 | |||
) |
const Object* osg::StateSet::getParent | ( | unsigned int | i | ) | const [inline] |
Get a single const parent of this StateSet.
i | index of the parent to get. |
Object* osg::StateSet::getParent | ( | unsigned int | i | ) | [inline] |
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.
const ParentList& osg::StateSet::getParents | ( | ) | const [inline] |
Get the parent list of this StateSet.
RenderBinMode osg::StateSet::getRenderBinMode | ( | ) | const [inline] |
Get the render bin mode.
int osg::StateSet::getRenderingHint | ( | ) | const [inline] |
Get the RenderingHint
of this 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.
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 TextureAttributeList& osg::StateSet::getTextureAttributeList | ( | ) | const [inline] |
TextureAttributeList& osg::StateSet::getTextureAttributeList | ( | ) | [inline] |
const RefAttributePair* osg::StateSet::getTextureAttributePair | ( | unsigned int | unit, | |
StateAttribute::Type | type | |||
) | const |
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.
const TextureModeList& osg::StateSet::getTextureModeList | ( | ) | const [inline] |
TextureModeList& osg::StateSet::getTextureModeList | ( | ) | [inline] |
const Uniform* osg::StateSet::getUniform | ( | const std::string & | name | ) | const |
Uniform* osg::StateSet::getUniform | ( | const std::string & | name | ) |
const UniformList& osg::StateSet::getUniformList | ( | ) | const [inline] |
return the const list of all Uniforms contained in this const StateSet.
UniformList& osg::StateSet::getUniformList | ( | ) | [inline] |
return the list of all Uniforms contained in this StateSet.
const RefUniformPair* osg::StateSet::getUniformPair | ( | const std::string & | name | ) | const |
virtual bool osg::StateSet::isSameKindAs | ( | const Object * | obj | ) | const [inline, virtual] |
Reimplemented from osg::Object.
virtual const char* osg::StateSet::libraryName | ( | ) | const [inline, virtual] |
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] |
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::removeAttribute | ( | StateAttribute * | attribute | ) |
remove attribute from StateSet.
void osg::StateSet::removeAttribute | ( | StateAttribute::Type | type, | |
unsigned int | member = 0 | |||
) |
remove attribute of specified type from StateSet.
void osg::StateSet::removeMode | ( | StateAttribute::GLMode | mode | ) |
Remove mode
from this StateSet
.
removeTextureMode()
, that accepts an extra parameter specifying which texture unit shall be affected by the call. void osg::StateSet::removeParent | ( | osg::Object * | object | ) | [protected] |
void osg::StateSet::removeTextureAttribute | ( | unsigned int | unit, | |
StateAttribute * | attribute | |||
) |
remove texture attribute from StateSet.
void osg::StateSet::removeTextureAttribute | ( | unsigned int | unit, | |
StateAttribute::Type | type | |||
) |
remove texture attribute of specified type from StateSet.
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.
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.
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 | ( | AttributeList & | attributeList, | |
StateAttribute * | attribute, | |||
const StateAttribute::OverrideValue | value = StateAttribute::OFF | |||
) | [protected] |
void osg::StateSet::setAttribute | ( | StateAttribute * | attribute, | |
StateAttribute::OverrideValue | value = StateAttribute::OFF | |||
) |
Set this StateSet to contain specified attribute and override flag.
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.
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::setEventCallback | ( | Callback * | ac | ) |
Set the Event Callback which allows users to attach customize the updating of an object during the event traversal.
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 | ( | ModeList & | modeList, | |
StateAttribute::GLMode | mode, | |||
StateAttribute::GLModeValue | value | |||
) | [protected] |
void osg::StateSet::setMode | ( | StateAttribute::GLMode | mode, | |
StateAttribute::GLModeValue | value | |||
) |
Set this StateSet
to contain the specified GLMode
with a given value.
setTextureMode()
, that accepts an extra parameter specifying which texture unit shall be affected by the call. void osg::StateSet::setModeList | ( | ModeList & | ml | ) | [inline] |
Set the list of all GLMode
s contained in this StateSet
.
void osg::StateSet::setModeToInherit | ( | ModeList & | modeList, | |
StateAttribute::GLMode | mode | |||
) | [protected] |
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::Drawable
s in. Typically, users will set this to either StateSet::OPAQUE_BIN
or StateSet::TRANSPARENT_BIN
. Drawable
s in the opaque bin are sorted by their StateSet
, so that the number of expensive changes in the OpenGL state is minimized. Drawable
s 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.
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.
void osg::StateSet::setTextureAttributeList | ( | TextureAttributeList & | tal | ) | [inline] |
void osg::StateSet::setTextureMode | ( | unsigned int | unit, | |
StateAttribute::GLMode | mode, | |||
StateAttribute::GLModeValue | value | |||
) |
void osg::StateSet::setTextureModeList | ( | TextureModeList & | tml | ) | [inline] |
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.
bool osg::StateSet::useRenderBinDetails | ( | ) | const [inline] |
Get whether the render bin details are set and should be used.
friend class osg::Drawable [friend] |
friend class osg::Node [friend] |
friend class osg::StateAttribute [friend] |
friend class osg::Uniform [friend] |
AttributeList osg::StateSet::_attributeList [protected] |
RenderBinMode osg::StateSet::_binMode [protected] |
std::string osg::StateSet::_binName [protected] |
int osg::StateSet::_binNum [protected] |
ref_ptr<Callback> osg::StateSet::_eventCallback [protected] |
ModeList osg::StateSet::_modeList [protected] |
unsigned int osg::StateSet::_numChildrenRequiringEventTraversal [protected] |
unsigned int osg::StateSet::_numChildrenRequiringUpdateTraversal [protected] |
ParentList osg::StateSet::_parents [protected] |
int osg::StateSet::_renderingHint [protected] |
TextureModeList osg::StateSet::_textureModeList [protected] |
UniformList osg::StateSet::_uniformList [protected] |
ref_ptr<Callback> osg::StateSet::_updateCallback [protected] |