Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

# osg::State Class Reference

Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings,. More...

Inheritance diagram for osg::State:

[legend]
List of all members.

## Public Types
enum | CheckForGLErrors { NEVER_CHECK_GL_ERRORS, ONCE_PER_FRAME, ONCE_PER_ATTRIBUTE }
## Public Member Functions
| State ()
void | setGraphicsContext (GraphicsContext *context)
| Set the graphics context associated with that owns this State object.
GraphicsContext * | getGraphicsContext ()
| Get the graphics context associated with that owns this State object.
const GraphicsContext * | getGraphicsContext () const
| Get the const graphics context associated with that owns this State object.
void | setContextID (unsigned int contextID)
| Set the current OpenGL context uniqueID.
unsigned int | getContextID () const
| Get the current OpenGL context unique ID.
void | pushStateSet (const StateSet *dstate)
| Push stateset onto state stack.
void | popStateSet ()
| Pop stateset off state stack.
void | popAllStateSets ()
| pop all statesets off state stack, ensuring it is empty ready for the next frame.
void | captureCurrentState (StateSet &stateset) const
| Copy the modes and attributes which capture the current state.
void | reset ()
| reset the state object to an empty stack.
const Viewport * | getCurrentViewport () const
void | setInitialViewMatrix (const osg::RefMatrix *matrix)
const osg::Matrix & | getInitialViewMatrix () const
const osg::Matrix & | getInitialInverseViewMatrix () const
void | applyProjectionMatrix (const osg::RefMatrix *matrix)
const osg::Matrix & | getProjectionMatrix () const
void | applyModelViewMatrix (const osg::RefMatrix *matrix)
const osg::Matrix & | getModelViewMatrix () const
Polytope | getViewFrustum () const
void | apply (const StateSet *dstate)
| Apply stateset.
void | apply ()
| Updates the OpenGL state so that it matches the `StateSet` at the top of the stack of `StateSet`s maintained internally by a `State`.
void | setGlobalDefaultModeValue (StateAttribute::GLMode mode, bool enabled)
bool | getGlobalDefaultModeValue (StateAttribute::GLMode mode)
bool | applyMode (StateAttribute::GLMode mode, bool enabled)
| Apply an OpenGL mode if required.
void | setGlobalDefaultTextureModeValue (unsigned int unit, StateAttribute::GLMode mode, bool enabled)
bool | getGlobalDefaultTextureModeValue (unsigned int unit, StateAttribute::GLMode mode)
bool | applyTextureMode (unsigned int unit, StateAttribute::GLMode mode, bool enabled)
void | setGlobalDefaultAttribute (const StateAttribute *attribute)
const StateAttribute * | getGlobalDefaultAttribute (StateAttribute::Type type, unsigned int member=0)
bool | applyAttribute (const StateAttribute *attribute)
| Apply an attribute if required.
void | setGlobalDefaultTextureAttribute (unsigned int unit, const StateAttribute *attribute)
const StateAttribute * | getGlobalDefaultTextureAttribute (unsigned int unit, StateAttribute::Type type, unsigned int member=0)
bool | applyTextureAttribute (unsigned int unit, const StateAttribute *attribute)
void | haveAppliedMode (StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
| Mode has been set externally, update state to reflect this setting.
void | haveAppliedMode (StateAttribute::GLMode mode)
| Mode has been set externally, therefore dirty the associated mode in osg::State so it is applied on next call to osg::State::apply(..).
void | haveAppliedAttribute (const StateAttribute *attribute)
| Attribute has been applied externally, update state to reflect this setting.
void | haveAppliedAttribute (StateAttribute::Type type, unsigned int member=0)
| Attribute has been applied externally, and therefore this attribute type has been dirtied and will need to be re-applied on next osg::State.apply(..).
bool | getLastAppliedMode (StateAttribute::GLMode mode) const
| Get whether the current specified mode is enabled (true) or disabled (false).
const StateAttribute * | getLastAppliedAttribute (StateAttribute::Type type, unsigned int member=0) const
| Get the current specified attribute, return NULL if one has not yet been applied.
void | haveAppliedTextureMode (unsigned int unit, StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
| texture Mode has been set externally, update state to reflect this setting.
void | haveAppliedTextureMode (unsigned int unit, StateAttribute::GLMode mode)
| texture Mode has been set externally, therefore dirty the associated mode in osg::State so it is applied on next call to osg::State::apply(..)
void | haveAppliedTextureAttribute (unsigned int unit, const StateAttribute *attribute)
| texture Attribute has been applied externally, update state to reflect this setting.
void | haveAppliedTextureAttribute (unsigned int unit, StateAttribute::Type type, unsigned int member=0)
| texture Attribute has been applied externally, and therefore this attribute type has been dirtied and will need to be re-appplied on next osg::State.apply(..).
bool | getLastAppliedTextureMode (unsigned int unit, StateAttribute::GLMode mode) const
| Get whether the current specified texture mode is enabled (true) or disabled (false).
const StateAttribute * | getLastAppliedTextureAttribute (unsigned int unit, StateAttribute::Type type, unsigned int member=0) const
| Get the current specified texture attribute, return NULL if one has not yet been applied.
void | dirtyAllModes ()
| Dirty the modes previously applied in osg::State.
void | dirtyAllAttributes ()
| Dirty the modes attributes previously applied in osg::State.
void | disableAllVertexArrays ()
| disable the vertex, normal, color, tex coords, secondary color, fog coord and index arrays.
void | dirtyAllVertexArrays ()
| dirty the vertex, normal, color, tex coords, secondary color, fog coord and index arrays.
void | setInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer)
| Wrapper around glInterleavedArrays(..).
void | setVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
| wrapper around glEnableClientState(GL_VERTEX_ARRAY);glVertexPointer(..); note, only updates values that change.
void | disableVertexPointer ()
| wrapper around glDisableClientState(GL_VERTEX_ARRAY).
void | dirtyVertexPointer ()
void | setNormalPointer (GLenum type, GLsizei stride, const GLvoid *ptr)
| wrapper around glEnableClientState(GL_NORMAL_ARRAY);glNormalPointer(..); note, only updates values that change.
void | disableNormalPointer ()
| wrapper around glDisableClientState(GL_NORMAL_ARRAY); note, only updates values that change.
void | dirtyNormalPointer ()
void | setColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
| wrapper around glEnableClientState(GL_COLOR_ARRAY);glColorPointer(..); note, only updates values that change.
void | disableColorPointer ()
| wrapper around glDisableClientState(GL_COLOR_ARRAY); note, only updates values that change.
void | dirtyColorPointer ()
bool | isSecondaryColorSupported () const
void | setSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
| wrapper around glEnableClientState(GL_SECONDARY_COLOR_ARRAY);glSecondayColorPointer(..); note, only updates values that change.
void | disableSecondaryColorPointer ()
| wrapper around glDisableClientState(GL_SECONDARY_COLOR_ARRAY); note, only updates values that change.
void | dirtySecondaryColorPointer ()
void | setIndexPointer (GLenum type, GLsizei stride, const GLvoid *ptr)
| wrapper around glEnableClientState(GL_INDEX_ARRAY);glIndexPointer(..); note, only updates values that change.
void | disableIndexPointer ()
| wrapper around glDisableClientState(GL_INDEX_ARRAY); note, only updates values that change.
void | dirtyIndexPointer ()
bool | isFogCoordSupported () const
void | setFogCoordPointer (GLenum type, GLsizei stride, const GLvoid *ptr)
| wrapper around glEnableClientState(GL_FOG_COORDINATE_ARRAY);glFogCoordPointer(..); note, only updates values that change.
void | disableFogCoordPointer ()
| wrapper around glDisableClientState(GL_FOG_COORDINATE_ARRAY); note, only updates values that change.
void | dirtyFogCoordPointer ()
void | setTexCoordPointer (unsigned int unit, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
| wrapper around glEnableClientState(GL_TEXTURE_COORD_ARRAY);glTexCoordPointer(..); note, only updates values that change.
void | disableTexCoordPointer (unsigned int unit)
| wrapper around glDisableClientState(GL_TEXTURE_COORD_ARRAY); note, only updates values that change.
void | dirtyTexCoordPointer (unsigned int unit)
void | disableTexCoordPointersAboveAndIncluding (unsigned int unit)
void | dirtyTexCoordPointersAboveAndIncluding (unsigned int unit)
bool | setActiveTextureUnit (unsigned int unit)
| Set the current texture unit, return true if selected, false if selection failed such as when multitexturing is not supported.
unsigned int | getActiveTextureUnit () const
| Get the current texture unit.
bool | setClientActiveTextureUnit (unsigned int unit)
| Set the current tex coord array texture unit, return true if selected, false if selection failed such as when multitexturing is not supported.
unsigned int | getClientActiveTextureUnit () const
| Get the current tex coord array texture unit.
void | setVertexAttribPointer (unsigned int index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *ptr)
| wrapper around glEnableVertexAttribArrayARB(index);glVertexAttribPointerARB(..); note, only updates values that change.
void | disableVertexAttribPointer (unsigned int index)
| wrapper around DisableVertexAttribArrayARB(index); note, only updates values that change.
void | disableVertexAttribPointersAboveAndIncluding (unsigned int index)
void | dirtyVertexAttribPointersAboveAndIncluding (unsigned int index)
bool | isVertexBufferObjectSupported () const
void | setLastAppliedProgramObject (const Program::PerContextProgram *program)
const Program::PerContextProgram * | getLastAppliedProgramObject () const
GLint | getUniformLocation (const std::string &name) const
GLint | getAttribLocation (const std::string &name) const
void | setFrameStamp (FrameStamp *fs)
| Set the frame stamp for the current frame.
const FrameStamp * | getFrameStamp () const
| Get the frame stamp for the current frame.
void | setDisplaySettings (DisplaySettings *vs)
| Set the DisplaySettings.
const DisplaySettings * | getDisplaySettings () const
| Get the DisplaySettings.
void | setAbortRenderingPtr (bool *abortPtr)
| Set flag for early termination of the draw traversal.
bool | getAbortRendering () const
| Get flag for early termination of the draw traversal, if true steps should be taken to complete rendering early.
void | setCheckForGLErrors (CheckForGLErrors check)
| Set whether and how often OpenGL errors should be checked for.
CheckForGLErrors | getCheckForGLErrors () const
| Get whether and how often OpenGL errors should be checked for.
bool | checkGLErrors (const char *str) const
bool | checkGLErrors (StateAttribute::GLMode mode) const
bool | checkGLErrors (const StateAttribute *attribute) const
## Protected Types
typedef std::map< StateAttribute::GLMode, ModeStack > | ModeMap
typedef std::vector< ModeMap > | TextureModeMapList
typedef std::map< StateAttribute::TypeMemberPair, AttributeStack > | AttributeMap
typedef std::vector< AttributeMap > | TextureAttributeMapList
typedef std::map< std::string, UniformStack > | UniformMap
typedef std::vector< const StateSet * > | StateSetStack
typedef std::vector< ref_ptr< const Matrix > > | MatrixStack
typedef std::set< osg::ref_ptr< const Program::PerContextProgram > > | AppliedProgramObjectSet
typedef std::vector< EnabledArrayPair > | EnabledTexCoordArrayList
typedef std::vector< EnabledArrayPair > | EnabledVertexAttribArrayList
## Protected Member Functions
virtual | ~State ()
bool | applyMode (StateAttribute::GLMode mode, bool enabled, ModeStack &ms)
| Apply an OpenGL mode if required, passing in mode, enable flag and appropriate mode stack.
bool | applyAttribute (const StateAttribute *attribute, AttributeStack &as)
| apply an attribute if required, passing in attribute and appropriate attribute stack
bool | applyGlobalDefaultAttribute (AttributeStack &as)
ModeMap & | getOrCreateTextureModeMap (unsigned int unit)
AttributeMap & | getOrCreateTextureAttributeMap (unsigned int unit)
void | pushModeList (ModeMap &modeMap, const StateSet::ModeList &modeList)
void | pushAttributeList (AttributeMap &attributeMap, const StateSet::AttributeList &attributeList)
void | pushUniformList (UniformMap &uniformMap, const StateSet::UniformList &uniformList)
void | popModeList (ModeMap &modeMap, const StateSet::ModeList &modeList)
void | popAttributeList (AttributeMap &attributeMap, const StateSet::AttributeList &attributeList)
void | popUniformList (UniformMap &uniformMap, const StateSet::UniformList &uniformList)
void | applyModeList (ModeMap &modeMap, const StateSet::ModeList &modeList)
void | applyAttributeList (AttributeMap &attributeMap, const StateSet::AttributeList &attributeList)
void | applyUniformList (UniformMap &uniformMap, const StateSet::UniformList &uniformList)
void | applyModeMap (ModeMap &modeMap)
void | applyAttributeMap (AttributeMap &attributeMap)
void | applyUniformMap (UniformMap &uniformMap)
void | haveAppliedMode (ModeMap &modeMap, StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
void | haveAppliedMode (ModeMap &modeMap, StateAttribute::GLMode mode)
void | haveAppliedAttribute (AttributeMap &attributeMap, const StateAttribute *attribute)
void | haveAppliedAttribute (AttributeMap &attributeMap, StateAttribute::Type type, unsigned int member)
bool | getLastAppliedMode (const ModeMap &modeMap, StateAttribute::GLMode mode) const
const StateAttribute * | getLastAppliedAttribute (const AttributeMap &attributeMap, StateAttribute::Type type, unsigned int member) const
bool | computeSecondaryColorSupported () const
bool | computeFogCoordSupported () const
bool | computeVertexBufferObjectSupported () const
## Protected Attributes
GraphicsContext * | _graphicsContext
unsigned int | _contextID
ref_ptr< FrameStamp > | _frameStamp
ref_ptr< const RefMatrix > | _identity
ref_ptr< const RefMatrix > | _initialViewMatrix
ref_ptr< const RefMatrix > | _projection
ref_ptr< const RefMatrix > | _modelView
Matrix | _initialInverseViewMatrix
ref_ptr< DisplaySettings > | _displaySettings
bool * | _abortRenderingPtr
CheckForGLErrors | _checkGLErrors
ModeMap | _modeMap
AttributeMap | _attributeMap
UniformMap | _uniformMap
TextureModeMapList | _textureModeMapList
TextureAttributeMapList | _textureAttributeMapList
AppliedProgramObjectSet | _appliedProgramObjectSet
const Program::PerContextProgram * | _lastAppliedProgramObject
StateSetStack | _stateStateStack
EnabledArrayPair | _vertexArray
EnabledArrayPair | _normalArray
EnabledArrayPair | _colorArray
EnabledArrayPair | _secondaryColorArray
EnabledArrayPair | _indexArray
EnabledArrayPair | _fogArray
EnabledTexCoordArrayList | _texCoordArrayList
EnabledVertexAttribArrayList | _vertexAttribArrayList
unsigned int | _currentActiveTextureUnit
unsigned int | _currentClientActiveTextureUnit
bool | _isSecondaryColorSupportResolved
bool | _isSecondaryColorSupported
bool | _isFogCoordSupportResolved
bool | _isFogCoordSupported
bool | _isVertexBufferObjectSupportResolved
bool | _isVertexBufferObjectSupported

## Detailed Description

Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings,.

implements lazy state updating and provides accessors for querrying the current state. . The venerable Red Book says that "OpenGL is a state machine", and this class represents the OpenGL state in OSG. Furthermore, `State` also has other important features:

- It works as a stack of states (see `pushStateSet()` and `popStateSet()`). Manipulating this stack of OpenGL states manually is seldom needed, since OSG does this is the most common situations.
- It implements lazy state updating. This means that, if one requests a state change and that particular state is already in the requested stated, no OpenGL call will be made, this ensures that OpenGL pipeline is not stalled by unncessary state changes.
- It allows to query the current OpenGL state without calls to `glGet*`(), which typically stall the graphics pipeline (see, for instance, `captureCurrentState()` and `getModelViewMatrix()`).

## Member Typedef Documentation

typedef std::set<osg::ref_ptr<const Program::PerContextProgram> > osg::State::AppliedProgramObjectSet`[protected]`

typedef std::map<StateAttribute::TypeMemberPair,AttributeStack> osg::State::AttributeMap`[protected]`

typedef std::vector<EnabledArrayPair> osg::State::EnabledTexCoordArrayList`[protected]`

typedef std::vector<EnabledArrayPair> osg::State::EnabledVertexAttribArrayList`[protected]`

typedef std::vector<ref_ptr<const Matrix> > osg::State::MatrixStack`[protected]`

typedef std::map<StateAttribute::GLMode,ModeStack> osg::State::ModeMap`[protected]`

typedef std::vector<const StateSet*> osg::State::StateSetStack`[protected]`

typedef std::vector<AttributeMap> osg::State::TextureAttributeMapList`[protected]`

typedef std::vector<ModeMap> osg::State::TextureModeMapList`[protected]`

typedef std::map<std::string,UniformStack> osg::State::UniformMap`[protected]`

## Member Enumeration Documentation

enum osg::State::CheckForGLErrors

  | Enumeration values:
  NEVER_CHECK_GL_ERRORS | NEVER_CHECK_GL_ERRORS hints that OpenGL need not be checked for, this is the fastest option since checking for errors does incurr a small overhead.
  ONCE_PER_FRAME | ONCE_PER_FRAME means that OpenGl errors will be checked for once per frame, the overhead is still small, but at least OpenGL errors that are occurring will be caught, the reporting isn't fine grained enough for debugging purposes.
  ONCE_PER_ATTRIBUTE | ONCE_PER_ATTRIBUTE means that OpenGL errors will be checked for after every attribute is applied, allow errors to be directly associated with particular operations which makes debugging much easier.

## Constructor & Destructor Documentation

osg::State::State | ( |  | ) |

virtual osg::State::~State | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

void osg::State::apply | ( |  | ) |

| Updates the OpenGL state so that it matches the `StateSet` at the top of the stack of `StateSet`s maintained internally by a `State`.

void osg::State::apply | ( | const StateSet * | dstate | ) |

| Apply stateset.

bool osg::State::applyAttribute | ( | const StateAttribute * | attribute,
|  | AttributeStack & | as
| ) | `[inline, protected]`

| apply an attribute if required, passing in attribute and appropriate attribute stack

bool osg::State::applyAttribute | ( | const StateAttribute * | attribute | ) | `[inline]`

| Apply an attribute if required.

void osg::State::applyAttributeList | ( | AttributeMap & | attributeMap,
|  | const StateSet::AttributeList & | attributeList
| ) | `[inline, protected]`

void osg::State::applyAttributeMap | ( | AttributeMap & | attributeMap | ) | `[inline, protected]`

bool osg::State::applyGlobalDefaultAttribute | ( | AttributeStack & | as | ) | `[inline, protected]`

bool osg::State::applyMode | ( | StateAttribute::GLMode | mode,
|  | bool | enabled,
|  | ModeStack & | ms
| ) | `[inline, protected]`

| Apply an OpenGL mode if required, passing in mode, enable flag and appropriate mode stack. This is a wrapper around `glEnable()` and `glDisable()`, that just actually calls these functions if the `enabled` flag is different than the current state. Returns: `true` if the state was actually changed. `false` otherwise. Notice that a `false` return does not indicate an error, it just means that the mode was already set to the same value as the `enabled` parameter.

bool osg::State::applyMode | ( | StateAttribute::GLMode | mode,
|  | bool | enabled
| ) | `[inline]`

| Apply an OpenGL mode if required. This is a wrapper around `glEnable()` and `glDisable()`, that just actually calls these functions if the `enabled` flag is different than the current state. Returns: `true` if the state was actually changed. `false` otherwise. Notice that a `false` return does not indicate an error, it just means that the mode was already set to the same value as the `enabled` parameter.

void osg::State::applyModeList | ( | ModeMap & | modeMap,
|  | const StateSet::ModeList & | modeList
| ) | `[inline, protected]`

void osg::State::applyModelViewMatrix | ( | const osg::RefMatrix * | matrix | ) | `[inline]`

void osg::State::applyModeMap | ( | ModeMap & | modeMap | ) | `[inline, protected]`

void osg::State::applyProjectionMatrix | ( | const osg::RefMatrix * | matrix | ) | `[inline]`

bool osg::State::applyTextureAttribute | ( | unsigned int | unit,
|  | const StateAttribute * | attribute
| ) | `[inline]`

bool osg::State::applyTextureMode | ( | unsigned int | unit,
|  | StateAttribute::GLMode | mode,
|  | bool | enabled
| ) | `[inline]`

void osg::State::applyUniformList | ( | UniformMap & | uniformMap,
|  | const StateSet::UniformList & | uniformList
| ) | `[inline, protected]`

void osg::State::applyUniformMap | ( | UniformMap & | uniformMap | ) | `[inline, protected]`

void osg::State::captureCurrentState | ( | StateSet & | stateset | ) | const

| Copy the modes and attributes which capture the current state.

bool osg::State::checkGLErrors | ( | const StateAttribute * | attribute | ) | const

bool osg::State::checkGLErrors | ( | StateAttribute::GLMode | mode | ) | const

bool osg::State::checkGLErrors | ( | const char * | str | ) | const

bool osg::State::computeFogCoordSupported | ( |  | ) | const`[protected]`

bool osg::State::computeSecondaryColorSupported | ( |  | ) | const`[protected]`

bool osg::State::computeVertexBufferObjectSupported | ( |  | ) | const`[protected]`

void osg::State::dirtyAllAttributes | ( |  | ) |

| Dirty the modes attributes previously applied in osg::State.

void osg::State::dirtyAllModes | ( |  | ) |

| Dirty the modes previously applied in osg::State.

void osg::State::dirtyAllVertexArrays | ( |  | ) |

| dirty the vertex, normal, color, tex coords, secondary color, fog coord and index arrays.

void osg::State::dirtyColorPointer | ( |  | ) | `[inline]`

void osg::State::dirtyFogCoordPointer | ( |  | ) | `[inline]`

void osg::State::dirtyIndexPointer | ( |  | ) | `[inline]`

void osg::State::dirtyNormalPointer | ( |  | ) | `[inline]`

void osg::State::dirtySecondaryColorPointer | ( |  | ) | `[inline]`

void osg::State::dirtyTexCoordPointer | ( | unsigned int | unit | ) | `[inline]`

void osg::State::dirtyTexCoordPointersAboveAndIncluding | ( | unsigned int | unit | ) | `[inline]`

void osg::State::dirtyVertexAttribPointersAboveAndIncluding | ( | unsigned int | index | ) | `[inline]`

void osg::State::dirtyVertexPointer | ( |  | ) | `[inline]`

void osg::State::disableAllVertexArrays | ( |  | ) |

| disable the vertex, normal, color, tex coords, secondary color, fog coord and index arrays.

void osg::State::disableColorPointer | ( |  | ) | `[inline]`

| wrapper around glDisableClientState(GL_COLOR_ARRAY); note, only updates values that change.

void osg::State::disableFogCoordPointer | ( |  | ) | `[inline]`

| wrapper around glDisableClientState(GL_FOG_COORDINATE_ARRAY); note, only updates values that change.

void osg::State::disableIndexPointer | ( |  | ) | `[inline]`

| wrapper around glDisableClientState(GL_INDEX_ARRAY); note, only updates values that change.

void osg::State::disableNormalPointer | ( |  | ) | `[inline]`

| wrapper around glDisableClientState(GL_NORMAL_ARRAY); note, only updates values that change.

void osg::State::disableSecondaryColorPointer | ( |  | ) | `[inline]`

| wrapper around glDisableClientState(GL_SECONDARY_COLOR_ARRAY); note, only updates values that change.

void osg::State::disableTexCoordPointer | ( | unsigned int | unit | ) | `[inline]`

| wrapper around glDisableClientState(GL_TEXTURE_COORD_ARRAY); note, only updates values that change.

void osg::State::disableTexCoordPointersAboveAndIncluding | ( | unsigned int | unit | ) | `[inline]`

void osg::State::disableVertexAttribPointer | ( | unsigned int | index | ) |

| wrapper around DisableVertexAttribArrayARB(index); note, only updates values that change.

void osg::State::disableVertexAttribPointersAboveAndIncluding | ( | unsigned int | index | ) |

void osg::State::disableVertexPointer | ( |  | ) | `[inline]`

| wrapper around glDisableClientState(GL_VERTEX_ARRAY). note, only updates values that change.

bool osg::State::getAbortRendering | ( |  | ) | const`[inline]`

| Get flag for early termination of the draw traversal, if true steps should be taken to complete rendering early.

unsigned int osg::State::getActiveTextureUnit | ( |  | ) | const`[inline]`

| Get the current texture unit.

GLint osg::State::getAttribLocation | ( | const std::string & | name | ) | const`[inline]`

CheckForGLErrors osg::State::getCheckForGLErrors | ( |  | ) | const`[inline]`

| Get whether and how often OpenGL errors should be checked for.

unsigned int osg::State::getClientActiveTextureUnit | ( |  | ) | const`[inline]`

| Get the current tex coord array texture unit.

unsigned int osg::State::getContextID | ( |  | ) | const`[inline]`

| Get the current OpenGL context unique ID.

const Viewport* osg::State::getCurrentViewport | ( |  | ) | const`[inline]`

const DisplaySettings* osg::State::getDisplaySettings | ( |  | ) | const`[inline]`

| Get the DisplaySettings.

const FrameStamp* osg::State::getFrameStamp | ( |  | ) | const`[inline]`

| Get the frame stamp for the current frame.

const StateAttribute* osg::State::getGlobalDefaultAttribute | ( | StateAttribute::Type | type,
|  | unsigned int | member = 0
| ) | `[inline]`

bool osg::State::getGlobalDefaultModeValue | ( | StateAttribute::GLMode | mode | ) | `[inline]`

const StateAttribute* osg::State::getGlobalDefaultTextureAttribute | ( | unsigned int | unit,
|  | StateAttribute::Type | type,
|  | unsigned int | member = 0
| ) | `[inline]`

bool osg::State::getGlobalDefaultTextureModeValue | ( | unsigned int | unit,
|  | StateAttribute::GLMode | mode
| ) | `[inline]`

const GraphicsContext* osg::State::getGraphicsContext | ( |  | ) | const`[inline]`

| Get the const graphics context associated with that owns this State object.

GraphicsContext* osg::State::getGraphicsContext | ( |  | ) | `[inline]`

| Get the graphics context associated with that owns this State object.

const osg::Matrix& osg::State::getInitialInverseViewMatrix | ( |  | ) | const`[inline]`

const osg::Matrix& osg::State::getInitialViewMatrix | ( |  | ) | const`[inline]`

const StateAttribute* osg::State::getLastAppliedAttribute | ( | const AttributeMap & | attributeMap,
|  | StateAttribute::Type | type,
|  | unsigned int | member
| ) | const`[protected]`

const StateAttribute* osg::State::getLastAppliedAttribute | ( | StateAttribute::Type | type,
|  | unsigned int | member = 0
| ) | const

| Get the current specified attribute, return NULL if one has not yet been applied.

bool osg::State::getLastAppliedMode | ( | const ModeMap & | modeMap,
|  | StateAttribute::GLMode | mode
| ) | const`[protected]`

bool osg::State::getLastAppliedMode | ( | StateAttribute::GLMode | mode | ) | const

| Get whether the current specified mode is enabled (true) or disabled (false).

const Program::PerContextProgram* osg::State::getLastAppliedProgramObject | ( |  | ) | const`[inline]`

const StateAttribute* osg::State::getLastAppliedTextureAttribute | ( | unsigned int | unit,
|  | StateAttribute::Type | type,
|  | unsigned int | member = 0
| ) | const

| Get the current specified texture attribute, return NULL if one has not yet been applied.

bool osg::State::getLastAppliedTextureMode | ( | unsigned int | unit,
|  | StateAttribute::GLMode | mode
| ) | const

| Get whether the current specified texture mode is enabled (true) or disabled (false).

const osg::Matrix& osg::State::getModelViewMatrix | ( |  | ) | const`[inline]`

AttributeMap& osg::State::getOrCreateTextureAttributeMap | ( | unsigned int | unit | ) | `[inline, protected]`

ModeMap& osg::State::getOrCreateTextureModeMap | ( | unsigned int | unit | ) | `[inline, protected]`

const osg::Matrix& osg::State::getProjectionMatrix | ( |  | ) | const`[inline]`

GLint osg::State::getUniformLocation | ( | const std::string & | name | ) | const`[inline]`

Polytope osg::State::getViewFrustum | ( |  | ) | const

void osg::State::haveAppliedAttribute | ( | AttributeMap & | attributeMap,
|  | StateAttribute::Type | type,
|  | unsigned int | member
| ) | `[protected]`

void osg::State::haveAppliedAttribute | ( | AttributeMap & | attributeMap,
|  | const StateAttribute * | attribute
| ) | `[protected]`

void osg::State::haveAppliedAttribute | ( | StateAttribute::Type | type,
|  | unsigned int | member = 0
| ) |

| Attribute has been applied externally, and therefore this attribute type has been dirtied and will need to be re-applied on next osg::State.apply(..). note, if you have an osg::StateAttribute which you have applied externally then use the have_applied(attribute) method as this will cause the osg::State to track the current state more accurately and enable lazy state updating such that only changed state will be applied.

void osg::State::haveAppliedAttribute | ( | const StateAttribute * | attribute | ) |

| Attribute has been applied externally, update state to reflect this setting.

void osg::State::haveAppliedMode | ( | ModeMap & | modeMap,
|  | StateAttribute::GLMode | mode
| ) | `[protected]`

void osg::State::haveAppliedMode | ( | ModeMap & | modeMap,
|  | StateAttribute::GLMode | mode,
|  | StateAttribute::GLModeValue | value
| ) | `[protected]`

void osg::State::haveAppliedMode | ( | StateAttribute::GLMode | mode | ) |

| Mode has been set externally, therefore dirty the associated mode in osg::State so it is applied on next call to osg::State::apply(..).

void osg::State::haveAppliedMode | ( | StateAttribute::GLMode | mode,
|  | StateAttribute::GLModeValue | value
| ) |

| Mode has been set externally, update state to reflect this setting.

void osg::State::haveAppliedTextureAttribute | ( | unsigned int | unit,
|  | StateAttribute::Type | type,
|  | unsigned int | member = 0
| ) |

| texture Attribute has been applied externally, and therefore this attribute type has been dirtied and will need to be re-appplied on next osg::State.apply(..). note, if you have an osg::StateAttribute which you have applied externally then use the have_applied(attribute) method as this will the osg::State to track the current state more accurately and enable lazy state updating such that only changed state will be applied.

void osg::State::haveAppliedTextureAttribute | ( | unsigned int | unit,
|  | const StateAttribute * | attribute
| ) |

| texture Attribute has been applied externally, update state to reflect this setting.

void osg::State::haveAppliedTextureMode | ( | unsigned int | unit,
|  | StateAttribute::GLMode | mode
| ) |

| texture Mode has been set externally, therefore dirty the associated mode in osg::State so it is applied on next call to osg::State::apply(..)

void osg::State::haveAppliedTextureMode | ( | unsigned int | unit,
|  | StateAttribute::GLMode | mode,
|  | StateAttribute::GLModeValue | value
| ) |

| texture Mode has been set externally, update state to reflect this setting.

bool osg::State::isFogCoordSupported | ( |  | ) | const`[inline]`

bool osg::State::isSecondaryColorSupported | ( |  | ) | const`[inline]`

bool osg::State::isVertexBufferObjectSupported | ( |  | ) | const`[inline]`

void osg::State::popAllStateSets | ( |  | ) |

| pop all statesets off state stack, ensuring it is empty ready for the next frame. Note, to return OpenGL to default state, one should do any state.popAllStatSets(); state.apply().

void osg::State::popAttributeList | ( | AttributeMap & | attributeMap,
|  | const StateSet::AttributeList & | attributeList
| ) | `[inline, protected]`

void osg::State::popModeList | ( | ModeMap & | modeMap,
|  | const StateSet::ModeList & | modeList
| ) | `[inline, protected]`

void osg::State::popStateSet | ( |  | ) |

| Pop stateset off state stack.

void osg::State::popUniformList | ( | UniformMap & | uniformMap,
|  | const StateSet::UniformList & | uniformList
| ) | `[inline, protected]`

void osg::State::pushAttributeList | ( | AttributeMap & | attributeMap,
|  | const StateSet::AttributeList & | attributeList
| ) | `[inline, protected]`

void osg::State::pushModeList | ( | ModeMap & | modeMap,
|  | const StateSet::ModeList & | modeList
| ) | `[inline, protected]`

void osg::State::pushStateSet | ( | const StateSet * | dstate | ) |

| Push stateset onto state stack.

void osg::State::pushUniformList | ( | UniformMap & | uniformMap,
|  | const StateSet::UniformList & | uniformList
| ) | `[inline, protected]`

void osg::State::reset | ( |  | ) |

| reset the state object to an empty stack.

void osg::State::setAbortRenderingPtr | ( | bool * | abortPtr | ) | `[inline]`

| Set flag for early termination of the draw traversal.

bool osg::State::setActiveTextureUnit | ( | unsigned int | unit | ) |

| Set the current texture unit, return true if selected, false if selection failed such as when multitexturing is not supported. note, only updates values that change.

void osg::State::setCheckForGLErrors | ( | CheckForGLErrors | check | ) | `[inline]`

| Set whether and how often OpenGL errors should be checked for.

bool osg::State::setClientActiveTextureUnit | ( | unsigned int | unit | ) |

| Set the current tex coord array texture unit, return true if selected, false if selection failed such as when multitexturing is not supported. note, only updates values that change.

void osg::State::setColorPointer | ( | GLint | size,
|  | GLenum | type,
|  | GLsizei | stride,
|  | const GLvoid * | ptr
| ) | `[inline]`

| wrapper around glEnableClientState(GL_COLOR_ARRAY);glColorPointer(..); note, only updates values that change.

void osg::State::setContextID | ( | unsigned int | contextID | ) | `[inline]`

| Set the current OpenGL context uniqueID. Note, it is the application developers responsibility to set up unique ID for each OpenGL context. This value is then used by osg::StateAttribute's and osg::Drawable's to help manage OpenGL display list and texture binds appropriate for each context, the contextID simply acts as an index in local arrays that they maintain for the purpose. Typical settings for contextID are 0,1,2,3... up to the maximum number of graphics contexts you have set up. By default contextID is 0.

void osg::State::setDisplaySettings | ( | DisplaySettings * | vs | ) | `[inline]`

| Set the DisplaySettings. Note, nothing is applied, the visual settings are just used in the State object to pass the current visual settings to Drawables during rendering.

void osg::State::setFogCoordPointer | ( | GLenum | type,
|  | GLsizei | stride,
|  | const GLvoid * | ptr
| ) |

| wrapper around glEnableClientState(GL_FOG_COORDINATE_ARRAY);glFogCoordPointer(..); note, only updates values that change.

void osg::State::setFrameStamp | ( | FrameStamp * | fs | ) | `[inline]`

| Set the frame stamp for the current frame.

void osg::State::setGlobalDefaultAttribute | ( | const StateAttribute * | attribute | ) | `[inline]`

void osg::State::setGlobalDefaultModeValue | ( | StateAttribute::GLMode | mode,
|  | bool | enabled
| ) | `[inline]`

void osg::State::setGlobalDefaultTextureAttribute | ( | unsigned int | unit,
|  | const StateAttribute * | attribute
| ) | `[inline]`

void osg::State::setGlobalDefaultTextureModeValue | ( | unsigned int | unit,
|  | StateAttribute::GLMode | mode,
|  | bool | enabled
| ) | `[inline]`

void osg::State::setGraphicsContext | ( | GraphicsContext * | context | ) | `[inline]`

| Set the graphics context associated with that owns this State object.

void osg::State::setIndexPointer | ( | GLenum | type,
|  | GLsizei | stride,
|  | const GLvoid * | ptr
| ) | `[inline]`

| wrapper around glEnableClientState(GL_INDEX_ARRAY);glIndexPointer(..); note, only updates values that change.

void osg::State::setInitialViewMatrix | ( | const osg::RefMatrix * | matrix | ) |

void osg::State::setInterleavedArrays | ( | GLenum | format,
|  | GLsizei | stride,
|  | const GLvoid * | pointer
| ) |

| Wrapper around glInterleavedArrays(..). also resets the internal array points and modes within osg::State to keep the other vertex array operations consistent.

void osg::State::setLastAppliedProgramObject | ( | const Program::PerContextProgram * | program | ) | `[inline]`

void osg::State::setNormalPointer | ( | GLenum | type,
|  | GLsizei | stride,
|  | const GLvoid * | ptr
| ) | `[inline]`

| wrapper around glEnableClientState(GL_NORMAL_ARRAY);glNormalPointer(..); note, only updates values that change.

void osg::State::setSecondaryColorPointer | ( | GLint | size,
|  | GLenum | type,
|  | GLsizei | stride,
|  | const GLvoid * | ptr
| ) |

| wrapper around glEnableClientState(GL_SECONDARY_COLOR_ARRAY);glSecondayColorPointer(..); note, only updates values that change.

void osg::State::setTexCoordPointer | ( | unsigned int | unit,
|  | GLint | size,
|  | GLenum | type,
|  | GLsizei | stride,
|  | const GLvoid * | ptr
| ) | `[inline]`

| wrapper around glEnableClientState(GL_TEXTURE_COORD_ARRAY);glTexCoordPointer(..); note, only updates values that change.

void osg::State::setVertexAttribPointer | ( | unsigned int | index,
|  | GLint | size,
|  | GLenum | type,
|  | GLboolean | normalized,
|  | GLsizei | stride,
|  | const GLvoid * | ptr
| ) |

| wrapper around glEnableVertexAttribArrayARB(index);glVertexAttribPointerARB(..); note, only updates values that change.

void osg::State::setVertexPointer | ( | GLint | size,
|  | GLenum | type,
|  | GLsizei | stride,
|  | const GLvoid * | ptr
| ) | `[inline]`

| wrapper around glEnableClientState(GL_VERTEX_ARRAY);glVertexPointer(..); note, only updates values that change.

## Member Data Documentation

bool* osg::State::_abortRenderingPtr`[protected]`

AppliedProgramObjectSet osg::State::_appliedProgramObjectSet`[protected]`

AttributeMap osg::State::_attributeMap`[protected]`

CheckForGLErrors osg::State::_checkGLErrors`[protected]`

EnabledArrayPair osg::State::_colorArray`[protected]`

unsigned int osg::State::_contextID`[protected]`

unsigned int osg::State::_currentActiveTextureUnit`[protected]`

unsigned int osg::State::_currentClientActiveTextureUnit`[protected]`

ref_ptr<DisplaySettings> osg::State::_displaySettings`[protected]`

EnabledArrayPair osg::State::_fogArray`[protected]`

ref_ptr<FrameStamp> osg::State::_frameStamp`[protected]`

GraphicsContext* osg::State::_graphicsContext`[protected]`

ref_ptr<const RefMatrix> osg::State::_identity`[protected]`

EnabledArrayPair osg::State::_indexArray`[protected]`

Matrix osg::State::_initialInverseViewMatrix`[protected]`

ref_ptr<const RefMatrix> osg::State::_initialViewMatrix`[protected]`

bool osg::State::_isFogCoordSupported`[mutable, protected]`

bool osg::State::_isFogCoordSupportResolved`[mutable, protected]`

bool osg::State::_isSecondaryColorSupported`[mutable, protected]`

bool osg::State::_isSecondaryColorSupportResolved`[mutable, protected]`

bool osg::State::_isVertexBufferObjectSupported`[mutable, protected]`

bool osg::State::_isVertexBufferObjectSupportResolved`[mutable, protected]`

const Program::PerContextProgram* osg::State::_lastAppliedProgramObject`[protected]`

ref_ptr<const RefMatrix> osg::State::_modelView`[protected]`

ModeMap osg::State::_modeMap`[protected]`

EnabledArrayPair osg::State::_normalArray`[protected]`

ref_ptr<const RefMatrix> osg::State::_projection`[protected]`

EnabledArrayPair osg::State::_secondaryColorArray`[protected]`

StateSetStack osg::State::_stateStateStack`[protected]`

EnabledTexCoordArrayList osg::State::_texCoordArrayList`[protected]`

TextureAttributeMapList osg::State::_textureAttributeMapList`[protected]`

TextureModeMapList osg::State::_textureModeMapList`[protected]`

UniformMap osg::State::_uniformMap`[protected]`

EnabledArrayPair osg::State::_vertexArray`[protected]`

EnabledVertexAttribArrayList osg::State::_vertexAttribArrayList`[protected]`

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

- State